Почему может я запускать корневую оболочку с sudo даже с a'! 'в его теневой записи?

$cat /etc/passwd |grep -i root
root:x:0:0:root:/root:/bin/bash

$sudo cat /etc/shadow |grep -i root
root:!:17179:0:99999:7:::

Во втором поле теневого файла, ! пользователь root средств не может войти в систему, но почему я могу войти в пользователя root sudo su?

Почему я не могу войти в пользователя root su root или su -?

9
задан 12 February 2017 в 03:51

2 ответа

! в shadow поле зашифрованного пароля записи означает, что никакой пароль не может пройти проверку подлинности против него. От man shadow:

If the password field contains some string that is not a valid
result of crypt(3), for instance ! or *, the user will not be able
to use a unix password to log in (but the user may log in the
system by other means).

Как в руководстве говорится, это не означает, что Вы не можете войти в систему как корень. Это просто означает, что Вы не можете войти в систему как корень с помощью пароля для корневой учетной записи. (Можно войти в систему как корень через SSH, использующий ключи SSH, например, при конфигурировании его ранее даже если учетная запись заблокирована.)

sudo обычно проходит проверку подлинности с Вашим паролем, не корень. Это может быть изменено путем установки одного из targetpw, rootpw или runaspw в sudoers. Если Вы устанавливаете эту опцию и пытаетесь использовать пароль, когда пароль заблокирован, который перестанет работать.

15
ответ дан 23 November 2019 в 04:49

Теперь давайте посмотрим на команды соответственно:

  1. sudo su:

    • sudo выполняет команду su (замените пользователем) с полномочиями пользователя root поэтому, даже если /etc/shadow говорит или имеет root:!:17179:0:99999:7::: это будет все еще команды выполнения с полномочиями пользователя root.
  2. su - или su root:

    • Это на самом деле переключается на пользователя root который от /etc/shadow файл не может войти в систему настолько использующий эти команды, не будет работать. Если Вы хотите, чтобы они работали затем, корневая учетная запись должна быть разблокирована путем предоставления ему пароля.

Сводка:

su - 0r su root переключатели к пользовательскому корню, не существует так, этого не может произойти, но sudo su выполнения переключают команду с root полномочия, так в этом случае это пойдет, если Вы будете в sudo группа. Вы на самом деле не входите в систему как корень в этом случае, просто действуя как корень, таким образом, он пойдет.

Источник: Каково различие между 'su -' и 'su корень'?

4
ответ дан 23 November 2019 в 04:49

Другие вопросы по тегам:

Похожие вопросы: