Permissions

讀取/訪問使用者帳戶擁有的文件,該文件位於 root 擁有的目錄下

  • August 15, 2021

我有一個 ssh only 使用者帳戶pgbackrest,名為 disabled password 。我已經創建了一個目錄 /etc/pgbackrest/ 作為 root ( sudo mkdir -p /etc/pgbackrest)。然後我在上面的目錄下創建一個配置文件並將所有權更改為帳戶pgbackrestsudo chmod 640 /etc/pgbackrest/pgbackrest.conf 當我嘗試使用它進行編輯時

  1. 切換到pgbackrestuser sudo su - pgbackrestand vim /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 表示所有者和群組成員可以讀、寫。我以所有者身份訪問文件,為什麼我會被拒絕訪問?

為了使使用者能夠訪問文件,他們還需要對指向該文件的路徑中的所有目錄的權限。

他們至少需要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組中的任何人才能打開文件;其他所有人都將被阻止。

引用自:https://unix.stackexchange.com/questions/664186