Я почти уверен, что делаю что-то не так, но не могу понять ...
У меня есть несколько каталогов, которые я создал со следующим:
sudo setfacl -dR -m u::rwX,g::rwX,o::rX,u:ubuntu:rwX,u:www-data:rwX,g:www-data:rwX .
sudo setfacl -R -m u:ubuntu:rwX,u:www-data:rwX,g:www-data:rwX .
Моя проблема в том, что существующие там файлы внезапно получают флаг выполнения в группе. На моем тестовом сервере я делаю то же самое, но этого не происходит. Единственная разница между этим сервером и тестовым в том, что я использовал rysnc для копирования файлов и создания каталогов, но используемая команда не включала флаги для сохранения разрешений (-rltvz
). На тестовом я использовал scp
. Результаты из getfacl
матч между машинами тоже.
На тестовой машине, если я это сделаю touch test.txt
а затем запустите второй setfacl
команда (указана выше), то к одному файлу добавляется бит выполнения группы, в то время как остальные файлы остаются без изменений. Существующие файлы с такими же разрешениями имеют следующие настройки:
# file: veggies.png
# owner: ubuntu
# group: www-data
user::rw-
user:www-data:rw-
user:ubuntu:rw-
group::rw-
group:www-data:rw-
mask::rw-
other::r--
Вновь созданный файл имеет следующие настройки:
# file: test.txt
# owner: ubuntu
# group: ubuntu
user::rw-
user:www-data:rwx #effective:rw-
user:ubuntu:rwx #effective:rw-
group::rwx #effective:rw-
group:www-data:rwx #effective:rw-
mask::rw-
other::r--
Но ls
говорит: -rw-rw-r--+ 1 ubuntu ubuntu 0 Feb 28 10:00 test.txt
РЕДАКТИРОВАТЬ: Итак, после долгого чтения проблема, похоже, заключается в том, что вторая команда - это «восстановление маски». Вы можете видеть, что разрешение группы указано как «rwx», а маска - «rw-», поэтому ls
показывает 'rw-', но вторая команда пересчитывает маску в 'rwx', а затем показывает 'rwx' в ls
. Однако я все еще не понимаю, почему touch test.txt
создаст файл с группой «rwx», когда первая команда установит значение по умолчанию «g :: rwX», что должно означать, что обычный файл должен иметь разрешение «rw-».