使用绝对路径时命令没有权限

使用绝对路径时命令没有权限

我有这样设置的文件夹:

/srv/samba/视频

getfacl /srv/samba/video

# file: srv/samba/video
# owner: root
# group: nogroup
user::rwx
group::---
group:sambaclients:rwx
group:deluge:rwx
mask::rwx
other::---
default:user::rwx
default:group::---
default:group:sambaclients:rwx
default:group:deluge:rwx
default:mask::rwx
default:other::---

这意味着,用户 deluge 对文件夹 /srv/samba/video 具有 rwx 权限。

但是,当以用户 deluge 身份运行命令时,我收到奇怪的权限错误。

在文件夹 /srv/samba/video 中时:

sudo -u deluge mkdir foo

运行完美。

但是当使用绝对路径时:

sudo -u deluge mkdir /srv/samba/video/foo

我收到的许可被拒绝。

运行时sudo -u deluge id,我得到输出

uid=113(deluge) gid=124(deluge) skupiny=124(deluge)

这表明用户 deluge 确实在组 deluge 中。此外,当我向用户 deluge 授予权限而不仅仅是组 deluge 时,行为也是一样的。以非系统用户身份执行时,它确实有效。

我想要使​​用绝对路径的原因是我正在使用自动触发的下载后脚本,该脚本会将一些文件提取到文件夹中。

我自己花了太多时间解决这个问题。 mkdir不是唯一失败的命令,touch也在做同样的事情,所以我怀疑这不是mkdir的错。

如果您需要更多信息,我会尝试将其放在这里,只需询问即可。提前谢谢。

编辑:

问题的根源似乎是在 perent folder 上设置的 acl /srv/samba,它确实没有授予 deluge 权限(但也没有拒绝它)。

getfacl /srv/samba
# file: srv/samba
# owner: root
# group: nogroup
user::rwx
group::---
group:sambaclients:rwx
mask::rwx
other::---
default:user::rwx
default:group::---
default:group:sambaclients:rwx
default:mask::rwx
default:other::---

如果我也授予该文件夹权限,它会突然开始工作,所以我相信 acl on 以/srv/samba某种方式拒绝了 deluge 的权限。

所以问题是:我如何将 acl 设置为和,/srv/samba以便/srv/samba/videosambaclients 可以访问整个/srv/samba和子目录,而 deluge 只能访问/srv/samba/video和子目录?

答案1

用户deluge必须能够看到父目录的内容/srv/samba。因此,对其应用可执行位:chmod o+x /srv/samba解决了该问题。

它使用相对路径工作的原因是,当使用 sudo 命令时,我们已经在目录中/srv/samba/video,因此没有应用任何权限检查。

相关内容