為什麼 root 使用者可以控制 mysql 目錄但不能顯示為 mysql 組的成員?
它似乎與這裡的問題有些相似,但我認為我要問的有點不同。
我有一個執行 mysql 的 CentOS 5.x 機器。
root
linux 使用者可以編輯/修改/var/lib/mysql/
子目錄中的文件,但大多數(如果不是全部)這些目錄的文件系統所有權為mysql:mysql
.當我跑步時,
groups root
我看到:[root@foo ~]# groups root root : root bin daemon sys adm disk wheel
我知道這
root
是一個特權帳戶,可以/將有權訪問所有內容,但為什麼我沒有mysql
在它所屬的組列表中看到?
root 使用者的定義表明它可以控制磁碟上的所有文件,而不管擁有所述文件和目錄的使用者和組。
許多 Unix,例如 Solaris,曾經有一個限制,即使用者不能超過 15 個組。NIS 另一種共享使用者/組/自動安裝資訊的技術也有這個限制。
因此,通常您不會在這些組中看到 root 使用者。一方面,不可能這樣做(鑑於此限制),而且 root 使用者也不需要訪問具有其他所有權的文件/目錄。此外,讓所有服務/守護程序以 root 身份執行通常被認為是糟糕的設計,相反,它們每個都由自己的專用使用者和組管理。
因此,對您的問題的簡單回答是 root 不需要在這些組中,因為它可以對系統上的文件/目錄做任何想做的事情,它是主所有者,並且對本地文件具有完全的獨裁權系統。
那麼為什麼root在任何組中?
這更像是一種歷史實踐,您曾經在幾個關鍵組中看到 root。據我所知,這正在被逐步淘汰,而且我支持的大多數新系統不再有這個,因為現在完全沒有必要了。
軟呢帽 19
$ groups root root : root
中央作業系統 6
$ groups root root : root bin daemon sys adm disk wheel
注意: 您經常在其他組中看到 root 的主要目的是允許 root 直接在這些組中創建文件,而無需執行
chgrp
或chown
在之後在分組到這些組之一的目錄中創建文件之後。當 root 需要承擔其他組之一時,newgrp <group>
如果需要,它可以執行一個簡單的切換,或者尊重一個目錄上已經有 SGID 位的目錄。參考