Я могу подключиться к моему серверу (CentOS 5.9) по SSH, используя учетную запись администратора с привилегиями sudo:
$ ssh admin@myserver
Last login: Wed Feb 27 19:23:11 2013 from [IP ADDRESS]
[admin@myserver ~]$
Затем я могу su получить root:
[admin@myserver ~]$ sudo su root
[sudo] password for admin:
[root@myserver admin]#
Но я не могу передать su другому пользователю, и команда su не сообщает мне, почему:
[admin@myserver ~]$ sudo su anotheruser
[admin@myserver ~]$ whoami
admin
Любая идея, почему я могу получить root-права, но не для других пользователей?
Как я могу заставить su сказать мне, почему он не выполняет то, что я хочу?
На случай, если это будет полезно кому-то еще: я столкнулся с теми же симптомами, но ответ не имел ничего общего с sudo
конфигурация.
Вместо этого имело значение, какой пользователь Я пытался su
к. Целевым пользователем был псевдопользователь службы (jenkins), у которого в качестве оболочки был / bin / false. Исправление заключалось в том, чтобы изменить оболочку на действительную (используя chsh
).
Проверьте /var/log/security
и /var/log/auth.log
.
Почему вы используете sudo
использовать su
? Вам не нужно этого делать, если вы не измените свои стандартные ACL.
Если вы используете sudo
, то проблема может быть связана с файлом sudoer. Убедитесь, что он настроен правильно.
Какие разрешения предоставляются в /etc/sudoers
к admin
?
Также, как root
ты всегда мог su - anotheruser
. Возможно, это дополнительный шаг, но ничего не зная о вашем файле sudoers, это сработает.