Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/05/2013, à 00:35

GhostInTheShell

[RESOLU] bash & nopasswd

Bonjour,
J’utilise des scripts bash qui contiennent la commande sudo et je souhaiterai ne pas avoir à taper le mot de passe à chaque utilisation.
Donc j'ai tenté ceci:

sudo visudo

j'ai ajouté cette ligne:

nomutilisateur ALL=(ALL) NOPASSWD: /home/nomutilisateur/bashfile

sous nano ^x o /etc/sudoers.tmp
redémarrage
Et biensûre celà ne fonctionne pas sad

Quelqu'un a une idée?
Merci d'avance

Dernière modification par GhostInTheShell (Le 13/05/2013, à 18:45)

Hors ligne

#2 Le 13/05/2013, à 04:07

nesthib

Re : [RESOLU] bash & nopasswd

S'il n'est pas dans le PATH, tu dois lancer ton script ainsi :

sudo /home/nomutilisateur/bashfile

(bien entendu ton script doit être exécutable)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 13/05/2013, à 07:24

tiramiseb

Re : [RESOLU] bash & nopasswd

Salut,

Si j'ai bien compris, tu as un script qui fait appel à sudo. Et tu aimerais que les appels à sudo au sein de ce script ne demandent pas de mot de passe.

Sauf que la configuration que tu as mise en place, comme l'indique nesthib, c'est pour exécuter ton script lui-même avec sudo.

Deux possibilités :
1/ tu supprimes les appels à "sudo" au sein de ton script et tu exécutes toujours le script avec la commande "sudo"
2/ tu configures sudo (avec visudo) pour que tous les appels effectués au sein de ton script soient autorisés sans mot de passe


Par curiosité, il sert à quoi ton script ? Peut-être qu'en en sachant un peu plus on peut t'aider plus intelligemment.

Hors ligne

#4 Le 13/05/2013, à 11:15

GhostInTheShell

Re : [RESOLU] bash & nopasswd

Bonjour,
Tout d'abord merci pour les réponses.
Dans les faits j'utilise plusieurs scripts que je lance via thunar dans un terminal ou directement via la console: bash nomduscript
Exemples:

#!/bin/bash
sudo grub-reboot "Windows NT/2000/XP (loader) (on /dev/sda1)"
sudo shutdown -r now
#!/bin/bash
sudo X -terminate -query 192.168.1.50 :1

Les scripts eux-mêmes ne sont pas dangereux ou sensibles. Cependant cela m’agace au bout d'un moment de devoir taper, retaper et retaper mon mot de passe mad

Hors ligne

#5 Le 13/05/2013, à 11:24

tiramiseb

Re : [RESOLU] bash & nopasswd

Dans ce cas il vaut mieux exécuter tes scripts avec sudo ; tu les rends exécutables puis tu les lances avec :

sudo /home/nomutilisateur/bashfile

Tu enlèves les "sudo" à l'intérieur des scripts et tu fais les autorisations comme tu l'as indiqué dans le message #1...

Hors ligne

#6 Le 13/05/2013, à 12:38

GhostInTheShell

Re : [RESOLU] bash & nopasswd

Donc si je comprend bien les scripts avec un sudo à l'intérieur on ne peut pas les rendre exécutables comme n'importe quel fichier exécutable (.exe, .bat, etc...)?

Hors ligne

#7 Le 13/05/2013, à 12:44

tiramiseb

Re : [RESOLU] bash & nopasswd

bien sûr que si, le script peut être exécutable, avec un "chmod a+x" tout à fait classique.

Mais si tu veux exécuter des commandes qui ont besoin des droits donnés par "sudo", tu as deux possibilités :

1/ soit tu configures sudo (avec visudo) pour pouvoir exécuter le script avec "sudo /chemin/nom_du_script"
2/ soit tu mets des appels à "sudo" dans le script et tu configures sudo (avec visudo) pour autoriser chacune des commandes exécutées par le script (ce qui te donnera les autorisations en question également en dehors des scripts)

