Permissions
讀取/訪問使用者帳戶擁有的文件,該文件位於 root 擁有的目錄下
我有一個 ssh only 使用者帳戶
pgbackrest
,名為 disabled password 。我已經創建了一個目錄 /etc/pgbackrest/ 作為 root (sudo mkdir -p /etc/pgbackrest
)。然後我在上面的目錄下創建一個配置文件並將所有權更改為帳戶pgbackrest
,sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
當我嘗試使用它進行編輯時
- 切換到
pgbackrest
usersudo su - pgbackrest
andvim /etc/pgbackrest/pgbackrest.conf
,我進入/etc/pgbackrest/pgbackrest.conf" [Permission Denied]
vim 編輯器。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
組中的任何人才能打開文件;其他所有人都將被阻止。