[SCRIPT] et « gksu » au besoin

Autres projets et contributions
Avatar de l’utilisateur
BobsleiiG
Daikyu
Messages : 66
Inscription : dim. 03 juil. 2016, 12:40
Localisation : Basse-Normandie

[SCRIPT] et « gksu » au besoin

Message par BobsleiiG » lun. 06 févr. 2017, 00:37

Bonjour à tous je souhaite automatiser certaines tâches de personnalisation comme par exemple changer l'image du grub, de gimp ou autres.
Cela me permet de m'initier au scripts. :)

Je rencontre cependant un souci quant à une commande : le « gksu » seulement si besoin est.
Il s'agit là de ne pas passer par un terminal, ce dernier étant allant de pair avec un « .desktop ».

Voici tout d'abord l'idée. Une icone sur laquelle en glissant une image, celle ci prendrait la place de l'image d'origine (splash, gimp-splash etc)
Dans l'idéal il serait même sympa de pouvoir placer cette icone et d'avoir le choix de la modification (Grub, gimp etc).

J'ai donc fait un premier jet fonctionnel su script et du desktop :

SCRIPT :

Code : Tout sélectionner

#!/bin/bash

##cp "$1" "/usr/share/gimp/2.0/images/gimp-splash.png" ##chemin définitif
cp "$1" "/mon_chemin_de_destination/test_réussi.png"
##gksu cp "$1" "/mon_chemin_de_destination/test_réussi.png"
DESKTOP :

Code : Tout sélectionner

#!/usr/bin/env xdg-open

[Desktop Entry]
Name=Document Mover
Exec=/endroit_ou_se_trouvent_mes_images/.monscript/monscript.sh %U
Type=Application
Icon=/endroit_ou_se_trouvent_mes_images/.monscript/icon.svg
Name[fr_FR]=monscript
Seulement, pour acceder à grub et pour le moment, gimp, il s'agit d'obtenir les privilèges root. Et la commande « gksu » est demmander d'office.
Alors, je me demande comment transcrire en bash :
--> Copie du fichier
> FIN
>> si droits refusés
-----> Alors :
----------> demande des droits via gksu
> FIN

Merci pour votre aide. ;)

Avatar de l’utilisateur
papajoke
Elfe
Messages : 522
Inscription : sam. 30 août 2014, 19:54
Contact :

Re: [SCRIPT] et « gksu » au besoin

Message par papajoke » lun. 06 févr. 2017, 03:12

bonjour,

pas trop compris ce que tu fais :?
ca n'a pas de sens de tester si tu as des droits admin puisque on n'est jamais en root en mode graphique. Autant mettre ton gksu dans le .desktop.
en bash il est facile de tester $EUID et même le retour de ta ligne "gksu" : si <>0 alors refusé

Code : Tout sélectionner

zenity --info  --text "copier le fichier: $1"

comm='cp toto tata'
(($EUID != 0)) && comm="gksu ${comm}"
$comm

# ou structure du type

if (($EUID != 0)); then
   if gksu toto; then
     :
   else 
      zenity --error  --text "oops travail non effectué"
   fi
else
	toto &&  zenity --info  --text "Fin"  || zenity --error  --text "Erreur"
fi
ps: il peut être beaucoup plus sympa d'utiliser zenity dans ton script
Dernière édition par papajoke le lun. 06 févr. 2017, 05:47, édité 2 fois.
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau

Avatar de l’utilisateur
BobsleiiG
Daikyu
Messages : 66
Inscription : dim. 03 juil. 2016, 12:40
Localisation : Basse-Normandie

Re: [SCRIPT] et « gksu » au besoin

Message par BobsleiiG » lun. 06 févr. 2017, 05:24

Merci Papajoke,
En fait, je ne veux pas tester les droits admin.
J'aimerais que quand je glisse un fichier sur mon desktop, le pass root ne soit seulement demandé si il y en à besoin, un peux comme quand tu lance une application root. Une fenêtre s'ouvre et demande le pass (ressemblant un peu à alt+F2 sous gnome).
Mais, je ne suis peut être pas bien clair. (et je reconnais que débutant, tout dans ton script ne me parle pas spontanément).

En attendant, je vais me regarder du coté de zenity. Je ne connais pas du tout.

Avatar de l’utilisateur
papajoke
Elfe
Messages : 522
Inscription : sam. 30 août 2014, 19:54
Contact :

Re: [SCRIPT] et « gksu » au besoin

Message par papajoke » lun. 06 févr. 2017, 05:41

BobsleiiG a écrit :seulement demandé si il y en à besoin
comme dit plus haut , il faut simplement mettre ton gksu DANS le .desktop ! toujours besoin car on n'est JAMAIS en root
ps: tout le monde n'a pas gksu
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau

Répondre