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?