ive следующая папка
drwxr-xr-x 7 root root 45056 Nov 25 12:39 data
которые включают в себя подкаталоги и файлы, все 755,
но когда я создаю новый файл внутри этих каталогов, он получает разрешение
-rw-r--r-- 1 root root 0 Nov 28 2013 new
как заставить новые файлы создаваться в этих каталогах, принимая 755, не делая этого вручную? Я пробовал chmod g+s, но ничего не произошло,
какие-нибудь советы
решение1
Единственный способ установить разрешения бита — через ваш umask. Когда создается файл, скажем, с разрешениями 666 (это в восьмеричном формате), ваш umask решает, какие биты будут перевернуты в 0.
Объясняю подробнее: rwx rwx rwx означает User Group World соответственно. Если бы каждый бит был установлен в 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, устанавливающий group suid, заключается в установке группы-владельца, а не битовых разрешений. Windows гораздо более тонка в этом отношении (ACL), но существуют расширения файловой системы для добавления разрешений ACL в файловые системы Linux.