ОКОНЧАТЕЛЬНОЕ РЕШЕНИЕ

ОКОНЧАТЕЛЬНОЕ РЕШЕНИЕ

Наш промежуточный сервер находится на экземпляре Amazon EC2. Когда вы подключаетесь к нему по ssh, вы можете выполнить sudoкоманду sudo suбез необходимости ввода пароля.

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

Я попробовал установить пароль, sudo passwdно он мне все равно не нужен.

~$ sudo passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
~$ sudo su
/home/ubuntu# exit
~$ sudo passwd
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
~$ sudo su
/home/ubuntu#

ОБНОВЛЯТЬ

Я попробовал запросить пароль, запустив sudo visudoи добавив:

ubuntu        ALL=(ALL)       ALL

Теперь меня просят ввести пароль, но тот, который я установил, не работает! К счастью, я создал AMI до того, как начал все это делать.

Может ли быть проблема в том, что у меня не установлен пароль для ubuntuпользователя, мне следовало бы запустить sudo passwd ubuntuвместо sudo passwd root.


ОКОНЧАТЕЛЬНОЕ РЕШЕНИЕ

Хочу уточнить, моя ошибка была в том, что я установил пароль не для того пользователя, я пытался установить его длякореньтогда как мне следовало бы установить его дляубунтус:

~$ sudo passwd ubuntu

И затем обновление/etc/sudoersтаким образомубунтупользователь должен указать свой пароль при запуске sudoкоманды. Чтобы отредактировать этот файл, необходимо запустить sudo visudoи добавить:

ubuntu        ALL=(ALL)       ALL

решение1

Если у вас есть такая строка

ALL ALL=(ALL) NOPASSWD:ALL

в /etc/sudoers, это позволит всем пользователям использовать sudo без запроса паролей. Если вы раскомментируете эту строку, вам придется указать, каким пользователям разрешено использовать sudo, например

myuser ALL=(ALL) ALL

решение2

Sudo кэширует ваши учетные данные, поэтому, если вы используете его несколько раз в течение короткого периода времени, он запросит ваш пароль только в первый раз.

На странице руководства написано:

   timestamp_timeout
                     Number of minutes that can elapse before sudo will
                     ask for a passwd again.  The timeout may include a
                     fractional component if minute granularity is
                     insufficient, for example 2.5.  The default is 5.
                     Set this to 0 to always prompt for a password.  If
                     set to a value less than 0 the user's time stamp
                     will never expire.  This can be used to allow users
                     to create or delete their own time stamps via "sudo
                     -v" and "sudo -k" respectively.

Так что если вы всегда хотите запрашивать пароль, вы просто вводите , sudo visudoчтобы отредактировать файл. Добавьте эту строку:

Defaults        timestamp_timeout=0

Для всех команд sudo потребуется ввести пароль.

Связанный контент