无法访问 Linux 目录

无法访问 Linux 目录

有两个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

相关内容