【问题标题】:Permission denied after using setfacl使用 setfacl 后权限被拒绝
【发布时间】:2014-05-17 10:24:47
【问题描述】:

有 3 个用户:A、B、C。

A 的主文件夹中有 mydir /home/A/mydir

B可以读取/home/A的内容

C可以读写/home/A内容

我是这样尝试的:

setfacl -Rm u:B:r /home/A/
setfacl -Rm u:C:rw /home/A/

su B
ls /home/A
ls: cannot access /home/A: Permission denied
mydir
cd /home/A
-bash: cd: /home/A/: Permission denied

cat /etc/fstabs:

/dev/sdb1 /media/esterno ext3 默认值,acl 0 2


getfacl /home/A:

getfacl: Removing leading '/' from absolute path names
# file: home/A
# owner: A
# group: A
user::rwx
user:B:r--
user:C:rw-
group::---
mask::rw-
other::---

【问题讨论】:

  • 通常你会希望 setfacl 重新计算掩码。你能打印getfacl /home/A的输出吗?
  • 我更新了主帖
  • 我看到了这个问题。您需要同时授予 B 和 C 执行权限。未设置执行权限时,即使是可读或可写的目录也不允许进入。
  • 谢谢!现在它起作用了!但逻辑在哪里?如果我正在阅读,为什么要设置执行权限?
  • 在unix系统上打开目录需要执行权限...

标签: linux bash file-permissions permission-denied


【解决方案1】:

正如tampis allready 所说,要在 linux 中切换到目录(或列出其内容,或读取其中的文件),需要对该目录具有执行权限。 将您的 setfacl 逗号更​​改为以下内容:

setfacl -Rm u:B:rx /home/A/
setfacl -Rm u:C:rwx /home/A/

【讨论】:

  • 这太疯狂了。 sudo setfacl -Rm u:user1:rx /x/x/cd /x/x/权限被拒绝
  • 那么这仅仅是因为主目录已经被 B 和 C 执行了吗?如果您先执行 [root]> setfacl -Rm u:C:rwx /home/A/shared/ 然后 [C]> cd /home/A/shared 会怎样?是不是每个父目录都需要x个权限才能遍历?
【解决方案2】:

您还需要执行权限以及对目录的读取权限

"setfacl -m  u:B:r-x /home/A"

【讨论】:

    猜你喜欢
    • 2017-03-01
    • 2015-01-18
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2019-10-05
    相关资源
    最近更新 更多