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 user2
to 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.