A primeira coisa que eu tentarei é executar seu script com at
ou cron
.
Exemplo:
at now <<< "sudo echo 'This will fail if sudoers requiretty' 2>/tmp/stderr >/tmp/stdout"
Eu estou no processo de consertar um script que falha porque invoca sudo
em um ambiente sem um pty que tem um arquivo sudoers definindo Default requiretty
.
O script é executado por root
e usa sudo
para chamar binários que dependem de serem executados por usuários específicos, portanto, minha solução foi substituir os sudo
por su
.
Agora quero testar minhas modificações, mas é difícil reproduzir o ambiente em que sudo
falhou:
Eu posso acessar a máquina através de outro usuário e, em seguida, logar como root com sudo su -
. Eu não sei a senha de root
.
Eu sei como acessar a máquina sem um pty com ssh -T
, mas não consigo mais logar como root porque sudo
falha.
Como eu poderia obter um shell de raiz sem pty?