Isso funcionará:
su -c "su - user2"
Eu faço o seguinte várias vezes ao dia
I login to a server via ssh as
user1,
I then dosu -to becomeroot,
then I dosu --login user2to becomeuser2
Existe uma maneira de informar su para acessar user2 diretamente de user1 ?
Observação:
user2 1 não possui uma senha. user2 tem nome diferente em momentos diferentes. (apache, liferay, solr, ftp, ...)
Observação2:
user1 não é confiável com sudo , é uma conta de uso geral usada principalmente para acessar registros. Nem sequer tem uma senha, o acesso é concedido apenas com um sshkey.
Note3:
NÃO soluções que signifiquem qualquer modificação do computador remoto permitido. Eu tenho mais de 30 servidores que eu admin.
1 Se você está curioso, é o usuário que um aplicativo é executado como (tomcat, apache, jetty ou similar)
Você pode usar "sudo" em vez de "su".
Permite que user1 execute o comando shell (/ bin / bash?) como user2 (no arquivo sudoers - edite com visudo ):
user1 ALL=user2 /bin/bash
Então você pode (como usuário1):
$ sudo -u user2 /bin/bash
Tenho certeza que você pode realizar:
sudo su user2
Tudo o que você está fazendo é migrar para a raiz para ter o privilégio de acessar essa conta. Você pode pular uma etapa, mas ainda precisará fornecer credenciais raiz.