Наш промежуточный сервер находится на экземпляре 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 потребуется ввести пароль.