используя su для пользователя, у которого нет пароля

Я создаю пользователя, использующего команду useradd в Ubuntu, которая не требует, чтобы я установил пароль для пользователя. как всегда, когда я пытаюсь использовать команду su для входа в качестве этого пользователя, su требует, чтобы я все равно вводил пароль и выходил из «Ошибка аутентификации»

Не могли бы вы объяснить мне, как su работает и как Я зарегистрировался как пользователь, который не хранит пароль (например, пользователь Ubuntu по умолчанию в Amazon EC2)

su требует, чтобы я вводил пароль, даже если на ubuntu пользователя нет пароля

1
задан 29 July 2015 в 14:22

1 ответ

Сначала следует отметить, что с помощью su ubuntu можно было бы использовать среду текущего пользователя, в то время как обычно требуется использовать среду целевого пользователя; поэтому sudo - ubuntu - это путь.

Однако su недостаточно документирован, но тот факт, что для входа в систему как пользователя, который не имеет пароля, не разрешен, вероятно, просто su

Чтобы получить эквивалент su - ubuntu, который будет интерактивной оболочкой входа в качестве пользователя ubuntu, может возникнуть соблазн запустить sudo su - ubuntu, который не запрашивал бы пароль ; однако это было бы просто избыточным, так как sudo сам предоставляет эту функцию самостоятельно; используя sudo su - ubuntu, чтобы получить интерактивную оболочку входа, поскольку пользователь ubuntu будет точно таким же, как запуск сценария A, который запускает сценарий B, чтобы просто запустить скрипт B.

Итак, чтобы запустить интерактивную оболочку входа в систему как пользователь ubuntu, просто используйте sudo:

sudo -i -u ubuntu 

Из справочной страницы sudo для Trusty:

[...] -i, --login Run the shell specified by the target user's password database entry as a login shell. This means that login- specific resource files such as .profile or .login will be read by the shell. If a command is specified, it is passed to the shell for execution via the shell's -c option. If no command is specified, an interactive shell is executed. sudo attempts to change to that user's home directory before running the shell. The command is run with an environment similar to the one a user would receive at log in. The Command Environment section in the sudoers(5) manual documents how the -i option affects the environment in which a command is run when the sudoers policy is in use. [...] -u user, --user=user Run the command as a user other than the default target user (usually root ). The user may be either a user name or a numeric user ID (UID) prefixed with the ‘#’ character (e.g. #0 for UID 0). When running commands as a UID, many shells require that the ‘#’ be escaped with a backslash (‘\’). Some security policies may restrict UIDs to those listed in the password database. The sudoers policy allows UIDs that are not in the password database as long as the targetpw option is not set. Other security policies may not support this. [...]
1
ответ дан 23 May 2018 в 18:40

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

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