我應該始終將 root shell 設定為 /usr/bin/false 嗎?

我應該始終將 root shell 設定為 /usr/bin/false 嗎?

為了防止濫用 root 帳戶(在我的 macOS 上,單用戶)計算機,我是否應該始終將 shell 設為root/usr/bin/false/sbin/nologin)?

例如,我應該始終:

sudo /usr/bin/dscl . -create /Users/root UserShell /usr/bin/false 

或是否存在不這樣做的常見原因(除了明顯且可以避免的)?

答案1

不,你不應該,因為如果你需要root無法使用該帳戶(有時會出現這種情況,甚至在 Mac 上)進行故障排除或復原。

應該但是,請設定 root 密碼:

$ sudo passwd root

答案2

如果您按照概述設定 root shell,則無法登入或su -成為 root。然而,您仍然使用sudoor Even su(不帶減號)。

停用 root 登入通常是一個很好的安全措施。但是,您應該確保在系統發生故障時可以透過其他方式存取電腦。當系統行為異常時,根登入可能仍然有效,而普通帳戶則不能(也就是說,例如,為什麼在大多數 Unix 系統上,根主目錄不在一般使用者主目錄中,而是在系統磁碟機上)。

您可能仍然可以啟動到單一使用者模式,但對於當前的 MacOS 版本,我不能 100% 確定這一點,您應該檢查一下。如果即使使用無登入 shell 仍然可以實現這一點,那麼這就是您擺脫麻煩的方法,並且您可以安全地停用 root 登入。

如果沒有,那就成了你想死哪一種死法的問題了。自己決定更有可能發生的情況 - 有人濫用您的 root 帳戶或您的系統故障以至於您需要該 root 帳戶。

答案3

日常營運

您不需要root啟用該帳戶即可在 macOS 上執行日常操作。即使沒有啟用 root 帳戶及其 shell 設置,/usr/bin/false您仍然可以毫無問題地使用sudo(以及rootshell )。sudo -s

單一用戶模式

單一使用者模式使用 /private/etc/passwd 進行登入驗證,而不是 Open Directory:

pse@Mithos:~$ grep ^root: /etc/passwd 
root:*:0:0:System Administrator:/var/root:/bin/sh

pse@Mithos:~$ sudo dscl . -read /Users/root UserShell
UserShell: /usr/bin/false

所以對單一使用者模式不會產生負面影響。

相關內容