读取/访问 root 拥有的目录下的用户帐户拥有的文件

读取/访问 root 拥有的目录下的用户帐户拥有的文件

我有一个仅限 ssh 的用户帐户,名为pgbackrest禁用密码。我以 root ( ) 身份创建了一个目录 /etc/pgbackrest/ sudo mkdir -p /etc/pgbackrest。然后我在上述目录下创建一个配置文件,并将所有权更改为该帐户pgbackrestsudo chmod 640 /etc/pgbackrest/pgbackrest.conf 当我尝试使用以下命令编辑它时

  1. 切换到pgbackrest用户sudo su - pgbackrestvim /etc/pgbackrest/pgbackrest.conf进入/etc/pgbackrest/pgbackrest.conf" [Permission Denied]vim编辑器。
  2. sudo -u pgbackrest vim /etc/pgbackrest/pgbackrest.conf,我进入/etc/pgbackrest/pgbackrest.conf" [Permission Denied]vim编辑器。

上级目录的权限是否禁止编辑?640 表示所有者和组成员可以读取、写入。我以所有者身份访问文件,为什么会出现访问被拒绝的情况?

答案1

为了使用户能够访问文件,他们还需要对该文件的路径中的所有目录的权限。

他们至少需要x目录的权限。

就你而言(来自评论)你有

drwxr-x---   3 root root       4096 Aug 10 22:56 pgbackrest

以及文件本身:

-rw-r-----   1 pgbackrest pgbackrest    0 Aug 10 01:12 pgbackrest.conf

这意味着pgbackrest用户无法访问该文件来读取它。

一个简单的解决方案是添加x权限:

chmod a+x /etc/pgbackrest

现在任何知道该目录中文件名的人都可以尝试访问该文件,但文件权限也生效。因此,只有pgbackrest用户或pgbackrest组中的任何人才能打开该文件;其他人都会被阻止。

相关内容