Linux

為什麼 root 使用者可以控制 mysql 目錄但不能顯示為 mysql 組的成員?

  • December 16, 2018

它似乎與這裡的問題有些相似,但我認為我要問的有點不同。

我有一個執行 mysql 的 CentOS 5.x 機器。rootlinux 使用者可以編輯/修改/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 直接在這些組中創建文件,而無需執行chgrpchown在之後在分組到這些組之一的目錄中創建文件之後。當 root 需要承擔其他組之一時,newgrp <group>如果需要,它可以執行一個簡單的切換,或者尊重一個目錄上已經有 SGID 位的目錄。

參考

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