Настройка прав доступа к файлам по умолчанию с помощью setfacl

мне нужно установить ACL по умолчанию для новых файлов, созданных httpd через apache service user таким образом, что файл создается с GUID, установленным на учетную запись пользователя dev (который хорошо называют разработчики), и специальные разрешения.

похоже, у меня SGID работает нормально, так как любые файлы, созданные PHP веб-страницами, имеют apache владелец и разработчики группы. Но вместо того, ACL rwxrwx--- у них есть rw-rw----.

[root@webserver ~]# cd /var/www/html
[root@webserver html]# setfacl -Rb .                  
[root@webserver html]# chmod -R g+s .                
[root@webserver html]# setfacl -Rdnm u:apache:rwx,g:devs:rwx .
[root@webserver html]# getfacl .
# file: .
# owner: apache
# group: devs
# flags: -s-
user::rwx
group::rwx
other::---
default:user::rwx
default:user:apache:rwx
default:group::rwx
default:group:devs:rwx
default:mask::rwx
default:other::---

[root@webserver html]# getfacl data.txt
# file: data.txt
# owner: apache
# group: devs
user::rw-
user:apache:rwx     #effective:rw-
group::rwx      #effective:rw-
group:devs:rwx    #effective:rw-
mask::rw-
other::---

данные.txt файл был создан с помощью PHP скрипта, выполняемого httpd / apache. Право собственности настроено правильно (apache/разработчики), но он не был создан с исполняемым разрешения для пользователя или группы.

сервер работает под управлением CentOS release 6.9 (Final)

какие идеи?

спасибо!

5
задан Justin
источник

1 ответов

разрешения Linux файл не зависит от setgid бит в каталоге. установить идентификатор группы заставляет файл быть созданным с идентификатором группы каталога вместо идентификатора группы создателя.

разрешения на вновь созданные файлы определяются создателем файла и зависят от маски создания файла (umask) в open или другие системные вызовы. Чтобы повлиять на разрешение файла в PHP вы должны использовать fopen или chmod, п.

Это можно сделать без использования ACL. Эти команды выполняют то же самое:

chmod g+s .
chgrp devs .

кажется необычным и небезопасным для PHP создавать исполняемые файлы из httpd. Надеюсь, ты знаешь, что делаешь.

1
отвечен RobertL 2017-11-01 04:00:17
источник