Как мне напрямую войти в оболочку пользователя?

3427
Nifle

Я делаю следующее много раз в день

Я захожу на сервер через ssh as user1,
затем делаю, su -чтобы стать root,
затем делаю, su --login user2чтобы статьuser2

Есть ли способ сказать, suчтобы перейти user2непосредственно user1?

Примечание:
user21 не имеет пароля. user2называется по-разному в разное время. (apache, liferay, solr, ftp, ...)

Примечание 2:
user1 ему не доверяют sudo, это учетная запись общего назначения, используемая в основном для доступа к журналам. У него даже нет пароля, доступ предоставляется только с помощью sshkey.

Примечание 3:
НЕТ решений, которые означают любую модификацию удаленного компьютера. У меня есть 30+ серверов, которые я администрирую.

1 Если вам интересно, это пользователь, под которым запускается приложение (tomcat, apache, jetty или подобное)

3
Попробуйте `su - -c" su - user2 "` Keith 13 лет назад 1
@Keith - Вы должны опубликовать это как ответ, поскольку это именно то, что я ищу. Nifle 13 лет назад 0

3 ответа на вопрос

3
Majenko

Вы можете использовать «sudo» вместо «su».

Разрешить user1 запускать команду оболочки (/ bin / bash?) Как user2 (в файле sudoers - отредактируйте с помощью visudo):

user1 ALL=user2 /bin/bash 

Затем вы можете (как user1) сделать:

$ sudo -u user2 /bin/bash 
Должен был упомянуть, что sudo не вариант. `user1` - это пользователь, к которому имеют доступ многие люди (в основном он используется для проверки журналов). Я не хочу, чтобы у них был доступ к `user2` Nifle 13 лет назад 0
3
Keith

Это будет работать:

su -c "su - user2" 
0
Dustin G.

Я уверен, что вы можете выполнить:

sudo su user2 

Все, что вы делаете, это переходите в root, чтобы иметь право доступа к этой учетной записи, вы можете пропустить шаг, но вам все равно потребуется предоставить учетные данные root.

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