executa o shell script sem digitar a senha

0

Eu quero executar um script que exija privilégios de root sem inserir uma senha. Existem perguntas / respostas semelhantes, mas parece que não funciona para mim.

Eu coloquei meu script em / home / kf / bin (adicionei o bin dir) e incluí este diretório no meu caminho para que eu possa executá-lo em qualquer lugar.

O script: trim.sh :

#! /bin/sh
sudo fstrim -v /

Alterei a propriedade do script para root :

 sudo chown root:root /home/kf/bin/trim.sh

e tornou-o executável

sudo chmod 700 /home/kf/bin/trim.sh

em seguida, adicionei uma linha ao meu arquivo sudoers com visudo :

kf   ALL=(ALL) NOPASSWD: /home/kf/bin/trim.sh

Quando eu fizer login novamente e executar o script com trim , ainda preciso inserir minha senha. Eu sei que posso fazer um cron para isso, mas também quero poder executar o script manualmente sem digitar minha senha. Qualquer ajuda apreciada.

edit:

Meu arquivo sudoers é assim:

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin: /usr/bin:/sbin:/bin"

root    ALL=(ALL:ALL) ALL
kf   ALL=(ALL) NOPASSWD: /home/kf/bin/trim.sh

%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL
    
por kasper Taeymans 25.08.2015 / 12:56

2 respostas

3

Altere a linha no arquivo sudoers para:

kf   ALL=(ALL) NOPASSWD: /sbin/fstrim

Eu não recomendo, adicionando o script em /etc/sudoers , porque o script pode ser alterado e todo comando (todo o script) seria executado com privilégios de root.

    
por chaos 25.08.2015 / 13:06
0

O que você está procurando é o setuid bit, ele permite que os usuários executem um programa com as permissões de seu dono.

/! \ Cuidado, muitas vezes é uma solução ruim, devido aos problemas de segurança que ela expõe.

    
por Julien CROUZET 25.08.2015 / 13:22