Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
3176 connectés 

  FORUM HardWare.fr
  OS Alternatifs
  Codes et scripts

  [BASH] Lancer un script d'execution d'applications graphiques en root

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BASH] Lancer un script d'execution d'applications graphiques en root

n°1197770
tuxbot
Posté le 09-02-2010 à 17:33:42  profilanswer
 

Bonjour,
 
Pour faciliter l'administration d'un poste de travail Debian GNU/Linux par un débutant, je suis chargé de faire un script d'administration qui doit pouvoir lancer des applications graphiques en super utilisateur avec demande de mot de passe. Malheureusement cela ne fonctionne pas, car "su" lance le mode superutilisateur, mais le reste des commandes du script ne s'exécutent qu'une fois que je quitte le mode root.  
 
Voici un exemple de ce que je veux faire :
 
 

Code :
  1. #!/bin/sh
  2. #Autorise le compte root à lancer des applications graphiques
  3. xhost +
  4. Lancement du compte root avec demande de mot de passe
  5. su
  6. leafpad fichier_de_config_qui_ne_s_edite_qu_en_root_01.txt
  7. leafpad fichier_de_config_qui_ne_s_edite_qu_en_root_02.txt
  8. konqueror
  9. #Quitter le mode root pour revenir en mode "normal"
  10. exit
  11. #(Contraire de Xhost +)
  12. xhost -


 
 
Pouvez-vous me donner un indice ou la solution qui me permettrait de faire ça ?
 
 
Merci d'avance pour vos réponses.  :jap:  
 
 
P.S. : A noter que je ne peux pas utiliser "sudo" car il va y avoir de nombreuses commandes en root à la suite.


Message édité par tuxbot le 09-02-2010 à 17:35:58

---------------
[VDS]Sapphire ATI Radeon HD 6950 1gb GDDR5 PCI-E 2.1 sous garantie// Mon Feedback HFR
mood
Publicité
Posté le 09-02-2010 à 17:33:42  profilanswer
 

n°1197774
kisscoolz
Posté le 09-02-2010 à 17:51:59  profilanswer
 

Il me semble que ca a déjà été traité il n'y a pas si longtemps.  
 
Il doit y avoir un argument a passé à la commande su pour lancé l'application en root. Un coup de man su pour être sûr.

n°1197780
o'gure
Modérateur
Posté le 09-02-2010 à 18:20:33  profilanswer
 

tuxbot a écrit :

P.S. : A noter que je ne peux pas utiliser "sudo" car il va y avoir de nombreuses commandes en root à la suite.


Tu lances un script, contenant l'ensemble des commandes, via sudo [:opus dei]

 

xhost +
sudo ton_super_script
xhost -


Message édité par o'gure le 09-02-2010 à 18:21:47
n°1197782
blazkowicz
Posté le 09-02-2010 à 18:32:04  profilanswer
 

encore mieux, tu utilises gksudo.

n°1197818
sputnick
bip...bip...bip...bip...bi...b
Posté le 09-02-2010 à 20:51:22  profilanswer
 

+1 pour gnome. Sous kde la même chose est kdesu


---------------
Blog Linux : http://sputnick-area.net
n°1197900
tuxbot
Posté le 10-02-2010 à 10:29:15  profilanswer
 

Merci pour vos réponses.  :jap:  
 
@kisscoolz : j'ai déjà lu le manuel, Googler, recherche sur le forum mais pas moyen de trouver la bonne réponse.  :(  
 
 
@all : Dans le script, il y aura un menu avec des options qui se lancent en graphique en root et en utilisateur normal, d'autres qui redémarrent des services, etc... donc je recherche plus un truc qui ferait :
 

Code :
  1. commandes avec droits limités
  2. passage en mode root
  3. (
  4. commandes en mode root
  5. )
  6. on quitte le mode root
  7. commandes avec droits limités


 
Une idée ?


Message édité par tuxbot le 10-02-2010 à 10:54:57
n°1197914
kisscoolz
Posté le 10-02-2010 à 10:55:03  profilanswer
 

En parcourant les exemples du man su, je suis tombé sur ca :
 

Citation :

EXAMPLES
     su -m man -c catman
            Runs the command catman as user man.


 
En adaptant rapidement :
 

Code :
  1. su -m root -c whoami


 
La commande me renvoie bien root donc ca peut être une piste ;)

n°1197915
Homer_Simp​son
Piratez la planète !!
Posté le 10-02-2010 à 10:59:36  profilanswer
 

Perso, je fait ça da,s mes scripts :
 

Code :
  1. # --------------------------- [ VERIFICATION DE L'UTILISATEUR ROOT ] ---------------------------
  2. user=$(whoami)
  3. if [ root != $user ]
  4. then
  5. echo -e "\e[1;34m${USER_NOT_ALLOWED}\e[0m"
  6. exit 1
  7. fi
  8. # --------------------------- [ VERIFICATION DE L'UTILISATEUR ROOT ] ---------------------------


 
Tu rajoutes juste un "else" pour avoir le code pour user, tu vire le "echo" pour mettre ton code et hop, ca devrait faire la blague.
Seul problème, on ne peut lancer le script qu'un user à la fois (soit root, soit user).


---------------
[Linux : Le Blu-Ray]-Mééézon-Défense du net-Bépo
n°1197928
blazkowicz
Posté le 10-02-2010 à 11:15:24  profilanswer
 

