web-dev-qa-db-ja.com

CentOs 7&SELInux:ユーザーはApacheのWebrootに書き込むことができません

私のユーザーは、SudoなしではApache/phpファイルを追加、変更、または削除できません。

私の環境は次のとおりです。

  • CentOSLinuxリリース7.2.1511
  • SELinuxステータス:有効
  • 現在のモード:強制
  • Apache 2.4.23

私のユーザーはすでにApacheのグループに属しています。

$ id
uid=1000(lmeza) gid=1000(lmeza) groups=1000(lmeza),10(wheel),48(Apache) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

ApacheのWebrootにはすでにラベルがありますhttpd_sys_content_t

$ ls -Z /var/www
drwxr-xr-x. root   root   system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-sr-x. Apache apache unconfined_u:object_r:httpd_sys_content_t:s0 html

Httpd_sys_rw_content_tというラベルのディレクトリがありますが、彼に書き込むことができません。

$ ls -lahZ /var/www/html
drwxr-xr-x. Apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 modules

$ touch /var/www/html/modules/abc.txt
touch: cannot touch ‘/var/www/html/modules/abc.txt’: Permission denied

正解ファイルアクセス制御リストを取得します。

$ getfacl /var/www/html
getfacl: Removing leading '/' from absolute path names
# file: var/www/html
# owner: Apache
# group: Apache
# flags: -s-
user::rwx
user:Apache:rwx
group::r-x
group:Apache:rwx
mask::rwx
other::r-x
default:user::rwx
default:user:Apache:rwx
default:group::r-x
default:group:Apache:rwx
default:mask::rwx
default:other::r-x
2
Lenin Meza

CentOs7で機能するSELinuxおよびACLパーミッションを確立する正しい方法は次のとおりです。

# Restablish the SELInux context:
Sudo restorecon -Rv /var/www/html
# Change the owner of the webroot:
Sudo chown -R Apache:apache /var/www/html
# Change basic permissiones:
Sudo chmod -R g+w /var/www/html
Sudo chmod g+s /var/www/html
# Establish SELinux permissions:
Sudo chcon -Rt httpd_sys_content_t /var/www/html
Sudo chcon -Rt httpd_sys_rw_content_t /var/www/html/modules
# Establish ACL permissions:
Sudo setfacl -R -m u:Apache:rwx /var/www/html
Sudo setfacl -R -m d:u:Apache:rwx /var/www/html
Sudo setfacl -R -m g:Apache:rwx /var/www/html
Sudo setfacl -R -m d:g:Apache:rwx /var/www/html

Drupal 8の完全なスクリプトは次の要点にあります: https://Gist.github.com/merolhack/854c3d371f31b21fb6cb538fe02a0444

4
Lenin Meza