View previous topic :: View next topic |
Author |
Message |
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2308 Location: Bretagne
|
Posted: Thu Dec 30, 2004 10:16 pm Post subject: [halt & reboot] en tant qu'utilisateur (résolu) |
|
|
Salut àtous !
Je souhaite créer des entrées dans le menu de ma fluxbox pour éteindre et rebooter en tant qu'utilisateur mais ça ne fonctionne pas.
Quand en tant qu'utilisateur je tape halt dans un terminal, il me dit :
halt comand not found
Je suppose que je doit modifier les droits des utilisateurs pour ça, mais je ne sais pas comment faire
Last edited by Adrien on Thu Dec 30, 2004 11:38 pm; edited 1 time in total |
|
Back to top |
|
|
Dhaki Guru
Joined: 16 Jun 2004 Posts: 325 Location: Ticino - CH
|
Posted: Thu Dec 30, 2004 10:19 pm Post subject: |
|
|
Voità! Salut |
|
Back to top |
|
|
bosozoku Advocate
Joined: 11 Jan 2004 Posts: 2431 Location: Roazhon
|
Posted: Thu Dec 30, 2004 10:22 pm Post subject: |
|
|
Tu aurais du chercher pour ça ! Yen à plein le forum mais comme j'ai la flemme je vais te dire comment faire.
Tu peux soit rajouter le droit d'execution pour les commandes halt et reboot mais bon c'est pas propre. Vaut mieux utiliser sudo.
Donc emerge sudo et tu fais visudo.
C'est l'editeur que tu as défini dans le rc.conf qui se lance. Bref tu met ça :
Code: | ton_user ALL=(root)NOPASSWD: /sbin/halt
ton_user ALL=(root)NOPASSWD: /sbin/reboot |
Ensuite il faut faire sudo /sbin/halt pour pouvoir arreter l'ordinateur. Pas terrible donc tu vas faire des alias dans ton ~/.bashrc :
Code: | alias halt="sudo /sbin/halt"
alias reboot="sudo /sbin/reboot"
|
Enjoy !
edit : je suis grillé mais je préfère largement ma méthode. _________________ Stationlinux.org - Wiki Fvwm FR - Config Fvwm |
|
Back to top |
|
|
zdra Veteran
Joined: 30 Nov 2003 Posts: 1693 Location: Bruxelles, Belgique
|
Posted: Thu Dec 30, 2004 10:30 pm Post subject: |
|
|
chmod +s /sbin/halt
chmod +s /sbin/reboot
bourin, pas sécurisé, mais tres facile a faire |
|
Back to top |
|
|
bosozoku Advocate
Joined: 11 Jan 2004 Posts: 2431 Location: Roazhon
|
Posted: Thu Dec 30, 2004 11:02 pm Post subject: |
|
|
zdra wrote: | chmod +s /sbin/halt
chmod +s /sbin/reboot
bourin, pas sécurisé, mais tres facile a faire |
C'est exactement la première méthode que j'ai enoncé _________________ Stationlinux.org - Wiki Fvwm FR - Config Fvwm |
|
Back to top |
|
|
DomiX Apprentice
Joined: 26 Oct 2003 Posts: 209 Location: Paris (FRANCE)
|
Posted: Thu Dec 30, 2004 11:06 pm Post subject: |
|
|
zdra wrote: | chmod +s /sbin/halt
chmod +s /sbin/reboot
bourin, pas sécurisé, mais tres facile a faire |
Pas forcément, tu peux attribuer un groupe operator, et mettre ton utiliseur dedans, et interdire l'accès au "autre"
du style chmod 4710 /sbin/halt _________________ "La connaissance technique ne suffit pas. On doit surpasser les techniques de sorte que l'art devienne un art sans artifice qui apparaît de l'inconscient."
- Daisetsu Suzuki (1870-1966) - |
|
Back to top |
|
|
gim Guru
Joined: 29 Apr 2003 Posts: 418 Location: milky-way
|
Posted: Thu Dec 30, 2004 11:28 pm Post subject: |
|
|
DomiX wrote: | Pas forcément, tu peux attribuer un groupe operator, et mettre ton utiliseur dedans, et interdire l'accès au "autre"
du style chmod 4710 /sbin/halt |
Tu voulais dire 4750 (ou 4751) ?
Ça reste dangeureux : les utilisateurs peuvent appeller halt/reboot/poweroff avec n'importe quels arguments, or halt/reboot/poweroff ont pleins de fonctionnalités dangeureuses.... (man halt )
Dans tous les cas, emerge va se charger de remettre tout ça à 0775 au prochain emerge de sysvinit.
Last edited by gim on Thu Dec 30, 2004 11:31 pm; edited 1 time in total |
|
Back to top |
|
|
bosozoku Advocate
Joined: 11 Jan 2004 Posts: 2431 Location: Roazhon
|
Posted: Thu Dec 30, 2004 11:30 pm Post subject: |
|
|
Bah non ils peuvent pas puisque ils ont aucun droits dessus : 4750
Le 4 c'est pour quoi ?
Et dites moi si je me trompe ^^ _________________ Stationlinux.org - Wiki Fvwm FR - Config Fvwm |
|
Back to top |
|
|
DomiX Apprentice
Joined: 26 Oct 2003 Posts: 209 Location: Paris (FRANCE)
|
Posted: Thu Dec 30, 2004 11:33 pm Post subject: |
|
|
Le 4 c'est pour indiquer le bit set-uid
Oui pardon c'était bien 4750 que je voulais dire _________________ "La connaissance technique ne suffit pas. On doit surpasser les techniques de sorte que l'art devienne un art sans artifice qui apparaît de l'inconscient."
- Daisetsu Suzuki (1870-1966) - |
|
Back to top |
|
|
gim Guru
Joined: 29 Apr 2003 Posts: 418 Location: milky-way
|
Posted: Thu Dec 30, 2004 11:35 pm Post subject: |
|
|
bosozoku wrote: | Bah non ils peuvent pas puisque ils ont aucun droits dessus : 4750 |
Je parlais des utilisateurs du groupe en question.
bosozoku wrote: |
Le 4 c'est pour quoi ?
Et dites moi si je me trompe ^^ |
Le 4 c'est le setuid bit (qui correspond au premier "s" dans la syntaxe à la ls).
On peut aussi l'activer avec chmod u+s
Il confère les droits du possesseur aux personnes qui l'executent.
Au passage, avec un 2, c'est le setgid bit, qui confère les droit du groupe auquel appartient le fichier à celui qui l'execute.
--edit: au passage, ça marche pas avec les scripts (#! interprète) , j'ai jamais vraiment compris pourquoi... ok l'interprète doit alors être lancé avec les droits hérités, mais bon si le possesseur du script sait ce qu'il manipule... (mais c'est vrai que je comprend qu'on puisse vite faire des conneries à cause de ces satanées variables d'environnement)
Last edited by gim on Thu Dec 30, 2004 11:42 pm; edited 1 time in total |
|
Back to top |
|
|
DomiX Apprentice
Joined: 26 Oct 2003 Posts: 209 Location: Paris (FRANCE)
|
Posted: Thu Dec 30, 2004 11:37 pm Post subject: |
|
|
Dans ce cas, tu met pas n'importe qui dans le groupe operator (d'apres mon exemple). Et puis j'utilise shutdown _________________ "La connaissance technique ne suffit pas. On doit surpasser les techniques de sorte que l'art devienne un art sans artifice qui apparaît de l'inconscient."
- Daisetsu Suzuki (1870-1966) - |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2308 Location: Bretagne
|
Posted: Thu Dec 30, 2004 11:38 pm Post subject: |
|
|
Bon vous disputez pas
J'ai suivi la première méthode et ça marche merci à tout le monde
@+ |
|
Back to top |
|
|
bosozoku Advocate
Joined: 11 Jan 2004 Posts: 2431 Location: Roazhon
|
|
Back to top |
|
|
gim Guru
Joined: 29 Apr 2003 Posts: 418 Location: milky-way
|
Posted: Fri Dec 31, 2004 1:38 am Post subject: |
|
|
bosozoku wrote: | j'ai jamais bien compris ces histoires des sticky bit et setgid ou setuid... |
Je vais essayer de faire une explication un peu plus "imagée":
Il etait une fois un peintre dans un musée.
Ce peintre avait pensé à la méthode suivante (poubelle.c), pour supprimer l'uvre nommée /tmp/tableau si un telle uvre existait. Il comptait l'employer dans le cas où il ne serait pas satisfait de son uvre :
Code: | main(){
unlink("/tmp/tableau");
} |
Ayant par ailleurs appris à manier le langage des instructions, le peintre à vite fait de mettre les instructions qui permetait de détruire l'uvre ainsi nommée sur papier.
Code: | peintre@musee $ gcc poubelle.c -o poubelle |
Cette méthode pour détruire une uvre appartenait au peintre, car il vennait de la materialiser, mais elle fut diffusée publiquement avec authorisation pour tout le monde de l'utiliser (rwx-r-xr-x).
Or le peintre possèdait effectivement un /tmp/tableau qu'il trouvait réussi et qu'il voudrait garder.
Mais qu'allait il se passer si un amateur d'art (monsieur lambda) n'aime pas le tableau et décide d'employer la méthode poubelle pour détruire l'uvre ? Car maintenant tout le monde à le droit et sait appliquer les instructions de la méthode poubelle, quitte à demander un peu d'aide au gardien du musée (un certain monsieur Linux).
Et un beau jour un certain amateur d'art, Monsieur lambda passe à l'acte :
Code: | lambda@musee $ /home/peintre/poubelle |
Mais le tableau etait toujours là ! Le peintre est même allé vérifier :
Code: | peintre@musee $ file /tmp/tableau
/tmp/tableau: PNG image data, 1024 x 768, 8-bit/color RGB, non-interlaced
|
Et oui, Normal ! Parce que le gardien qui ne faillit jamais (), à apperçu l'amateur d'art, et lui a interdit de mettre le /tmp/tableau à la poubelle car son possesseur n'a authorisé personne à toucher à son tableau (rw-r--r--) : avec les yeux seulement !
L' amateur d'art avait en effet le droit d'utiliser la méthode poubelle mais sans outrepasser les règles du musée, qui disent que l'on ne peut pas faire ce que l'on veut avec ce qui ne nous appartient pas ! (Et oui, ça marche comme ça dans le musée ext3 ) Il aurait pu mettre son propre tableau à la poubelle, mais celui-ci n'etait pas le sien.
Maintenant, le peintre se dit qu'après tout, si le /tmp/tableau ne plait pas à quelqu'un, ma foi ce tableau n'en vaut pas la peine. Il décide alors d'autoriser tout le monde d'appliquer la méthode poubelle mais avec la mention explicite qu'il confère ses privilèges patrimoniaux à tous ceux qui voudraient executer à la lettre cette méthode.
Code: | peintre@musee $ chmod u+s poubelle |
On pouvait observer la mention reconnaissable grace à son caractère caractéristique "s" :
Code: | ls /home/peintre/poubelle
-rwsr-xr-x 1 peintre peintres 7540 Dec 31 01:48 poubelle
|
L'amateur d'art lambda qui n'aimait vraiment pas le tableau décide alors saisir l'occasion qu'on lui présente et applique une fois de plus la méthode.
Code: | lambda@musee $ /home/peintre/poubelle |
Ce coup ci, le tableau avait bel et bien disparu
Et lorsque le peintre voulu revoir son uvre, le gardien lui dit qu'elle n'etait plus de ce monde...
Code: | peintre@musee $ file /tmp/tableau
/tmp/tableau: cannot open `/tmp/tableau' (No such file or directory)
|
Ça clarifie les choses ?
PS: Je me perment d'ajouter que dans certains musées de piêtre renommée, tels que le musée vfat, les choses sont plus simples, mais beaucoup moins pratiques
--edit: typo
Last edited by gim on Fri Dec 31, 2004 1:16 pm; edited 1 time in total |
|
Back to top |
|
|
zdra Veteran
Joined: 30 Nov 2003 Posts: 1693 Location: Bruxelles, Belgique
|
Posted: Fri Dec 31, 2004 9:14 am Post subject: |
|
|
Et dans les musé ntfs l'administrateur n'a pas le droit de voir les tableaux des artistes qui mettent un brevet sur leur peinture |
|
Back to top |
|
|
bosozoku Advocate
Joined: 11 Jan 2004 Posts: 2431 Location: Roazhon
|
Posted: Fri Dec 31, 2004 10:28 am Post subject: |
|
|
Je te remercie beaucoup pour cette explication !
Mais tu as fait un chmod u+s file !
Le s aurait du etre appliqué au dernier couple pas au premier ! (user + s).
Et ca revient à donner les droits d'écriture aux autres non ? Ou alors j'ai du mal mais je vais me documenter la dessus _________________ Stationlinux.org - Wiki Fvwm FR - Config Fvwm |
|
Back to top |
|
|
gim Guru
Joined: 29 Apr 2003 Posts: 418 Location: milky-way
|
Posted: Fri Dec 31, 2004 1:09 pm Post subject: |
|
|
bosozoku wrote: | Le s aurait du etre appliqué au dernier couple pas au premier ! (user + s). |
le premier triplet c'est u(user), le second c'est g(group), le troisième c'est o(others).
bosozoku wrote: | Et ca revient à donner les droits d'écriture aux autres non ? Ou alors j'ai du mal mais je vais me documenter la dessus |
Ça revient en fait à donner tous nos droits (lecture, ecriture, execution) à ceux qui exécutent l'executable en question.
Tout ce passe comme si c'etait le possesseur du fichier qui avait lancé la commande (alors que ce n'est pas lui qui l'a lancée). |
|
Back to top |
|
|
bosozoku Advocate
Joined: 11 Jan 2004 Posts: 2431 Location: Roazhon
|
Posted: Fri Dec 31, 2004 3:09 pm Post subject: |
|
|
Put*** !!! Je pige pas !!
Si ça reviens à donner tous ces droits à celui qui l'execute, pourquoi ne pas donner tous les droits au dernier triplet ? Cela revient au même non ?
Je reviens, j'ai un bouquin qui parle de ça, je vais lire ^^
edit : bon je crois avoir compris, du moins pour le bit SGID.
Donc : tout fichier nouvellement créé a pour groupe propriétaire le groupe effectif de l'utilisateur qui le crée si le répertoire qui le contient n'est pas SGID. Ca provient de la branche UNIX System V.
tout fichier nouvellement créé a pour groupe propriétaire le groupe auquel appartient le répertoire dans le quel il est créé si ce répertoire est SGID. C'est le comportement de BSD.
En gros le bit SGID applicable sur un répertoire permet de switcher entre les comportements des deux branches UNIX : system V et BSD. C'est cool Linux, c'est la syntese des deux en fait.
Mais alors le SUID c'est quoi ? _________________ Stationlinux.org - Wiki Fvwm FR - Config Fvwm |
|
Back to top |
|
|
zdra Veteran
Joined: 30 Nov 2003 Posts: 1693 Location: Bruxelles, Belgique
|
Posted: Fri Dec 31, 2004 3:48 pm Post subject: |
|
|
Bon alors clairement:
Quand un utilisateur lance un programme, ça crée un processus au niveau du kernel. Ce processus a un proprietaire, et un (des) groupes. Par défaut le proprietaire est obligatoirement l'utilisateur qui a lancé le programme. Et donc quand le processus (programme) veut supprimer ou lire un fichier, le kernel vérifie qu'il a les droits en fonction de si le processus a été créé par l'auteur du fichier, ou qu'ils sont dans le meme groupe, etc...
Maintenant si le programme a le bit SUID d'activé, lorsqu'un utilisateur lancera ce programme, le processus ne prendra pas les attribu de celui qui a lancé le programme, mais plutot de l'auteur du programme ! Donc si on met le SUID sur /sbin/halt, ce fichier appartient à root, donc si un utilisateur lance ce programme le processus généré tournera avec les privileges root !!! Et donc le processus créé poura faire des actions comme éteindre le pc qui sont refusé à un utilisateur normal.
C'est plus claire ?
[EDIT] et d'ailleur ceci mene souvent à une faille de sécurité souvent facilement exploitable sur des PC public: ils donnent la permission à un utilisateur normal de monter un CD ou une disquette... mais si l'utilisateur a mis su sa disquette un programme appartenant à root, et avec le SUID d'activé... disons que ce programme soit un simple script qui fait "rm -rf /"... hop donc l'utilisateur normal met sa disquette "piegée" et execute son script et bousille l'ordi La solution c'est de mettre dans fstab l'option "nosuid" mais tres souvent des admins oublient de le faire... (c'est le cas dans mon unif d'ailleur)
Last edited by zdra on Fri Dec 31, 2004 3:53 pm; edited 1 time in total |
|
Back to top |
|
|
gim Guru
Joined: 29 Apr 2003 Posts: 418 Location: milky-way
|
Posted: Fri Dec 31, 2004 3:49 pm Post subject: |
|
|
bosozoku wrote: | Donc : tout fichier nouvellement créé a pour groupe propriétaire le groupe effectif de l'utilisateur qui le crée si le répertoire qui le contient n'est pas SGID. Ca provient de la branche UNIX System V.
tout fichier nouvellement créé a pour groupe propriétaire le groupe auquel appartient le répertoire dans le quel il est créé si ce répertoire est SGID. C'est le comportement de BSD.
En gros le bit SGID applicable sur un répertoire permet de switcher entre les comportements des deux branches UNIX : system V et BSD. C'est cool Linux, c'est la syntese des deux en fait.
Mais alors le SUID c'est quoi ? |
Oula Oula, sur les répertoires c'est pas pareil ! Il a aussi été donné une intrerprétation au bit setgid (et stickybit) sur les répertoires, mais ça n'a plus aucun rapport ! (D'ailleurs, justement le bit suid sur les répertoires n'est pas utilisé par linux il me semble.) |
|
Back to top |
|
|
bosozoku Advocate
Joined: 11 Jan 2004 Posts: 2431 Location: Roazhon
|
Posted: Fri Dec 31, 2004 3:54 pm Post subject: |
|
|
zdra : donc pour le sujet de ce thread, au lieu de mettre un droit d'execution pour le dernier triplet ou bien de jongler avec des groupes etc... on peut tout simplement mettre le SUID sur /sbin/halt et /sbin/reboot et donc la si j'execute la commande, je le ferais avec les permissions du premier triplet, c'est ça ?
Si c'est ça, c'est hyper simple à mettre en place mais c'est pas très sécurisé... _________________ Stationlinux.org - Wiki Fvwm FR - Config Fvwm |
|
Back to top |
|
|
zdra Veteran
Joined: 30 Nov 2003 Posts: 1693 Location: Bruxelles, Belgique
|
Posted: Fri Dec 31, 2004 4:00 pm Post subject: |
|
|
zdra wrote: | chmod +s /sbin/halt
chmod +s /sbin/reboot
bourin, pas sécurisé, mais tres facile a faire |
Voila exactement. Mais à noter que tu dois avoir aussi la permission d'execution sur le programme (il me semble) donc +x à tout le monde, et suid d'activé |
|
Back to top |
|
|
|