-1

я следующую папку

 drwxr-xr-x   7 root root 45056 Nov 25 12:39 data

которые включают в себя sub dirs и файлы его все 755,

но когда я создаю новый файл внутри этих директорий, он получает разрешение

-rw-r--r-- 1 root root    0 Nov 28  2013 new

как сделать, чтобы новые файлы создавались в этом каталоге, беру 755, не делая этого вручную, я попробовал chmod g+s, и ничего не произошло,

какие-нибудь советы

1 ответ1

0

Единственный способ установить битовые права - через ваш 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .