Текущие значения по умолчанию для учетной записи root в /etc/passwd
- root:x:0:0:root:/root:/bin/bash
.
Почему бы не установить его на root:x:0:0:root:/root:/usr/sbin/nologin
?
Если бы это было так, вы сможете запускать команды только с sudo
по одной за раз, но вы не сможете запустить корневую оболочку. Корневая оболочка удобна во многих случаях, например, если вы планируете запускать несколько команд от имени root подряд.
В частности, вы не могли запустить sudo -i
, как отметил AlexP. Из man sudo
:
-i, --login Run the shell specified by the target user's password database entry as a login shell.
Помимо sudo ответа Альберто Сантини, есть и другой (гораздо лучший) ответ. Если для оболочки root задано значение, отличное от оболочки, загрузка одного пользователя не работает. В sulogin
есть восстановление для таких вещей, как не существующая оболочка или полностью поврежденная оболочка, но оно не будет работать, если оболочка окажется действительной, но на самом деле не является оболочкой.
Вы все еще можете sudo
напрямую получить оболочку, указав оболочку sudo
, так что это даже не хорошая защита.