Я захожу на сервер через 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 или подобное)
Попробуйте `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.