Текущие значения по умолчанию для учетной записи суперпользователя в /etc/passwd
IS root:x:0:0:root:/root:/bin/bash
.
Почему бы не установить его root:x:0:0:root:/root:/usr/sbin/nologin
?
Текущие значения по умолчанию для учетной записи суперпользователя в /etc/passwd
IS 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 /bin/bash
работает, чтобы сделать это?
sudo -s
меня (корневая оболочка, но не корневая оболочка входа в систему ). Это хороший момент - и на самом деле sudo -s
, похоже, он работает, даже когда оболочка root/usr/sbin/nologin
-i
, -s
, /bin/bash
и так далее, просто позволяя белый список команд, смотрите документацию для файла sudoers. Это настолько мелко, что, например, можно разрешить пользователям работать /etc/init.d/someservice restart
с правами root, не позволяя им работать /etc/init.d/someservice stop
. Но по умолчанию Ubuntu просто не устанавливает пароль root
и позволяет администраторам делать все с помощью sudo. Вероятно, обоснование заключается в том, что: а) несколько пользователей с правами администратора и б) пользователю с правами администратора не нужно запоминать второй пароль для учетной записи root.
Помимо sudo ответа Альберто Сантини, есть еще один (гораздо лучший) ответ. Если для оболочки root задано значение, не являющееся оболочкой, загрузка одного пользователя не работает. Существует восстановление sulogin
для таких вещей, как не существующая оболочка или полностью поврежденная оболочка, но она не будет работать, если оболочка окажется действительной, но на самом деле не является оболочкой.
Вы все еще можете sudo
напрямую получить оболочку, указав ее, sudo
чтобы она даже не была хорошей защитой.
sudo -i
?