Vejo que você está usando sudo
para se tornar root e, em seguida, su
para se tornar s_user
. Para fazer isso, você usará sua senha (por sudo
). Você não precisa da senha para s_user
.
Você pode fazer isso adicionando sua chave ssh à conta s_user
, mas acho que essa solução, neste caso, está abaixo do ideal.
Primeiramente, mostrarei que você não precisa de su
, e é melhor não usá-lo. Então, em vez de sudo su - s_user -c command
, faça sudo -u s_user command
. Você ainda será solicitado para a sua senha. No entanto, agora você pode configurar /etc/sudoers
Adicione um arquivo /etc/sudoers.d/s_commands
, contendo algo como (mas marcado, com /usr/bin/visudo
):
Cmnd_Alias S_COMMAND=/usr/bin/command, /usr/bin/anotherCommand
%s_group ALL = (s_user) NOPASSWD : S_COMMAND
Isto irá permitir a senha menos uso desses comandos, como s_user, mas apenas para usuários no grupo s_group (você terá que adicionar o grupo).
Em seguida, configure um alias de shell, algo como: alias s_command="sudo -u s_user command"
.
Notas:
-
su
usa a senha do usuário para o qual você está alternando.
-
sudo
, por padrão, pega a senha do usuário que você é (você está mudando).
-
sudo
não lê a senha do stdin, lê de tty.