Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/04/2009, à 09:29

panzermarch

modification des droits d'une application

je possède une imprimante epson stylus photo r200, 1 cartouche encre noire plus 5 couleurs, pour savoir où en est le niveau j'utilise mtink, mais si je le démarre simplement par le lanceur, il n'a aucun droit, pour pouvoir me dire le niveau des encres je dois utiliser la ligne de commande en root, comment faire pour donner l'autorisation a mtink sans passer par la ligne de commande ?

de plus, quand je lance mtink l'imprimante s'arrête et je ne peux plus avoir le niveau d'encre y a t il une solution pour faire les deux à la fois ?

Hors ligne

#2 Le 22/04/2009, à 11:49

boogy

Re : modification des droits d'une application

Lien : http://www.commentcamarche.net/faq/sujet-3603-securite-droits-d-acces-gnu-linux#iii-les-droits-speciaux



1. Le Sticky bit

Le Sticky bit est un droit spécial dont le comportement est différent pour les fichiers exécutables et les répertoires.
Il correspond à la lettre t ou numériquement à 1000.
Si les droits d'exécution ne sont pas positionnés c'est la lettre T qui correspond.

    * les fichiers exécutables - le programme restera en mémoire pour une exécution ultérieure
    * les répertoires - si le sticky bit est positionné sur un répertoire, seul le propriétaire pourra supprimer ses fichiers (c'est le cas des répertoires /tmp et /var/tmp sous GNU/Linux)



Exemple :

$ ls -l / | grep tmp;ls -l /var | grep tmp
drwxrwxrwt 12 root root 1024 2006-07-22 14:18 tmp
drwxrwxrwt 4 root root 4096 2006-07-22 10:23 tmp

C'est l'affichage des droits pour /tmp et /var/tmp.
Nous remarquons que le dernier caractère dans la suite des 9 pour les droits est un t et pas un x ou un tiret.
2. Les droits d'endossement

SetUID et SetGID

Les droits d'endossement dans GNU/Linux sont représentés par :

    * la lettre s (si le droit x est positionné)
    * la lettre S (si le droit x n'est pas positionné)



Numériquement, les droits d'endossement sont représentés de la façon suivante :

    * 4000 - pour l'endossement de l'identité du propriétaire
    * 2000 - pour l'endossement de l'identité du groupe



Le comportement des droits d'endossement.

    * Pour les fichiers programme ou exécutable
          o SUID = 4000 - le processus a les droits du propriétaire du programme exécuté
          o SGID = 2000 - le processus a les droits du groupe du programme exécuté
    * Pour les répertoires
          o SGID = 2000 - les fichiers qui se trouvent dans le répertoire appartiennent au groupe du répertoire



Les droits d'endossement sont très importants pour la sécurité.


Au lieu de donner l'accès à un fichier, on donne le droit d'accès à une commande.
Le kernel (ou noyau), au moment de l'exécution de la commande endosse l'identité du propriétaire ou du groupe de la commande au lieu de celle de l'utilisateur qui a lancé la commande.
Donc l'accès au fichier se fait par le biais de la commande et non pas directement.

Quand un utilisateur se connecte sur un système GNU/Linux, il détient 2 UID (UserIDentity) et 2 GID (GroupIDentity) : le réel et l'effectif.

    * Au moment de l'exécution d'une commande les UID et GID sont les réels,les effectifs sont attribués à la commande.
    * Quand les droits d'endossement ne sont pas positionnés, alors les UID et GID effectifs sont identiques aux UID et GID réels.
    * Si les droits d'endossement sont positionnés alors l'UID et/ou GID effectifs sont ceux de la commande. Ce qui veut dire que les UID et GID effectifs sont ceux qui contrôlent les droits d'accès à une commande




Pour connaître les fichiers avec les droits d'endossement de votre système tapez dans un terminal la commande suivante :

# find / -perm -2000 -o -perm -4000 -exec ls -l {} \; 2>/dev/null

Un bon exemple c'est la commande crontab. Cette commande crée un fichier dans /var/spool/cron/crontabs pour l'utilisateur qui a exécuté la commande crontab. L'accès au répertoire /var/spool/cront/crontabs est interdit aux utilisateurs sauf root.

$ cd /var/spool/cron/crontabs/
bash: cd: /var/spool/cron/crontabs/: Permission non accordée

Quand l'utilisateur lance la commande crontab -e (pour éditer son fichier /var/spool/cron/crontabs/nom_user), la commande s'exécute avec l'UID et GID réel de l'utilisateur mais avec l'UID et GID effectif de root.

$ ls -l /usr/bin/crontab
-rwxr-sr-x 1 root crontab 26872 2004-07-28 22:44 /usr/bin/crontab

On voit que la commande crontab est la propriété de root et qu'elle fait partie du groupe crontab avec le droit SGID.

Et comme root a le droit de créer dans /var/spool/cron/crontabs le fichier sera créé.

# ls -l /var/spool/cron/crontabs/lami20j
-rw------- 1 lami20j crontab 225 2006-07-22 16:00 /var/spool/cron/crontabs/lami20j

On voit que l'utilisateur lami20j est le propriétaire du fichier et qu'il a les droits de lecture et d'écriture. Cependant il ne peut pas le faire directement.

Dernière modification par boogy (Le 22/04/2009, à 11:51)


WHERE THERE IS A SHELL, THERE IS A WAY
Success is to be measured not so much by the position that one has reached in life as by the obstacles which he has overcome.
Documentation
www.tuxgeek.org

Hors ligne

#3 Le 24/04/2009, à 11:41

panzermarch

Re : modification des droits d'une application

merci beaucoup pour l'explication, mais j'ai pas trouvé la solution à mon petit problème.

Hors ligne

#4 Le 26/04/2009, à 20:47

boogy

Re : modification des droits d'une application

tu donne le droit SetUID et SetGID a ton programme et cm ca celui qui l'utilise nas pas besoin de mot de passe root


WHERE THERE IS A SHELL, THERE IS A WAY
Success is to be measured not so much by the position that one has reached in life as by the obstacles which he has overcome.
Documentation
www.tuxgeek.org

Hors ligne

#5 Le 27/04/2009, à 07:40

panzermarch

Re : modification des droits d'une application

oui mais ce que je ne sais pas c'est comment faire. il me semblait qu'il y avait une commande toutes simples pour ça, qui me permettait de mettre un programme dans un groupe ?

Hors ligne

#6 Le 27/04/2009, à 13:27

boogy

Re : modification des droits d'une application

pour l'endossement de l'identité du propriétaire:

sudo chmod 4000 programme

pour l'endossement de l'identité du groupe:

   sudo chown 2000 programme

WHERE THERE IS A SHELL, THERE IS A WAY
Success is to be measured not so much by the position that one has reached in life as by the obstacles which he has overcome.
Documentation
www.tuxgeek.org

Hors ligne