Я пытаюсь настроить права доступа к файлам, которые устанавливаются для каталогов и файлов, когда они создаются определенным пользователем / группой, но, похоже, что-то не так.
Я попытался установить следующее:
chmod 2770 /path/to/directory
chmod g+rwxs /path/to/directory
Однако, когда я создаю новый каталог в этом каталоге, например
/path/to/directory/deletemeplease
deletemeplease
будет иметь разрешения drwxr-sr-x
Любые файлы, созданные в /path/to/directory/
имеют права доступа rw-r--r--
Я также попытался установить ACL для каталога, как показано ниже:
setfacl -dm u::rwx,g::rwx,o::r /path/to/directory
При настройке ACL права доступа для созданных файлов и каталогов становятся rw-rw-r--
которые становятся ближе, но бит выполнения все еще не установлен.
Есть ли шаг, который я здесь пропускаю?
РЕДАКТИРОВАТЬ
Связанный ответ только объясняет разницу между umask и chmod. Моя проблема в том, что после установки разрешений они не выполняются.
Когда создается новый каталог или файл, я ожидаю, что права доступа будут установлены на rwxrwxr--
. Как бы то ни было, когда создается новый каталог, он имеет права rwxr-sr--
. Когда создается новый файл, разрешения имеют вид rw-rw-r--
. Затем, если новый каталог создан и содержит файлы, файлы во вновь созданном каталоге имеют права доступа rw-r--r--
что очень странно.
Я только что обнаружил, что при создании файлов и каталогов в терминале эти разрешения применяются должным образом (за исключением бита выполнения для файлов). Странное поведение, описанное выше, происходит, когда каталоги / файлы создаются с помощью rsync из выполняемого скрипта. Сценарий выполняется через пользователя www-data, который является пользователем каталога и группой для каталога, к которому применены acls, поэтому их нельзя применять при запуске rsync?
Сценарий, который запускает rsync, использует следующую команду:
rsync -rltgoDzvO /path/for/files/to/sync /path/to/directory