Linux setfacl разрешает другому пользователю и может писать рекурсивно

У меня есть два пользователя в одной группе 1. пользователь 1: datauser 2. пользователь 2: webuser 3. Группа: apache

То, что установить разрешение с помощью setfact для любого из пользователей, может создать каталог / файл рекурсивно.

Пример: каталог / web / foo / Какое разрешение / маска установлена ​​(с помощью setfact), чтобы datauser / webuser мог создать каталог под foo dir (рекурсивно).

#datauser : mkdir -p /web/foo/datadir/
#webuser : mkdir -p /web/foo/datadir/webdir
#datauser : touch /web/foo/datadir/webdir/datafile.txt
#webuser : touch /web/foo/datadir/webfile.txt
etc...

I try with below command, but when any directory created using      
webuser:apache, then datauser:apache not able to write under that.

setfacl -Rm u:webuser:rwX,d:u:webuser:rwX foo
setfacl -Rm u:datauser:rwX,d:u:datauser:rwX foo
setfacl -Rm m:rwX,d:m:rwX foo

Это умаск и чмод не работают.
[datauser] $ mkdir foo
[datauser] $ chmod g + ws foo
[datauser] $ umask 002 foo

[datauser] $ getfacl foo
файл: foo
владелец: datauser группа: apache
флаги: -s-
Пользователь:: RWX
группа:: RWX
другое:: ого

Теперь создайте каталог, используя webuser:apache user [PHP: mkdir(/web/foo/browser, 0755, ture); ] И разрешение каталога: [datauser]$ getfacl foo/browser/ file: foo/browser/
владелец: apache
группа: apache
флаги: -s-
Пользователь:: RWX
группа:: гх
другое:: ого

Теперь создайте файл в директории браузера. в получении разрешения отказано.

[datauser] $ touch foo/browser/command.txt
touch: не может касаться 'foo/browser/command.txt': разрешение запрещено

1 ответ

Как насчет использования chmod g+ws /web/foo? Это устанавливает setgid а также write биты в каталоге, что делает группы всех созданных файлов apache в этом каталоге, и позволяет всем apache Сгруппируйте пользователей для записи в этот каталог и создания дополнительных каталогов внутри него.

И еще одна вещь, которую вам нужно сделать, это обновить свой umask так что эта группа имеет разрешения на запись по умолчанию. Итак, вы должны добавить umask 002 где-то в ваших файлах запуска, так что группа получает разрешения на запись по умолчанию.

Другие вопросы по тегам