有两个linux用户
cloudera
omega
以上两个用户都在batchuser组下
[omega@node1 projects]$ ls -ltr
drwxrwsr-x+ 9 cloudera batchusers 4096 May 5 10:53 omega_events
[omega@node1 projects]$ cd omega_events
bash: cd: omega_events: Permission denied
[omega@node1 projects]$ cd omega_events
bash: cd: omega_events: Permission denied
[omega@node1 projects]$
我发现 omega 用户无法访问文件夹 omega_events
因此我以cloudera用户身份登录并向omega用户授予777权限
[cloudera@node1 projects]$ chmod 777 omega_events
[cloudera@node1 projects]$ ls -ltr
drwxrwsrwx+ 9 cloudera batchusers 4096 May 5 10:53 omega_events
之后我以 omega 用户身份登录,但仍然无法访问文件夹 omega_events
[omega@node1 projects]$ ls -ltr
drwxrwsrwx+ 9 cloudera batchusers 4096 May 5 10:53 omega_events
[omega@node1 projects]$ cd omega_events
bash: cd: omega_events: Permission denied
[omega@node1 projects]$
[omega@node1 projects]$ id omega
uid=1928292922(omega) gid=1928292922(omega) groups=1928292922(omega),1478288372(cc-manager),1478288372(batchusers),1478221121(emerge),1438902221(data_analytics)
[omega@node1 projects]$ getfacl omega_events
# file: omega_events
# owner: cloudera
# group: batchusers
user::rwx
user:omega:rw-
group::r-x
group:batchusers:rw-
mask::rwx
other::rwx
default:user::rwx
default:user:omega:rw-
default:group::r-x
default:group:batchusers:rw-
default:mask::rwx
default:other::r-x
有人可以帮我解决这个问题吗
答案1
删除设置组 ID 位
chmod 会保留 set-group-ID 位,除非您明确清除它们,所以chmod 777 omega_events
没有帮助。
相反,您需要像 cloudera 那样清除 set-group-ID 位,然后重复 chmod 以授予遍历权限(X) 给所有人batchusers
。
[cloudera@node1 projects]$ chmod g-s omega_events
[cloudera@node1 projects]$ chmod 775 omega_events
之后你应该得到
[cloudera@node1 projects]$ ls -ltr
drwxrwxr-x+ 9 cloudera batchusers 4096 May 5 10:53 omega_events
修复访问控制列表
另一个问题是您在 上有访问控制列表omega_events
。这由+
模式行末尾的符号指示。
以下规则导致用户权限被拒绝omega
user:omega:rw-
group:batchusers:rw-
您可以使用以下命令删除它们
[cloudera@node1 projects]$ setfacl -x u:omega omega_events
[cloudera@node1 projects]$ setfacl -x g:batchusers omega_events
你应该得到
[cloudera@node1 projects]$ getfacl omega_events
# file: omega_events
# owner: cloudera
# group: batchusers
user::rwx
group::r-x
mask::rwx
other::rwx
default:user::rwx
default:user:omega:rw-
default:group::r-x
default:group:batchusers:rw-
default:mask::rwx
default:other::r-x
另外,要删除默认 ACL,请使用以下命令
[cloudera@node1 projects]$ setfacl -k omega_events