文件的 root 權限是什麼?

文件的 root 權限是什麼?

如果我輸入:

ls -l file.txt

我看到該文件的權限相當於“456”:

  • 4 = 所有者 (r--)
  • 5 = 組(接收)
  • 6 = 其他(RW-)

有哪些權利在這種情況下?有777嗎?

是否可以更改權限以使 root 的權限少於所有者?

答案1

我會檢查此頁出。它深入討論了文件權限。

但直接回答你的問題,不:

超級使用者「root」能夠存取系統上的任何檔案。

例如,在您的範例中,如果該文件由 say 擁有bob,並且群組所有者也是bob,那麼您會看到類似這樣的內容:

-r--r-xrw-. 1 bob bob 8 Jan 29 18:39 test.file

第三位組 (rw) 也適用於根,因為根是該others組的一部分。如果您嘗試以 root 身分編輯該文件,您會發現這樣做沒有問題。

但為了進一步測試你的理論,如果該檔案由 root 擁有:

-r--r-xrw-. 1 root root 8 Jan 29 18:40 test.file

然後你再去編輯該文件,你會發現編輯它仍然沒有問題。

最後,如果你做了極端:

chmod 000 test.file
ls -lh test.file
----------. 1 root root 8 Jan 29 18:41 test.file

然後您再次編輯您將看到的文件(至少在 vi/vim 中)"test.file" [readonly]。但您仍然可以編輯該文件並強制將其儲存為:wq!.


使用 shell 腳本檔案測試 @Stéphane Chazelas 的聲明:

#!/bin/sh

echo "I'm alive! Thanks root!"


[root ~]# ls -lh test.sh
----------. 1 atgadmin atgadmin 31 Jan 30 10:59 test.sh

[root ~]# ./test.sh
-bash: ./test.sh: Permission denied

[root ~]# sh test.sh
I'm alive! Thanks root!

@Shadur 已經說過了,所以我只是引用而不是重述:

注意:檢查執行位元是否存在,而不是檢查它是否適用於 root。

答案2

根據設計,根用戶可以完全存取系統上的每個檔案。如果您想保護檔案免於意外刪除,您可以使用

chattr +i file

這將在 GNU/Linux 上設定不可變標誌。您可以使用-i而不是刪除它+i

在 FreeBSD 上,您可以使用

chflags schg file

替代noschgschg撤消它。

如果您希望防止檔案被 root 看到,您應該將檔案儲存在不同的系統上,或使用加密作為最後的手段。

也可以看看:https://superuser.com/questions/104015/removing-write-permission-does-not-prevent-root-from-writing-to-the-file

答案3

是否可以更改權限以使 root 的權限少於所有者?

Shure,很簡單,只需更改 passwd 文件,使 root 的 uid 不為零即可。另一方面,不要這樣做,這是個壞主意。

您不是第一個問這個問題的人,其中一些提出了功能的想法,但我們稍後會討論這個問題,首先讓我們從了解權限系統的工作原理開始。

啟動進行存取檢查的電腦部分並不知道您的姓名,它透過號碼來識別您,該號碼稱為 uid 或使用者識別碼。以類似的方式,它不知道您所屬群組的名稱,只知道 gid。 uid 和 name 之間的對應位於 passwd 檔案中,而 gid 則映射在 groups 檔案中。

現在,當您想要開啟檔案時,會進行四項檢查:您是否有權跳過檢查,您作為使用者是否被允許這樣做,您是否作為群組成員被允許,以及您作為其他人是否被允許被允許。我在這裡跳過一些內容,例如名稱服務開關和存取控制清單以及讀寫執行,但您感興趣的部分是第一個測試。

有時您可以跳過檔案權限測試。為什麼?以及(非常重要)什麼時候?現在,有時需要完成一些您不希望任何人都做的事情,而且它們不太適合檔案權限模型。各種各樣的事情,例如在低連接埠上開啟網路連線、安裝分割區或跳過權限檢查。如今,這些東西被稱為能力。在過去,UID0 擁有所有這些,您對此無能為力,現在您可以向其他用戶提供功能,或放棄它們,但預設是舊的行為。

另一種限制 root 的方法是使用 selinux 之類的東西,但那是另一個蠟球。

答案4

在這種情況下,root 的權利是什麼?有777嗎?

是的。

如前所述,不會對 root 強制執行讀寫權限。但是,仍會檢查執行權限是否存在,因此如果未設定執行標誌,root 將無法執行該檔案。這裡的情況並非如此,因為該組有x旗幟。

另請注意,無論是否授予寫入權限,root 或任何人都將被拒絕對儲存在唯讀檔案系統上的檔案進行寫入存取。

如果檔案儲存在遠端安裝的目錄(如 NFS)上,則根使用者的權限也可能比擁有者少。

最後,請注意,符號連結權限本質上是沒有意義的。

相關內容