
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:
- 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
- Usando
sudo
:
sudo -u user "command"
Com este comando você o executa com ou sem senha (sua senha)
- 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.