Linux权限管理之ACL权限

研发反应使用logger账号无法访问/opt文件夹,无法发布服务

第一反应是没有加r权限,但是发现该文件夹rx权限都有

但仔细一看还是发现了不同,opt目录权限后面有一个+号

这个就涉及到acl权限了

使用getfacl来查看该目录的权限

getfacl /opt

可以发现虽然/opt的权限是755,但对于logger用户而言,他没有任何权限

使用setfacl对其修改权限

setfacl -m u:logger:r-x /opt  #加粗部分分别为授权用户,权限,路径

修改完成后,已经可以访问该文件夹。

但是,进入该文件夹的子目录下,发现还是无法访问,这时候还涉及到2个参数的修改

-d参数:针对该文件夹下所有新增的文件夹/文件有效,对已经存在的无效

-R参数:针对已经存在的生效,对新增的无效

因此此处授权命令为

setfacl -m u:logger:r-x -R /opt/jdk1.8.0_112/

#################################################################################################

#错误写法

#注意那个-R一定要写在这个位置,我之前试过写成setfacl -m -R u:logger:r-x /opt/jdk1.8.0_112/,直接报错

#此外还写成过setfacl -m -R d:u:logger:r-x /opt/jdk1.8.0_112/,这样不会对已经存在的生效,只能先执行-R,再分开使用-d参数

#################################################################################################

授权问题解决,不过试了一下直接在logger用户下执行java还是报告command not found

进入/home/logger目录下,编辑.bashrc文件

定义一下环境变量并source后,可以正常执行

JAVA_HOME=/opt/jdk1.8.0_112

export PATH=$PATH:$JAVA_HOME/bin

source .bashrc

setfacl -m d:u:logger:r-x -R /opt

你可能感兴趣的:(Linux权限管理之ACL权限)