Alias que executa um comando usando sudo

1

Estou sempre executando um aplicativo específico como root porque ele requer mais privilégios. Eu costumo apenas sudo isso. Eu quero fazer um alias que é algo semelhante a: alias myCmd='sudo nohup /path/to/binary > /dev/null 2>&1 &'

O problema surge quando o sudo solicita a senha e, em seguida, nada acontecerá na verdade. Como isso pode ser feito?

    
por buddy123 01.06.2016 / 12:30

1 resposta

1

Use um script de shell em vez de um alias.

em ~ / .bashrc:

export PATH="$PATH":~/bin

seu script em ~ / bin / runthat:

#!/bin/bash
sudo nohup /path/to/binary > /dev/null 2>&1 &

Então, para executá-lo, faça como:

$ runthat

Ou se você pulou a etapa PATH, execute-a como:

$ ~/bin/runthat

Se este for um script para todo o sistema (todos os usuários) em vez de apenas você, então coloque-o em / usr / local / bin.

Ou você também pode usar uma função. por exemplo. em ~ / .bashrc:

runthat() {
    sudo nohup /path/to/binary > /dev/null 2>&1 &
}

Também só para FYI e não uma resposta direta para a pergunta, outra alternativa é colocá-lo no arquivo sudoers:

sudo visudo
    (your editor pops up here)
    username ALL=NOPASSWD: /path/to/binary

E agora ele não pedirá uma senha. (o que significa menor segurança ... talvez alguma exploração de segurança agora permita que o malware execute este aplicativo também ... portanto, certifique-se de aceitar esse pequeno risco)

    
por 01.06.2016 / 13:50

Tags