CentOS 中的文件权限问题

CentOS 中的文件权限问题

有人能解释一下如何正确管理权限吗?我有一个具有以下权限的文件:

8 -rw-r--r--+ 1 sntecard  sntecard    4669 Sep 18 12:34 index.php

我正在以用户 myuser 的身份访问此文件夹并尝试对其进行修改。当然,我不能。好的,我正在添加组写入权限并将自己添加到 sntecard 组(作为 root):

usermod -a -G sntecard myuser

chmod g+w index.php

让我们检查权限:(ls -ls)

8 -rw-rw-r--+ 1 sntecard  sntecard    4669 Sep 18 12:34 index.php

现在让我们检查一下我是否在一个组中:(grep sntecard /etc/group)

sntecard:x:503:sntecard,myuser

太棒了,我加入了一个群组,现在应该有权限了!但是不行。我无法写入此文件。通过 sFTP 无法写入,通过 nano index.php 永远都无法写入。写入文件时出现访问错误。

我做错了什么?

PS 权利行末尾的“+”到底是什么意思?

答案1

您应该使用id查看您当前的用户和组 ID。实际上,您应该再次登录以获取新的组 ID。

PS 权利行末尾的“+”到底是什么意思?

这隐藏在信息页面 (info ls) 中

Following the file mode bits is a single character that specifies
 whether an alternate access method such as an access control list
 applies to the file.  When the character following the file mode
 bits is a space, there is no alternate access method.  When it is
 a printing character, then there is such a method.

GNU `ls' uses a `.' character to indicate a file with an SELinux
 security context, but no other alternate access method.

A file with any other combination of alternate access methods is
 marked with a `+' character.

答案2

在输出中ls -ls

 8 -rw-r--r--+ 1 sntecard  sntecard    4669 Sep 18 12:34 index.php

该数字是选项和文件大小(以块为单位)的8结果。-s

以下顺序-rw-r--r--+依次是文件所有者 ( -rw)、文件组中的其他用户 ( -r-)、不在文件组中的其他用户 ( -r-) 或所有用户 ( -) 的可读权限。

尾部+表示更多扩展的访问控制。这些无法通过辅助命令显示ls,需要辅助命令。例如,在使用 acl 选项安装的文件系统的情况下,getfacl显示和setfacl修改 POSIX ACL。

POSIX ACL 将覆盖和ugoa使用的简单权限。chmodchown

如果不是尾随加上+一个点.则会显示;这表示 SELinux 上下文,需要标志-Z才能ls显示它们。

为了完整性,1是引用计数,2如果文件有硬链接则为 3,如果有两个硬链接则为 3,等等。对于目录,该数字至少为 2,并且随着该目录中的每个文件和/或目录而增加。

然后是所有者和组,后面是实际文件大小(以字节为单位)。具有大小的目录0是不包含任何文件的目录,例如 /proc、/sys 等伪​​文件系统以及由自动挂载程序管理的目录。然后是最后修改日期的时间戳,后面是实际文件名。

答案3

我自己找到了一个答案。“+”表示为该文件设置的替代 ACL(访问列表)。当我们查看它们时,我们可以看到

getfacl index.php

# file: index.php
# owner: sntecard
# group: sntecard
user::rw-
user:cyberuser:rwx              #effective:rw-
group::r--
mask::rw-
other::rw-

这意味着没有组写入权限。通过以下方式更改此设置:

setfacl -m group::rw- index.php

解决了一个问题。

相关内容