Crie um comando sudo personalizado sem senha

4

Eu quero implementar um script para executar qualquer comando com privilégios de root, mas sem ter que colocar nenhuma senha. No terminal eu gostaria de ver assim:

./newsudo "comand with root privileges" 

Eu acho que o caminho a seguir seria usar o "comando com privilégios de root" como um argumento dentro do script com e exec ou similar, para executá-lo.

A verdade é que estou muito noob em toda esta área e não sei por onde começar.

Obrigado !!

    
por Binkpang34 12.10.2016 / 14:56

2 respostas

14

Crie um comando genérico para executar qualquer (sub) comando como sudo, sem senha; é possível?

Teoricamente, o que você pergunta é possível. Como é possível configurar um aplicativo no arquivo sudoers para rodar com argumentos, nós podemos fazer um comando (script) para chamar, que é executado com o sudo, com o comando em questão como argumento.

Devemos fazer isso?

NUNCA , pois isso quebrará o princípio de ser um administrador. Qualquer processo malicioso pode executar código para destruir seu sistema.

O ponto principal é que eu nem postarei como fazer isso.

Mais do que fazer e não fazer em executar software sem senha

Como mencionado por @Groundzero, você pode adicionar aplicativos ou scripts específicos ao arquivo sudoers, para executar sem senha, conforme descrito aqui . No entanto, lembre-se:

  • Não adicione aplicativos ao arquivo sudoers, que podem ser usados para prejudicar seu sistema ou fazer coisas prejudiciais em geral. Especialmente se o aplicativo tiver opções de cliques extensas.
  • Não armazene scripts para serem executados com sudo (sem senha) em um local onde possam ser editados sem privilégios de administrador. Uma simples edição por qualquer pessoa (ou qualquer processo) pode fazer qualquer coisa.
por Jacob Vlijm 12.10.2016 / 15:14
3

Apenas faça uma regra sudo concedendo os comandos em questão ao usuário / grupo desejado com NOPASSWD: na frente do comando. Você não precisa de um novo script, apenas algo assim para conceder a capacidade de executar qualquer coisa como raiz para todos no grupo de administradores sem a necessidade de senha:

%admins ALL = NOPASSWD: ALL

Em geral, exigir senhas em comandos extremamente perigosos é uma boa ideia, mas sua política de segurança é sua. Houve alguma discussão (agora deletada) sobre como isso é inseguro, e eu concordo: é perigoso . É quase sempre uma má ideia dizer "este usuário pode executar qualquer coisa como root sem reavaliar sua identidade ocasionalmente".

Existem outros fóruns dedicados à segurança, no entanto. Se o objetivo legítimo é executar comandos arbitrários como root sem senha, o acima é apenas a maneira mais segura de fazer isso. A ressalva é que qualquer um que implemente isso precisa estar ciente dos riscos, incluindo "qualquer um que possa executar um comando com os privilégios desse usuário é efetivamente root". Isso inclui coisas como scripts baixados e possivelmente até mesmo páginas maliciosas, se o navegador tiver uma falha de segurança. A separação entre "usuário não privilegiado" e "root" desapareceu com uma regra como essa. Comprador beware. :)

    
por dannysauer 12.10.2016 / 19:52