Единственный способ установить битовые права - через ваш umask. Когда файл создается, скажем, с правами доступа 666 (это восьмеричное значение), ваш umask решает, какие биты перевернуты на 0.
Чтобы объяснить дальше: rwx rwx rwx для мира групп пользователей соответственно. Если бы каждый бит был установлен в 1 (111 111 111), это было бы 0777 (в восьмеричном). 0666 - это 110: 110: 110 или rw_rw_rw. Надеюсь, что это имеет смысл.
По умолчанию ваш umask будет 022 - (восьмеричное 022). Здесь говорится, какие биты должны быть сохранены (0), а какие нет (1). (Это немного не интуитивно понятно).
Возьмите 666 созданный файл:6 & ~ 0 = 6 6 & ~ 2 = 4 6 & ~ 2 = 4
Таким образом, созданный файл будет иметь разрешения 644 (rw-r - r--).
Обратите внимание, что эффект от umask состоит в том, чтобы маскировать биты, которые передаются вызову создания файла. Если вызов занимает 666, невозможно сделать его 755 без выполнения вручную «chmod a+x file».
Кроме того, эффект g+s, устанавливающий suid группы, состоит в том, чтобы установить группу-владельца, а не битовые разрешения. В этом отношении Windows более детальна (ACL), но есть расширения файловой системы для добавления разрешений ACL в файловые системы Linux.