Dernière modification par tiramiseb (Le 13/05/2013, à 12:45)

Hors ligne

#8 Le 13/05/2013, à 12:45

tiramiseb

Re : [RESOLU] bash & nopasswd

Au fait,

GhostInTheShell a écrit :

n'importe quel fichier exécutable (.exe, .bat, etc...)?

Euh .exe et .bat, c'est des fichiers pour Windows, ça n'a rien à voir avec Linux, et c'est tout sauf "n'importe quel fichier exécutable" big_smile

Hors ligne

#9 Le 13/05/2013, à 18:45

GhostInTheShell

Re : [RESOLU] bash & nopasswd

Ok merci à tous smile .
Je vais tenter ma chance sous python (que je ne connais pas encore big_smile ).

Hors ligne

#10 Le 14/05/2013, à 07:20

tiramiseb

Re : [RESOLU] bash & nopasswd

Quel est le rapport entre ton problème de sudo et Python !?

Hors ligne

#11 Le 14/05/2013, à 10:51

elendil

Re : [RESOLU] bash & nopasswd

Voilà une traduction d'un de tes script en python

#!/usr/bin/env python
import os

os.system("sudo grub-reboot \"Windows NT/2000/XP (loader) (on /dev/sda1)\"")
os.system("sudo shutdown -r now")

Le problème que tu vas avoir reste le même : il va te demander le mot de passe pour chaque commande où il y a "sudo" dedans !
As-tu bien compris ce que veut dire "sudo" ?
Si tu n'es pas certain de ta réponse jette un oeil ici

Dernière modification par elendil (Le 14/05/2013, à 11:52)

Hors ligne

#12 Le 14/05/2013, à 11:08

GhostInTheShell

Re : [RESOLU] bash & nopasswd

Alors ce que j'ai fait c'est:

nomutilisateur ALL=(ALL) NOPASSWD: /home/nomutilisateur/scriptbash
#!/usr/bin/python2
import os
os.system ('sudo /home/nomutilisateur/scriptbash')

Là y a plus de problème je lance le tout sans donner des droits à n'importe quelle commande et surtout sans avoir à saisir mon mot de passe. Et tout ceci via thunar ou nautilus sans lâcher la sourie tongue
Et encore merci à tous ceux qui m'ont aidés. Vive le fofo ubuntu-fr big_smile

Hors ligne

#13 Le 14/05/2013, à 11:47

tiramiseb

Re : [RESOLU] bash & nopasswd

Quel est l'intérêt d'utiliser Python !?!?

d'une part tu peux faire ça avec un shellscript :

#!/bin/sh
sudo /home/nomutilisateur/scriptbash

d'autre part si tu utiliser un cliquodrome tu peux faire un fichier ".desktop" qui appelle cette commande...

Hors ligne

#14 Le 14/05/2013, à 11:50

elendil

Re : [RESOLU] bash & nopasswd

Edit : (tiramiseb a été plus rapide)

Pourquoi utiliser python qui lance bash ??? C'est un peu tordu.
À mon avis, un simple alias et/ou script bash était suffisant !
Pas besoin d'utiliser python pour ça.

Et comme te l'ont dit nesthib et tiramiseb tu lances le script via son chemin absolu avec sudo.

Un alias

alias scriptbash="sudo /home/nomutilisateur/scriptbash"

dans ton .bashrc était suffisant pour l'utiliser partout sans avoir besoin d'un script qui lance le script.... En tout cas pour le terminal....
Pour Nautilus et Thunar, j'ai l'impression qu'il faut un script et dans ce cas le script suivant en Bash est largement suffisant et fais la même chose :

#!/bin/bash
sudo /home/nomutilisateur/scriptbash

Sinon tu peux faire un lanceur pour juste cliquer dessus et pas besoin de script qui lance un script...

Dernière modification par elendil (Le 14/05/2013, à 11:53)

Hors ligne