linux 解决用户目录权限问题

背景:/usr/share/nginx默认所属组为root,但nginx默认用户为www或www-data,当nginx有php执行写入动作时,由于权限问题,导致执行失败。

解决方案

方案一.保持原有不变,将www或www-data用户添加root组中(安全隐患)

1
2
#将www-data用户追加到root组中
usermod -aG root www-data

方案二,使用修改所属组(安全,但会破坏目录原有权限)

1
2
#将所属组该为www-data组
chgrp -R www-data /usr/share/nginx

方案三,使用acl控制(推荐)

在linux默认一个目录或文件只能有一个所属组,但acl变相的增加所属组!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#1.安装
 apt-get install acl
 #或yum -y install acl

#2.设置 ACL 权限(为 www-data 用户设置对 /usr/share/nginx 目录的管理权限:)
#2.1设置现用目录权限
setfacl -R -m u:www-data:rwx /usr/share/nginx
#2.2设置新生成目录或文件权限
setfacl -R -m d:u:www-data:rwx /usr/share/nginx


#3.验证
getfacl /usr/share/nginx

setfacl -R -m u:gocron:rwx /disk1

setfacl -R -m d:u:gocron:rwx /disk1