Como fazer login como usuário diferente dentro do shell script e executar um conjunto de comandos?

Como fazer login como usuário diferente dentro do shell script e executar um conjunto de comandos?

Meu requisito é fazer login como um usuário diferente, o que requer autenticação por senha, e executar alguns comandos como esse usuário dentro de um script de shell que executo na minha conta de usuário.

exemplo: user1 está executando o script. O requisito é fazer login como usuário2 usando senha e executar um conjunto de comandos usando um único script de shell.

Responder1

Você pode usar vários métodos:

  1. Usando su. Via su você pode executar o comando desta forma:

su user -c "command"

ou

su - user -c "command"

a diferença é que quando você tem o dash você obterá o ambiente do usuário alvo. Com este comando será solicitada a senha do usuário alvo

  1. Usando sudo:

sudo -u user "command"

Com este comando você o executa com ou sem senha (sua senha)

  1. Usando ssh:

Com o ssh você pode executar o comando com senha para usuário, senha para chave (se houver)

ssh user@localhost "command"

PS Existem também outros métodos possíveis que raramente são possíveis como rsh

Responder2

Usar o comando su [username]permite executar um comando no contexto desse usuário, a partir do local atual. Usar o comando a seguir su - [username]leva você para o diretório inicial do usuário. Se você omitir o nome de usuário, estará mudando para root.

informação relacionada