web-dev-qa-db-fra.com

Comment exécuter le script Bash en tant que root sans mot de passe?

Duplicate possible:
Comment utiliser Sudo dans mon script sans avoir besoin d'un mot de passe?

Je veux exécuter un script bash en tant que root sans mot de passe Invite.

J'ai essayé visudo sans succès (your_username ALL = (ALL) NOPASSWD:/chemin/vers/votre/script).

Il me semble que la seule issue, y en a-t-il une autre?

23
Vromoth

Il y a une astuce très astucieuse dans chaque Linux qui vous permettra de le faire. Cela s'appelle le bit SetUI.

N'oubliez pas que pour que cela soit sécurisé, vous devez disposer de permissions bien verrouillées dans ce fichier.

Rendre le fichier appartenant à root et au groupe root:

Sudo chown root.root <my script>

Maintenant, définissez le bit SetUID, rendez-le exécutable pour tout et accessible en écriture uniquement par root:

Sudo chmod 4755 <my script>

Gardez à l'esprit que si ce script autorise toute saisie ou édition de fichiers, cela se fera également en tant que root.

Le bit SetUID fait qu'un script ou un binaire est toujours exécuté en tant que propriétaire du fichier/binaire, un exemple d'un tel binaire est 'passwd'.

Il existe une solution utilisant sudoers, voici un exemple que vous pourriez utiliser. Ajoutez ces deux lignes à la fin de votre fichier sudoers. Vous pouvez utiliser visudo pour éditer le fichier sudoers.

Cmnd_Alias        CMDS = /path/to/your/script

<username>  ALL=NOPASSWD: CMDS

Maintenant, placez Sudo devant votre script et il devrait fonctionner sans demander de mot de passe.

37
Jochen Oonincx