le sudo garde l'authentification en cache pendant un certain moment. donc partant de là tu te fiches un peu d'avoir trois ou quatre sudo, tu as de bonnes chances pour que le mot de passe ne soit demandé que la première fois, et s'il est redemandé parce que l'authentification a expiré, eh bien c'est dans la logique des choses ;)
 

n°1197942
tuxbot
Posté le 10-02-2010 à 12:08:02  profilanswer
 

Merci pour vos réponses.  :jap:  
 
@blazkowicz : Effectivement, j'ai fait des tests avec sudo sur ma Lenny en me pinçant le nez (mauvais souvenir de l'implémentation par défaut de sudo dans certaines distrib...). Après avoir configuré correctement le sudoer, cela semble correspondre à mes besoins car le mot de passe utilisateur est effectivement gardé en cache pour quelques minutes.  :jap:  
 
Par contre est-ce que je suis obligé de faire un "sudo ma_commande" à chaque commandes qui demandent une élévation de privilèges ?  
 


---------------
[VDS]Sapphire ATI Radeon HD 6950 1gb GDDR5 PCI-E 2.1 sous garantie// Mon Feedback HFR
n°1197951
o'gure
Modérateur
Posté le 10-02-2010 à 12:48:10  profilanswer
 

Je t'ai déjà répondu que non.
Tu te fais une fonction ou un script à coté qui embarque les différentes commandes que tu veux exécuter puis tu fais sudo lescriptenquestion. De cette manière, l'ensemble des commandes exécutées dans le script auront les bons privilèges.


Message édité par o'gure le 10-02-2010 à 12:49:12
n°1197953
blazkowicz
Posté le 10-02-2010 à 12:51:23  profilanswer
 

si tu profites du sudo gardé en cache, tu peux/dois effectivement faire "sudo macommande" à chaque fois.

 

après côté sécurité : "sudo monscript", ça spawne tout de même un bash en root.
sudo konqueror est un exemple à risque également : un logiciel tellement bourré de fonctionnalité que ton utilisateur risque de pouvoir se retrouver avec un shell root à sa disposition, également.

 

un exemple canonique : sudo vi  (l'éditeur de texte de la Sparte antique).
si tu laisse ton utilisateur exécuter vi en root, comme vi a une commande pour exécuter un shell, tu donnes donc un accès root à ton utilisateur.
pour cela il ya une option pour restreindre vi, et un autre nom pour l'appeler (rvi).


Message édité par blazkowicz le 10-02-2010 à 12:57:59
n°1197966
tuxbot
Posté le 10-02-2010 à 14:09:20  profilanswer
 

Merci pour vos réponses.
 
@blazkowicz : Min exemple avec le "sudo konqueror" c'est pour que la personne ait les droits administratifs sur toute la machine en graphique à la Windows (du style pouvoir faire click-droit sur un fichier pour en modifier ses droits), et qu'à la fermeture de Konqueror l'user revienne en compte limité.
 
Je vois mal la personne changer les droits à coups de chmod alors que GNU/Linux est tout nouveau pour elle car ça se transformera rapidement en "chmod 777" partout.  :lol:  
 
Autrement, petite question subsidiaire, comment cela se fait t'il que les \n dans les echo pour retouirner à la ligne ne fonctionne pas dans les scripts de ma Lenny, alors qu'il n'y avait aucun souci sous OpenBSD ?  :??:

n°1198015
blazkowicz
Posté le 10-02-2010 à 16:03:12  profilanswer
 

c'est pas le même shell? d'après google c'est ksh par défaut sous openbsd, au lieu de bash sous debian.

n°1198196
tuxbot
Posté le 11-02-2010 à 11:23:01  profilanswer
 

blazkowicz a écrit :

c'est pas le même shell? d'après google c'est ksh par défaut sous openbsd, au lieu de bash sous debian.


Non effectivement ce ne sont pas les mêmes shell, mais les différents tuto disnet que le \n fonctionne pour le retour à la ligne, alors que chez moi ce n'est pas le cas.  :??:

n°1198587
o'gure
Modérateur
Posté le 12-02-2010 à 19:20:00  profilanswer
 

tuxbot a écrit :

Je vois mal la personne changer les droits à coups de chmod alors que GNU/Linux est tout nouveau pour elle car ça se transformera rapidement en "chmod 777" partout.  :lol:  
 


Par contre je vois bien la personne via le konqueror avec des privilèges root déplacer /etc ou /boot vers un autre répertoire... [:spamafote]
J'ai le cas environ une fois par trimestre de collègues qui déplacent un dossier important dans un autre dossier, totalement sans rapport. Erreur de manip.
Le graphique en root c'est le mal absolu [:spamafote]

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  OS Alternatifs
  Codes et scripts

  [BASH] Lancer un script d'execution d'applications graphiques en root

 

Sujets relatifs
Lancer Lightning sous thunderbird ?Traiter des mails par un script
[Bash] Eliminer une sous-chaine de caractere dans une chaine de caractScript Unix (sh) - Créer un fichier .log - Récupérer message d'erreur
[RESOLU][BASH] Comparaison d'un contenu d'un fichier texte avant ajout[RESOLU[BASH] Convertir des commandes d'install de paquets en script ?
[Résolu]-- script pour relancer la carte réseau[RESOLU] [BASH] Récupérer une date dans une string
[Bash] Boucle While qui ne sort pas 
Plus de sujets relatifs à : [BASH] Lancer un script d'execution d'applications graphiques en root


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware