
Чтобы предотвратить злоупотребление учетной записью root (на моем компьютере macOS, однопользовательском), следует ли мне всегда устанавливать оболочку 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, как вы описали, вы не сможете войти или su -
получить root. Однако вы все равно можете использовать sudo
или даже su
(без минуса).
Отключение входа root обычно является хорошей мерой безопасности. Однако вам следует убедиться, что вы можете получить доступ к машине каким-то другим способом в случае сбоя системы. Когда система ведет себя странно, вход root может по-прежнему работать, когда обычные учетные записи не работают (например, поэтому в большинстве систем Unix корневой домашний каталог находится не в обычном домашнем каталоге пользователя, а на системном диске).
Вы, вероятно, все еще можете загрузиться в однопользовательском режиме, но я не уверен на 100% в этом с текущими версиями MacOS, вам следует проверить. Если это все еще возможно даже с оболочкой без входа, это ваш выход из положения, и вы можете безопасно отключить вход root.
Если нет, то встает вопрос, какой смертью вы хотите умереть. Решите для себя, что более вероятно — кто-то злоупотребляет вашим аккаунтом root или ваша система работает со сбоями до такой степени, что вам понадобится этот аккаунт root.
решение3
Повседневные операции
Вам не нужно root
включать учетную запись для выполнения повседневных операций на macOS. И даже без включенной учетной записи root и ее оболочки /usr/bin/false
вы все равно можете использовать sudo
(и для root
оболочек 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
Таким образом, никаких негативных последствий для однопользовательского режима не будет.