Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[halt & reboot] en tant qu'utilisateur (résolu)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Adrien
Advocate
Advocate


Joined: 13 Jul 2004
Posts: 2308
Location: Bretagne

PostPosted: Thu Dec 30, 2004 10:16 pm    Post subject: [halt & reboot] en tant qu'utilisateur (résolu) Reply with quote

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 :oops:


Last edited by Adrien on Thu Dec 30, 2004 11:38 pm; edited 1 time in total
Back to top
View user's profile Send private message
Dhaki
Guru
Guru


Joined: 16 Jun 2004
Posts: 325
Location: Ticino - CH

PostPosted: Thu Dec 30, 2004 10:19 pm    Post subject: Reply with quote

Voità! Salut
Back to top
View user's profile Send private message
bosozoku
Advocate
Advocate


Joined: 11 Jan 2004
Posts: 2431
Location: Roazhon

PostPosted: Thu Dec 30, 2004 10:22 pm    Post subject: Reply with quote

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 ! :D

edit : je suis grillé mais je préfère largement ma méthode.
_________________
Stationlinux.org - Wiki Fvwm FR - Config Fvwm
Back to top
View user's profile Send private message
zdra
Veteran
Veteran


Joined: 30 Nov 2003
Posts: 1693
Location: Bruxelles, Belgique

PostPosted: Thu Dec 30, 2004 10:30 pm    Post subject: Reply with quote

chmod +s /sbin/halt
chmod +s /sbin/reboot

bourin, pas sécurisé, mais tres facile a faire :D
Back to top
View user's profile Send private message
bosozoku
Advocate
Advocate


Joined: 11 Jan 2004
Posts: 2431
Location: Roazhon

PostPosted: Thu Dec 30, 2004 11:02 pm    Post subject: Reply with quote

zdra wrote:
chmod +s /sbin/halt
chmod +s /sbin/reboot

bourin, pas sécurisé, mais tres facile a faire :D

C'est exactement la première méthode que j'ai enoncé :)
_________________
Stationlinux.org - Wiki Fvwm FR - Config Fvwm
Back to top
View user's profile Send private message
DomiX
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 209
Location: Paris (FRANCE)

PostPosted: Thu Dec 30, 2004 11:06 pm    Post subject: Reply with quote

zdra wrote:
chmod +s /sbin/halt
chmod +s /sbin/reboot

bourin, pas sécurisé, mais tres facile a faire :D


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
View user's profile Send private message
gim
Guru
Guru


Joined: 29 Apr 2003
Posts: 418
Location: milky-way

PostPosted: Thu Dec 30, 2004 11:28 pm    Post subject: Reply with quote

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. :roll:


Last edited by gim on Thu Dec 30, 2004 11:31 pm; edited 1 time in total
Back to top
View user's profile Send private message
bosozoku
Advocate
Advocate


Joined: 11 Jan 2004
Posts: 2431
Location: Roazhon

PostPosted: Thu Dec 30, 2004 11:30 pm    Post subject: Reply with quote

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
View user's profile Send private message
DomiX
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 209
Location: Paris (FRANCE)

PostPosted: Thu Dec 30, 2004 11:33 pm    Post subject: Reply with quote

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
View user's profile Send private message
gim
Guru
Guru


Joined: 29 Apr 2003
Posts: 418
Location: milky-way

PostPosted: Thu Dec 30, 2004 11:35 pm    Post subject: Reply with quote

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
View user's profile Send private message
DomiX
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 209
Location: Paris (FRANCE)

PostPosted: Thu Dec 30, 2004 11:37 pm    Post subject: Reply with quote

Dans ce cas, tu met pas n'importe qui dans le groupe operator ;)(d'apres mon exemple). Et puis j'utilise shutdown 8)
_________________
"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
View user's profile Send private message
Adrien
Advocate
Advocate


Joined: 13 Jul 2004
Posts: 2308
Location: Bretagne

PostPosted: Thu Dec 30, 2004 11:38 pm    Post subject: Reply with quote

Bon vous disputez pas :)

J'ai suivi la première méthode et ça marche merci à tout le monde :D
@+
Back to top
View user's profile Send private message
bosozoku
Advocate
Advocate


Joined: 11 Jan 2004
Posts: 2431
Location: Roazhon

PostPosted: Thu Dec 30, 2004 11:38 pm    Post subject: Reply with quote

j'ai jamais bien compris ces histoires des sticky bit et setgid ou setuid... :-(
_________________
Stationlinux.org - Wiki Fvwm FR - Config Fvwm
Back to top
View user's profile Send private message
gim
Guru
Guru


Joined: 29 Apr 2003
Posts: 418
Location: milky-way

PostPosted: Fri Dec 31, 2004 1:38 am    Post subject: Reply with quote

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 ? :D

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
View user's profile Send private message
zdra
Veteran
Veteran


Joined: 30 Nov 2003
Posts: 1693
Location: Bruxelles, Belgique

PostPosted: Fri Dec 31, 2004 9:14 am    Post subject: Reply with quote

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 :lol:
Back to top
View user's profile Send private message
bosozoku
Advocate
Advocate


Joined: 11 Jan 2004
Posts: 2431
Location: Roazhon

PostPosted: Fri Dec 31, 2004 10:28 am    Post subject: Reply with quote

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
View user's profile Send private message
gim
Guru
Guru


Joined: 29 Apr 2003
Posts: 418
Location: milky-way

PostPosted: Fri Dec 31, 2004 1:09 pm    Post subject: Reply with quote

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
View user's profile Send private message
bosozoku
Advocate
Advocate


Joined: 11 Jan 2004
Posts: 2431
Location: Roazhon

PostPosted: Fri Dec 31, 2004 3:09 pm    Post subject: Reply with quote

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
View user's profile Send private message
zdra
Veteran
Veteran


Joined: 30 Nov 2003
Posts: 1693
Location: Bruxelles, Belgique

PostPosted: Fri Dec 31, 2004 3:48 pm    Post subject: Reply with quote

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 :lol: 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
View user's profile Send private message
gim
Guru
Guru


Joined: 29 Apr 2003
Posts: 418
Location: milky-way

PostPosted: Fri Dec 31, 2004 3:49 pm    Post subject: Reply with quote

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
View user's profile Send private message
bosozoku
Advocate
Advocate


Joined: 11 Jan 2004
Posts: 2431
Location: Roazhon

PostPosted: Fri Dec 31, 2004 3:54 pm    Post subject: Reply with quote

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
View user's profile Send private message
zdra
Veteran
Veteran


Joined: 30 Nov 2003
Posts: 1693
Location: Bruxelles, Belgique

PostPosted: Fri Dec 31, 2004 4:00 pm    Post subject: Reply with quote

zdra wrote:
chmod +s /sbin/halt
chmod +s /sbin/reboot

bourin, pas sécurisé, mais tres facile a faire :D


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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum