我以这种方式设置了文件夹:
/ srv / samba / video
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::---
这意味着,用户泛滥使rwx到了/ srv / samba / video文件夹。
但是,当以用户泛滥的身份运行命令时,出现了奇怪的权限错误。
在/ 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)
这表明用户的泛滥确实属于群体泛滥。另外,当我也向用户灌流(不仅是组灌流)授予权限时,行为是相同的。以非系统用户身份执行时,它确实起作用。
我要使用绝对路径的原因是我使用的是自动触发的下载后脚本,该脚本将一些文件提取到该文件夹中。
我花了太多时间自己解决了这个问题。mkdir
不是唯一失败的命令,touch
它正在执行相同的操作,因此我怀疑这不是mkdir
错误。
如果您需要更多信息,我会尝试将其放在此处,只是问问。提前感谢。
编辑:
看来问题的根源是在perent文件夹上设置了acl /srv/samba
,它的确没有授予洪水泛滥的权限(但也没有否认)。
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
会以某种方式拒绝进行洪水泛滥的权限。
所以问题是:如何将acl设置为两者/srv/samba
,/srv/samba/video
以便sambaclients可以访问整个/srv/samba
和子目录,而deluge只能访问/srv/samba/video
和子目录?
用户deluge
必须能够看到父目录的内容/srv/samba
。因此,将可执行位应用于此:chmod o+x /srv/samba
解决了该问题。
它使用相对路径的原因是,在对命令进行sudo时,我们已经在目录中/srv/samba/video
,因此未应用任何权限检查。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句