
為了防止濫用 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。然而,您仍然使用sudo
or Even su
(不帶減號)。
停用 root 登入通常是一個很好的安全措施。但是,您應該確保在系統發生故障時可以透過其他方式存取電腦。當系統行為異常時,根登入可能仍然有效,而普通帳戶則不能(也就是說,例如,為什麼在大多數 Unix 系統上,根主目錄不在一般使用者主目錄中,而是在系統磁碟機上)。
您可能仍然可以啟動到單一使用者模式,但對於當前的 MacOS 版本,我不能 100% 確定這一點,您應該檢查一下。如果即使使用無登入 shell 仍然可以實現這一點,那麼這就是您擺脫麻煩的方法,並且您可以安全地停用 root 登入。
如果沒有,那就成了你想死哪一種死法的問題了。自己決定更有可能發生的情況 - 有人濫用您的 root 帳戶或您的系統故障以至於您需要該 root 帳戶。
答案3
日常營運
您不需要root
啟用該帳戶即可在 macOS 上執行日常操作。即使沒有啟用 root 帳戶及其 shell 設置,/usr/bin/false
您仍然可以毫無問題地使用sudo
(以及root
shell )。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
所以對單一使用者模式不會產生負面影響。