logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#126 12-07-2016 20:27:11

FirePowi
Membre
Lieu : @powi-pc
Distrib. : Debian testing
Noyau : Linux 4.6.0.1-amd64
(G)UI : xfwm4
Inscription : 08-07-2016
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

$ ./info4df --gui



^CTraceback (most recent call last):
  File "./info4df", line 42, in <module>
    main()
  File "./info4df", line 28, in main
    os.path.realpath(__file__)), shell=True)
  File "/usr/lib/python2.7/subprocess.py", line 523, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 1392, in wait
    pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
  File "/usr/lib/python2.7/subprocess.py", line 476, in _eintr_retry_call
    return func(*args)
KeyboardInterrupt

Dernière modification par FirePowi (12-07-2016 20:27:59)

Hors ligne

#127 12-07-2016 20:40:25

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

tu as gksu d'installé? (je l'ai mis comme dépendances plus haut)

@bendia : vu smile

Hors ligne

#128 12-07-2016 20:47:02

Severian
Membre
Distrib. : Debian GNU/Linux 9.4 (stretch)
Noyau : Linux 4.14.0-0.bpo.3-amd64
(G)UI : Openbox 3.6.1-4
Inscription : 13-12-2014

Re : info4df : un petit cadeau pour Debian-Facile

une question, étant donné qi'il y a le désir quelque part que l’utilisateur puisse utiliser info4df même s'il n'a plus d'interface graphique (si j'ai bien suivi), est-ce que l’utilisation de gksu ne v pas poser de soucis ?
ne vaudrait il pas mieux utiliser su-to-root ?

Hors ligne

#129 12-07-2016 20:51:48

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

bendia a écrit :

Thuban a écrit :

@bendia : c'est là où je sèche. C'est trop compliqué (voire impossible) de séparer dans un même script les parties avec privilèges et les autres sans. Si quelqu'un a une astuce j'en serais ravi! smile



J'ai trouvé un début de réponse là http://stackoverflow.com/questions/1570 … operations smile

En gros, tu lances en root, et tu redonnes l'uid de l'utilisateur smile


Pas de chance, ça ne fonctionne pas pour lancer un truc en graphique hmm


(firefox:1154): Gtk-WARNING **: This process is currently running setuid or setgid.
This is not a supported use of GTK+. You must create a helper
program instead. For further details, see:
 

Hors ligne

#130 12-07-2016 20:52:12

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Severian a écrit :

une question, étant donné qi'il y a le désir quelque part que l’utilisateur puisse utiliser info4df même s'il n'a plus d'interface graphique (si j'ai bien suivi), est-ce que l’utilisation de gksu ne v pas poser de soucis ?
ne vaudrait il pas mieux utiliser su-to-root ?


gksu : pour la partie graphique
sudo : pour le cli smile

Hors ligne

#131 12-07-2016 20:53:01

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Je crois que j'ai la suite smile

Je trouve que ça n'est pas top d'imposer sudo à la place de su ou gksu à la place de kdesu. A mon avis, il faut que ça soit le lanceur qui demande les privilèges avec

su-to-root -X -c info4df


Ensuite, il semble qu'on puisse récupérer l'uid de l'user logué et la donner à la suite du programme avec

os.geteuid(pwd.getpwnam(os.getlogin())[2])

Et enfin, on donne les droit root juste où il faut avec

os.seteuid(0)



Edit geteuid et pas set au début roll


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#132 12-07-2016 21:00:41

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Tu m'as l'air au point là dessus, je te laisse faire alors wink

Hors ligne

#133 12-07-2016 21:02:31

FirePowi
Membre
Lieu : @powi-pc
Distrib. : Debian testing
Noyau : Linux 4.6.0.1-amd64
(G)UI : xfwm4
Inscription : 08-07-2016
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Thuban a écrit :

tu as gksu d'installé? (je l'ai mis comme dépendances plus haut)



Yup.

Dernière modification par FirePowi (12-07-2016 21:02:45)

Hors ligne

#134 12-07-2016 22:59:18

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Bon, le test de la dernière version  GUI de Thuban sur ma machine sans sudo ne fonctionne pas, il ne se créé même pas de fichier html.

Pour ma part, j'ai poussé une version qui fonctionne dans la branche devSetuid. Il faut lancer avec

gksu -k "./info4df --gui"

Sans le -k, le navigateur ne se lance pas.

Je n'ai pas encore trouvé le moyen de faire la même chose avec su-to-root hmm


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#135 13-07-2016 06:03:39

Starsheep
Membre
Lieu : Certainement devant l'ordi.
Distrib. : Debian 10
Noyau : Linux 4.19
(G)UI : i3wm
Inscription : 01-07-2016
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Je crois que le plus propre est d'utiliser pkexec pour lancer une application en root avec Popen. On lance le programme info4df sans aucun droit et après on donne les droits au cas par cas pour les commandes qui en ont besoin. Ça évite des accidents. smile
En plus ça permet, en modifiant les autorisations policykit, de lancer ces commandes root sans demande de mot de passe.

Hors ligne

#136 13-07-2016 07:45:52

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Starsheep a écrit :

Je crois que le plus propre est d'utiliser pkexec pour lancer une application en root avec Popen.

Je crois que oui, parce que j'ai poussé hier, ça fonctionne avec su, mais pas avec une machine sans compte root activé hmm

Je ne vois pas forcemment comment faire ce que tu proposes, mais tu peux nous montrer comment, maintenant, t'es les droits big_smile


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#137 13-07-2016 08:03:44

Starsheep
Membre
Lieu : Certainement devant l'ordi.
Distrib. : Debian 10
Noyau : Linux 4.19
(G)UI : i3wm
Inscription : 01-07-2016
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Merci pour les droits. smile

Ça m'oblige à me replonger dedans, je l'avais fait il y a longtemps. wink

Hors ligne

#138 13-07-2016 08:08:07

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Starsheep a écrit :

Ça m'oblige à me replonger dedans, je l'avais fait il y a longtemps. wink

Il semble que ça n'ait plus grand chose à voir avec la version d'origine wink


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#139 13-07-2016 08:24:16

Starsheep
Membre
Lieu : Certainement devant l'ordi.
Distrib. : Debian 10
Noyau : Linux 4.19
(G)UI : i3wm
Inscription : 01-07-2016
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Bon j'ai trouvé comment lancer une commande avec pkexec déjà. smile

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY commandeàlancer



Par contre je n'arrive pas à lancer la commande via un script python avec Popen. mad

Edit : Youhou j'ai réussi !

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess

p = subprocess.Popen(["pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY commandeàlancer"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

for line in p.stdout.readlines():
    sys.stdout.write('%s\n' % line)



Reste plus qu'à mettre ça dans info4df ! smile

Dernière modification par Starsheep (13-07-2016 08:32:51)

Hors ligne

#140 13-07-2016 09:14:47

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

@starsheep : ça fonctionne pas chez moi. webbrowser.open cherche à créer le fichier de conf du navigateur par défaut dans /root. Il doit manquer des variables d'environnement hmm

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#141 13-07-2016 09:47:55

Starsheep
Membre
Lieu : Certainement devant l'ordi.
Distrib. : Debian 10
Noyau : Linux 4.19
(G)UI : i3wm
Inscription : 01-07-2016
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Je ne comprends pas. Le navigateur n'est pas ouvert avec les droits root normalement comme il ne fait qu'afficher le fichier dans /tmp.

Le truc que j'ai donné est à insérer dans le code de info4df lors des appels aux commandes demandant des les accès root (get_hw(), get_distrob(), etc.). Ça évite d'exécuter info4df avec sudo (cli) ou gksu (gui).

Là je suis en train de chercher les commandes qui nécessitent l'accès root. Et il faut que je travaille sur info4df-thuban ou info4df-0.1 ?

Edit :

Là je suis en train de chercher les commandes qui nécessitent l'accès root.


C'est noté dans le header de info4dflib/info4df.py de info4df-thuban... Quel boulet je suis. big_smile

Dernière modification par Starsheep (13-07-2016 09:58:09)

Hors ligne

#142 13-07-2016 10:43:51

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Je ne vais pas être dispo sur le net quelques jours, je vous laisse hacker mon code au plaisir les loulous smile

Hors ligne

#143 13-07-2016 14:11:56

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

@Starsheep : le problème là, c'est que s'il y a 2 commandes nécessitant d'être root, il y aura 2 fois la demande de mot de passe ?

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#144 13-07-2016 15:23:24

Starsheep
Membre
Lieu : Certainement devant l'ordi.
Distrib. : Debian 10
Noyau : Linux 4.19
(G)UI : i3wm
Inscription : 01-07-2016
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

On peut s'arranger pour exécuter les commandes root dans le même appel et parser la réponse. Le code est plus compliqué, mais je trouve ça plus propre perso.

Hors ligne

#145 13-07-2016 15:30:10

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Bah de mon coté, j'avance avec mon code poussé dans la branche devSetuid et le lancement via pkexec smile Il suffit d'ajouter des variables d'environnement.

pkexec env DISPLAY=$DISALAY XAUTHORITY=$XAUTHORITY LOGNAME=$LOGNAME USER=$USER HOME=$HOME  /chemin/absolu/info4df/info4df-thuban/info4df --gui



Sur mon poste avec Gnome et pas sudo, c'est OK (ça fonctionnait aussi avec Gksu ceci dit wink.

Sur l'autre poste avec XFCE et sudo, ça ouvre la page avec un naviguateur en CLI hmm Je pense que je ne suis pas loin wink


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#146 13-07-2016 15:35:57

Starsheep
Membre
Lieu : Certainement devant l'ordi.
Distrib. : Debian 10
Noyau : Linux 4.19
(G)UI : i3wm
Inscription : 01-07-2016
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Ah mais là c'est pareil qu'un gksu du coup. pkexec est intéressant pour gérer les permissions des appels système au cas par cas, non ?

Hors ligne

#147 13-07-2016 15:39:02

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Starsheep a écrit :

pkexec est intéressant pour gérer les permissions des appels système au cas par cas, non ?

J'suis pas assez spécialiste pour être certain de la bon utilisation de l'outil wink Je suis un bricoleur moi, pas un homme de l'art big_smile Il me semble en tout cas plus portable que gksu.


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#148 13-07-2016 15:45:43

Starsheep
Membre
Lieu : Certainement devant l'ordi.
Distrib. : Debian 10
Noyau : Linux 4.19
(G)UI : i3wm
Inscription : 01-07-2016
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Ah ben je suis un bricolo aussi hein. smile

Mon idée était de lancer info4df sans gksu ou sudo, et de ne demander les droits root qu'en cas de lancement des commandes fdisk ou dmidecode.

Et je comptais le faire en utilisant ce code python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess

p = subprocess.Popen(["pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY commandeàlancer"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

for line in p.stdout.readlines():
    sys.stdout.write('%s\n' % line)

directement dans le fichier info4dflib/info4df.py (et en remplaçant "commandeàlancer" par les commandes appropriées).

Hors ligne

#149 13-07-2016 15:48:36

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

Dans ce cas, faut en faire une fonction qui prend la commande en argument, voire, un décorateur (pas certain que ça soit possible hein wink ) des fonctions nécessitant ces droits

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#150 13-07-2016 15:50:22

Starsheep
Membre
Lieu : Certainement devant l'ordi.
Distrib. : Debian 10
Noyau : Linux 4.19
(G)UI : i3wm
Inscription : 01-07-2016
Site Web

Re : info4df : un petit cadeau pour Debian-Facile

C'était l'idée. Mais je viens de réaliser que dans le cas d'un appel cli, il faut une autre méthode comme pkexec demande le mot de passe en GUI...

Désolé de ne pas toucher au code, je suis au bureau.

Edit : Je viens de tester un truc. Si aucun serveur X n'est détecté, alors tout se passe en CLI ! Parfait tout ça !

Dernière modification par Starsheep (13-07-2016 16:00:06)

Hors ligne

Pied de page des forums