Я собираюсь поработать над веб-проектом и поэтому у меня есть www папка внутри $HOME . Я хочу, чтобы эта папка принадлежала user пока я принадлежу к группе www-data . Я выпускаю:

mkdir $HOME/www
chmod g+rxs,u+rwx,o-rwx $HOME/www
chown user.www-data $HOME/www

Тогда ls -alh | grep www дает:

drwxr-s---  2 user www-data     4,0K Aug 10 17:33 www

Кроме того, я хочу, чтобы разрешения по умолчанию были установлены независимо от разрешений процессов создания. Итак, я делаю:

setfacl -m d:u::rwx,d:g::rx,d:o::- $HOME/www

Затем getfacl $HOME/www дает:

# file: www
# owner: user
# group: www-data
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:other::---

Теперь я cd во вновь созданную папку:

touch testfile

И тогда ls -alh | grep testfile дает:

-rw-r-----   1 user www-data    0 Aug 10 17:44 testfile

Как видите, группа www-data была унаследована из-за бита setgid . Но списки ACL по умолчанию из каталога $HOME/www не были унаследованы (как я и ожидал). $HOME имеет разные ACL по умолчанию по сравнению с $HOME/www - но я ожидаю, что ручное переопределение списков ACL по умолчанию для подкаталогов работает довольно просто.

Я хочу, чтобы подкаталоги и файлы внутри $HOME/www имели разрешения по умолчанию, как указано выше. Что мне здесь не хватает?

1 ответ1

1

Файлы по умолчанию не получают разрешения на выполнение. Каталоги делают. Попробуйте создать каталог, он должен иметь ожидаемые разрешения. Файлы должны получить ожидаемые разрешения по умолчанию за вычетом выполнения.

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