Re: Lancement /etc/acpi/sleep.sh en tant qu'utilisateur + une idée

2009-08-16 Par sujet Sylvain Sauvage
Guillaume Caron, dimanche 16 août 2009, 10:13:12 CEST
>[…]
> > Non ça n'est pas si simple que ça parce que précisément le SUID n'a pas
> > d'effet sur un shell script (sauf erreur de ma part). Exemple:
>[…]
> Euh, cette erreur ne serait pas plutôt dû au fait que les utilisateurs
> normaux n'ont pas d'accès en lecture (et surtout pas en écriture !) sur
> le répertoire /root ?
> 
> Comme ça, ça marche un peu mieux :
>[…] 

  Non. Le bit SUID est désactivé sur les scripts (de nos jours).
De toute façon, cette idée est dangereuse (injection de code
dans les paramètres p.ex.).

  On peut contourner le problème en faisant un programme
compilé, SUID, qui ferait juste un system(3) (⇒ man 3 system).
Puis on ajoute de la sécurité à ce programme (mot de passe) et
quelques options et on l’appelle « su ». Si on ajoute quelques
fichiers de configuration, on l’appelle « sudo ».

  Et rappelez-vous que les cochons sont des suidés…

-- 
 Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org



Re: Lancement /etc/acpi/sleep.sh en tant qu'utilisateur + une idée

2009-08-16 Par sujet Guillaume Caron


Le samedi 15 août 2009 à 13:02 +0200, thomas a écrit :

> 2009/8/15 ~TraydenT~ :
> > On 15/08/2009 10:25, thomas wrote:
> >> Cela m'ennuie de taper mon mot de passe root à chaque fois que je lance
> >> /etc/acpi/sleep.sh ou /etc/acpi/hibernate.sh (et je ne vois pas de bonne
> >> raison d'utiliser uswsusp). Y a-t-il un moyen simple d'y arriver sans
> >> ajouter à sudoers toutes les commandes des scripts qui doivent être
> >> lancées en root? J'aimerais bien y mettre directement les deux scripts,
> >> mais comme ce ne sont pas des binaires, ça ne marche pas.
> >>
> > J'allais dire Sticky Bit, mais j'ai bien fait de vérifier : du coup, je vais
> > dire SUID (http://fr.wikipedia.org/wiki/Permissions_Unix#Droit_SUID) ^^
> 
> Non ça n'est pas si simple que ça parce que précisément le SUID n'a pas
> d'effet sur un shell script (sauf erreur de ma part). Exemple:
> 
> ~# echo "touch /root/test" > foo.sh
> ~# chmod +x,+s foo.sh
> ~# ll foo.sh
> -rwsr-sr-x 1 root 17 aoû 15 12:28 foo.sh
> ~# exit
> exit
> ~$ /root/foo.sh
> touch: ne peut faire un touch sur `/root/test': Permission non accordée

Euh, cette erreur ne serait pas plutôt dû au fait que les utilisateurs
normaux n'ont pas d'accès en lecture (et surtout pas en écriture !) sur
le répertoire /root ?

Comme ça, ça marche un peu mieux :

# echo "touch /tmp/essai" > /tmp/foo.sh
# chmod +x,+s /tmp/foo.sh 
# ll /tmp/foo.sh 
-rwsr-sr-x 1 root root 17 aoû 16 10:09 /tmp/foo.sh
# exit
exit
$ /tmp/foo.sh 
$ ls -l /tmp/essai 
-rw-r--r-- 1 gc gc 0 aoû 16 10:09 /tmp/essai

Mais au final, le fichier créé n'appartient pas à root, donc tu avais
raison.

Cordialement,
--
Guillaume



Re: Lancement /etc/acpi/sleep.sh en tant qu'utilisateur + une idée

2009-08-15 Par sujet ~TraydenT~

On 15/08/2009 10:25, thomas wrote:

Bonjour à tous,


Bonjour,


Cela m'ennuie de taper mon mot de passe root à chaque fois que je lance
/etc/acpi/sleep.sh ou /etc/acpi/hibernate.sh (et je ne vois pas de bonne
raison d'utiliser uswsusp). Y a-t-il un moyen simple d'y arriver sans
ajouter à sudoers toutes les commandes des scripts qui doivent être
lancées en root? J'aimerais bien y mettre directement les deux scripts,
mais comme ce ne sont pas des binaires, ça ne marche pas.

J'allais dire Sticky Bit, mais j'ai bien fait de vérifier : du coup, je 
vais dire SUID (http://fr.wikipedia.org/wiki/Permissions_Unix#Droit_SUID) ^^

De manière générale, je trouve ça gênant qu'on ne puisse ajouter que des
binaires à sudoers et pas des noms de shell scripts. Il y aurait
peut-être à ce sujet un petit programme simple à faire en C: un bête
lanceur de scripts dont le nom figure dans une "liste blanche" éditable
seulement par root. On ajoute ce lanceur à sudoers et ça donne:

~$ sudo zelauncher /etc/acpi/sleep.sh  # mise en veille par un user,
# pas de mot de passe à taper

~$ sudo zelauncher /tmp/evilscript.sh  # un script malveillant
Sorry, '/tmp/evilscript.sh' not in '/etc/zelauncher.whitelist'

Qu'en dites-vous?

Thomas


--
TraydenT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org



Re: Lancement /etc/acpi /sleep.sh en tant qu'utilisateur + une idée

2009-08-15 Par sujet Silvère Maugain
On Sat, Aug 15, 2009 at 10:25:22AM +0200, thomas wrote:
> Bonjour à tous,
Bonjour,
 
> Y a-t-il un moyen simple d'y arriver sans
> ajouter à sudoers toutes les commandes des scripts qui doivent être
> lancées en root?
Quite à dire une betise, fait-tu partie du groupe "powerdev" ?

Bonne journée,
Sil

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org



Lancement /etc/acpi/sleep.sh en tant qu'utilisateur + une idée

2009-08-15 Par sujet thomas
Bonjour à tous,

Cela m'ennuie de taper mon mot de passe root à chaque fois que je lance
/etc/acpi/sleep.sh ou /etc/acpi/hibernate.sh (et je ne vois pas de bonne
raison d'utiliser uswsusp). Y a-t-il un moyen simple d'y arriver sans
ajouter à sudoers toutes les commandes des scripts qui doivent être
lancées en root? J'aimerais bien y mettre directement les deux scripts,
mais comme ce ne sont pas des binaires, ça ne marche pas.

De manière générale, je trouve ça gênant qu'on ne puisse ajouter que des
binaires à sudoers et pas des noms de shell scripts. Il y aurait
peut-être à ce sujet un petit programme simple à faire en C: un bête
lanceur de scripts dont le nom figure dans une "liste blanche" éditable
seulement par root. On ajoute ce lanceur à sudoers et ça donne:

~$ sudo zelauncher /etc/acpi/sleep.sh  # mise en veille par un user,
   # pas de mot de passe à taper

~$ sudo zelauncher /tmp/evilscript.sh  # un script malveillant
Sorry, '/tmp/evilscript.sh' not in '/etc/zelauncher.whitelist'

Qu'en dites-vous?

Thomas

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org