所有者和群组所有者的权限相同,但结果不同

所有者和群组所有者的权限相同,但结果不同

我在 sftpuser 组中有一个名为 sftpuser 的用户。cat /etc/group | grep sftpuser结果为:

sftpuser:x:1001:sftpuser

我有目录htmlls -l在父文件夹中为该文件夹提供html以下内容:

drwxrwsr-x+ 2 root sftpuser

重启完成。

如果我使用 FileZilla 和用户 sftpuser 连接到服务器并进入目录 html,我无法创建新文件。我在使用 WinSCP 时也遇到了同样的问题 (3 - 权限被拒绝)。如果我将 sftpuser 声明为所有者,它就可以正常工作。FileZilla 在文件夹 html 的所有者/组下显示“root 1001”。

到底为什么?顺便问一下,权限描述符末尾的加号代表什么?

答案1

权限字符串末尾+的 表示该目录具有访问控制列表 (ACL)应用于它。

您的 ACL 很可能以某种方式拒绝用户sftpuser对该目录的写访问权限。

要查看目录的 ACL html,请使用以下命令:

getfacl html

这应该输出类似下面的内容:

# file: html
# owner: root
# group: sftpuser
# flags: -s-
user::rwx
group::rwx
other::r-x

上面显示的行是具有权限字符串的目录的默认设置drwxrwsr-x。任何附加行都是 ACL 的运作方式。

例如,如果getfacl输出如下:

# file: html
# owner: root
# group: sftpuser
# flags: -s-
user::rwx
user:sftpuser:r-x
group::rwx
mask::rwx
other::r-x

然后,由于该行user:sftpuser:r-x,用户sftpuser将明确被拒绝对该目录的写访问权限。

上述情况可能不是您的具体情况,但也许其他一些 ACL 条目与用户匹配sftpuser并拒绝写访问。

您可以通过运行删除单个 ACL 条目,例如:

# replace "user:sftpuser" with the entry you want to remove, but omit the permissions part
setfacl -x user:sftpuser html

或者,您可以通过运行以下命令删除所有条目(用户、组和其他的默认条目除外):

setfacl -b html

相关内容