我很确定我弄乱了目录的权限setfacl
。
在恢复所有内容之前,我想了解原因getfacl
并stat
可以为组所有权提供不同的结果。
stat /run/media/mb
产生这个:
File: /run/media/mb/
Size: 80 Blocks: 0 IO Block: 4096 directory
Device: 14h/20d Inode: 19580 Links: 4
Access: (0775/drwxrwxr-x) Uid: ( 1001/ mb) Gid: ( 169/transmission)
Access: 2020-11-29 13:16:04.352491648 +0100
Modify: 2020-11-23 19:01:18.921787997 +0100
Change: 2020-11-23 19:40:50.176827454 +0100
Birth: -
好的,该目录的权限授予“transmission”组成员完全访问权限。双方均namei -olm
同意ls -l
和stat
。
getfacl /run/media/mb
不同意:
getfacl: Removing leading '/' from absolute path names
# file: run/media/mb
# owner: mb
# group: transmission
user::rwx
user:mb:r-x
group::---
mask::rwx
other::r-x
据 称getfacl
,该群组的成员根本没有访问权限。
实际上,属于“transmission”组的用户“transmission”无法访问该目录:
sudo -u transmission ls /run/media/mb/
产量
ls: cannot open directory '/run/media/mb/': Permission denied
0775
如何一方面协调不同的权限,group::---
另一方面又如何协调?我的假设是这些一定是不矛盾的。
从man 5 acl
:
ACL 条目和文件权限位之间的对应关系
ACL 定义的权限是文件权限位指定的权限的超集。
文件所有者、组和其他权限与特定 ACL 条目之间存在对应关系:所有者权限对应于 ACL_USER_OBJ 条目的权限。如果ACL中有ACL_MASK条目,则组权限对应于ACL_MASK条目的权限。否则,如果 ACL 没有 ACL_MASK 条目,则组权限对应于 ACL_GROUP_OBJ 条目的权限。其他权限对应于 ACL_OTHER_OBJ 条目的权限。
文件所有者、组和其他权限始终与相应 ACL 条目的权限匹配。文件权限位的修改会导致关联的 ACL 条目的修改,而这些 ACL 条目的修改会导致文件权限位的修改。
是/run/media/mb
链接吗?
似乎不是:file /run/media/mb
说,/run/media/mb: directory
并realpath /run/media/mb
产生/run/media/mb
。除了以下内容外,也stat -L
没有显示任何其他内容stat
:
File: /run/media/mb
Size: 80 Blocks: 0 IO Block: 4096 directory
Device: 14h/20d Inode: 19580 Links: 4
Access: (0775/drwxrwxr-x) Uid: ( 1001/ mb) Gid: ( 169/transmission)
Access: 2020-11-30 18:55:22.446709839 +0100
Modify: 2020-11-23 19:01:18.921787997 +0100
Change: 2020-11-23 19:40:50.176827454 +0100
Birth: -
从哪里来/run/media/mb
?
我用udiskie
在 Raspberry Pi 4 上安装外部设备。为每个外部设备udiskie
创建并添加子目录。/run/media/mb