研发反应使用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
网友评论