====== Différences ======
Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
cours:activite1:gestion_des_utilisateurs [2013/11/07 15:12] r.doiteau créée |
cours:activite1:gestion_des_utilisateurs [2019/05/11 14:35] (Version actuelle) |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
1. Citer les différents type de comptes utilisateurs sous Unix. | 1. Citer les différents type de comptes utilisateurs sous Unix. | ||
- | Il existe 3 types d'utilisateurs sous unix: Root, user, group | + | compte administration : root |
+ | compte d'applications : bin, daemon, apache, ssh | ||
+ | compte utilisateur | ||
+ | |||
2. Dans quel fichier sont renseignés les groupes secondaires d'un compte utilisateur ? | 2. Dans quel fichier sont renseignés les groupes secondaires d'un compte utilisateur ? | ||
- | Ils sont renseigné de le fichier /etc/passwd | + | Ils sont renseigné de le fichier /etc/group |
3. Comment ajouter le compte utilisateur nicolas sur le système sachant que le groupe formateur existant doit être son groupe principal ? | 3. Comment ajouter le compte utilisateur nicolas sur le système sachant que le groupe formateur existant doit être son groupe principal ? | ||
- | c:useradd -G formateur nicolas | + | useradd -g formateur nicolas |
4. Que fait la commande ? find / -user 502 | 4. Que fait la commande ? find / -user 502 | ||
- | c: elle retourne le nom de l'utilisateur ayant l'UID égal à 502. | + | Elle affiche le nom de tous les fichiers appartenant à l'utilisateur ayant l'UID égal à 502 dans l'arborescence du système. |
5. Quel droit signifie qu'un programme doit être lancé avec l'identifiant du propriétaire du fichier ? | 5. Quel droit signifie qu'un programme doit être lancé avec l'identifiant du propriétaire du fichier ? | ||
- | b: SUID | + | SUID permet d'allouer temporairement les droits du propriétaire à un utilisateur : |
+ | ---s------ ou ---S------ | ||
- | Exercice 1 : Utilisateurs et groupes | + | Un fichier avec les droits |
+ | |||
+ | -rwxr-xr-x | ||
+ | |||
+ | auquel on ajoute le droit SUID aura donc la notation | ||
+ | |||
+ | -rwsr-xr-x | ||
+ | |||
+ | |||
+ | ==== Exercice 1 : Utilisateurs et groupes ==== | ||
1. Se connecter en tant que root sur une console texte. | 1. Se connecter en tant que root sur une console texte. | ||
- | rabiven2@tssi:~$ su | + | su |
- | Mot de passe : | + | |
- | root@tssi:/home/rabiven2# | + | |
2. Lister les comptes utilisateurs et les groupes existants sur le système. | 2. Lister les comptes utilisateurs et les groupes existants sur le système. | ||
- | root@tssi:/home/rabiven2# cat /etc/passwd | + | cat /etc/group |
- | root:x:0:0:root:/root:/bin/bash | + | |
- | daemon:x:1:1:daemon:/usr/sbin:/bin/sh | + | |
- | bin:x:2:2:bin:/bin:/bin/sh | + | |
- | sys:x:3:3:sys:/dev:/bin/sh | + | |
- | sync:x:4:65534:sync:/bin:/bin/sync | + | |
- | games:x:5:60:games:/usr/games:/bin/sh | + | |
- | man:x:6:12:man:/var/cache/man:/bin/sh | + | |
- | lp:x:7:7:lp:/var/spool/lpd:/bin/sh | + | |
- | mail:x:8:8:mail:/var/mail:/bin/sh | + | |
- | news:x:9:9:news:/var/spool/news:/bin/sh | + | |
- | uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh | + | |
- | proxy:x:13:13:proxy:/bin:/bin/sh | + | |
- | www-data:x:33:33:www-data:/var/www:/bin/sh | + | |
- | backup:x:34:34:backup:/var/backups:/bin/sh | + | |
- | list:x:38:38:Mailing List Manager:/var/list:/bin/sh | + | |
- | irc:x:39:39:ircd:/var/run/ircd:/bin/sh | + | |
- | gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh | + | |
- | nobody:x:65534:65534:nobody:/nonexistent:/bin/sh | + | |
- | libuuid:x:100:101::/var/lib/libuuid:/bin/sh | + | |
- | messagebus:x:101:103::/var/run/dbus:/bin/false | + | |
- | Debian-exim:x:102:104::/var/spool/exim4:/bin/false | + | |
- | statd:x:103:65534::/var/lib/nfs:/bin/false | + | |
- | avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false | + | |
- | usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false | + | |
- | Debian-gdm:x:106:114:Gnome Display Manager:/var/lib/gdm3:/bin/false | + | |
- | sshd:x:107:65534::/var/run/sshd:/usr/sbin/nologin | + | |
- | saned:x:108:116::/home/saned:/bin/false | + | |
- | hplip:x:109:7:HPLIP system user,,,:/var/run/hplip:/bin/false | + | |
- | rabiven2:x:1000:1000:rabiven2,,,:/home/rabiven2:/bin/bash | + | |
- | haldaemon:x:110:117:Hardware abstraction layer,,,:/var/run/hald:/bin/false | + | |
- | toor:x:0:1005::/root:/bin/sh | + | |
- | tux:x:1001:1003:,,,:/home/tux:/bin/bash | + | |
- | tux2:x:1002:1004:,,,:/home/tux2:/bin/bash | + | |
- | root@tssi:/home/rabiven2# ^C | + | |
- | root@tssi:/home/rabiven2# | + | |
3. Quels sont l'UID et le GID du compte root ? | 3. Quels sont l'UID et le GID du compte root ? | ||
- | root:x:0:0:root:/root:/bin/bash | + | root:x:0:0:root:/root:/bin/bash |
- | UID = 0 et GID = 0 | + | UID = 0 et GID = 0 |
5. Créer les groupes grp1, grp2 et grp3. Le GID du groupe grp3 doit être 823. | 5. Créer les groupes grp1, grp2 et grp3. Le GID du groupe grp3 doit être 823. | ||
- | root@tssi:/home/rabiven2# groupadd grp1 | + | root@debian:/usr/share# groupadd grp1 |
- | root@tssi:/home/rabiven2# groupadd grp2 | + | root@debian:/usr/share# groupadd grp2 |
- | root@tssi:/home/rabiven2# groupadd -g 823 grp3 | + | root@debian:/usr/share# groupadd -g 823 grp3 |
6. Créer les comptes utilisateurs util1, util2, et util3 ayant respectivement les groupes grp1, | 6. Créer les comptes utilisateurs util1, util2, et util3 ayant respectivement les groupes grp1, | ||
Ligne 87: | Ligne 63: | ||
grp3. Le pseudonyme tux1 de l'utilisateur util1 doit être renseigné dans la configuration. | grp3. Le pseudonyme tux1 de l'utilisateur util1 doit être renseigné dans la configuration. | ||
- | root@tssi:/home/rabiven2# useradd -g grp1 util1 | + | root@debian:/usr/share# useradd -g grp1 util1 |
- | root@tssi:/home/rabiven2# useradd -g grp2 -G grp1,grp3 util2 | + | root@debian:/usr/share# useradd -g grp2 -G grp1,grp3 util2 |
- | root@tssi:/home/rabiven2# useradd -g grp3 util3 | + | root@debian:/usr/share# useradd -g grp3 util3 |
- | 7. Noter les UID et GID des comptes utilisateurs et ds groupes créés précédement. | ||
- | root@tssi:/home/rabiven2# id util1 | + | 7. Noter les UID et GID des comptes utilisateurs et des groupes créés précédement. |
- | uid=1003(util1) gid=1006(grp1) groupes=1006(grp1) | + | |
- | root@tssi:/home/rabiven2# id util2 | + | root@debian:/usr/share# id util1 |
- | uid=1004(util2) gid=1007(grp2) groupes=1007(grp2),1006(grp1),823(grp3) | + | uid=1001(util1) gid=1001(grp1) groupes=1001(grp1) |
- | root@tssi:/home/rabiven2# id util3 | + | root@debian:/usr/share# id util2 |
- | uid=1005(util3) gid=823(grp3) groupes=823(grp3) | + | uid=1002(util2) gid=1002(grp2) groupes=1002(grp2),1001(grp1),823(grp3) |
+ | root@debian:/usr/share# id util3 | ||
+ | uid=1003(util3) gid=823(grp3) groupes=823(grp3) | ||
8. Supprimer le groupe grp3. Cela est-il possible ? Pourquoi ? | 8. Supprimer le groupe grp3. Cela est-il possible ? Pourquoi ? | ||
- | root@tssi:/home/rabiven2# delgroup grp3 | + | root@debian:/usr/share# delgroup grp3 |
- | /usr/sbin/delgroup: « util3 » possèdent toujours « grp3 » en tant que groupe primaire ! | + | /usr/sbin/delgroup: « util3 » possèdent toujours « grp3 » en tant que groupe primaire ! |
9. Supprimer le compte utilisateur util3 sans supprimer son répertoire personnel et supprimer le groupe grp3. | 9. Supprimer le compte utilisateur util3 sans supprimer son répertoire personnel et supprimer le groupe grp3. | ||
- | root@tssi:/home/rabiven2# userdel util3 | + | root@debian:/usr/share# userdel util3 |
- | root@tssi:/home/rabiven2# delgroup grp3 | + | root@debian:/usr/share# delgroup grp3 |
- | Suppression du groupe « grp3 »... | + | Suppression du groupe « grp3 »... |
- | Fait. | + | Fait. |
- | Exercice 2 : Droits d'accès | + | |
+ | ==== Exercice 2 : Droits d'accès ==== | ||
1. En tant que util1, créer le répertoire rep1 dans /tmp puis créer le fichier vide fic1 dans ce répertoire. Quels sont les droits associés à ces nouveaux fichiers ? | 1. En tant que util1, créer le répertoire rep1 dans /tmp puis créer le fichier vide fic1 dans ce répertoire. Quels sont les droits associés à ces nouveaux fichiers ? | ||
- | root@tssi:/home# usermod -g grp1 util1 | + | root@debian:/usr/share# su util1 |
- | root@tssi:/home# id util1 | + | $ mkdir /tmp/rep1 |
- | uid=1003(util1) gid=1006(grp1) groupes=1006(grp1) | + | $ exit |
- | root@tssi:/home# mkdir /tmp/rep1 | + | root@debian:/usr/share# ls -ail /tmp/rep1 |
- | root@tssi:/home# cd /tmp | + | total 8 |
- | root@tssi:/tmp# ls | + | 798448 drwxr-xr-x 2 util1 grp1 4096 nov. 7 16:12 . |
- | entree_secret gnome-system-monitor.rabiven2.2311133919 lienficb plans tux vmware-rabiven2 | + | 783371 drwxrwxrwt 13 root root 4096 nov. 7 16:12 .. |
- | f id orbit-Debian-gdm rep1 virtual-rabiven2.K8pTWo vmware-root | + | |
- | f2 lienfica orbit-rabiven2 ssh-CEtPNz2678 VMwareDnD vmware-root-3671762689 | + | |
- | root@tssi:/tmp# cd rep1 | + | |
- | root@tssi:/tmp/rep1# touch fic1 | + | |
- | root@tssi:/tmp/rep1# ls -l | + | |
- | total 0 | + | |
- | -rw-r--r-- 1 root root 0 9 oct. 16:45 fic1 | + | |
- | root@tssi:/tmp/rep1# | + | |
2. Modifier la valeur de umask de util1 à 007. | 2. Modifier la valeur de umask de util1 à 007. | ||
- | root@tssi:/tmp/rep1# umask | + | root@debian:/usr/share# su util1 |
- | 0022 | + | $ umask |
- | root@tssi:/tmp/rep1# umask 007 | + | 0022 |
+ | $ umask 007 | ||
+ | $ umask | ||
+ | 0007 | ||
3. Créer un nouveau répertoire rep2 contenant le fichier vide fic2 dans /tmp, et regarder les droits associés à ces nouveaux fichiers. Cela a-t-il changé les droits des fichiers déjà existant ? | 3. Créer un nouveau répertoire rep2 contenant le fichier vide fic2 dans /tmp, et regarder les droits associés à ces nouveaux fichiers. Cela a-t-il changé les droits des fichiers déjà existant ? | ||
- | root@tssi:/tmp/rep1# cd .. | + | $ mkdir /tmp/rep2 |
- | root@tssi:/tmp# mkdir rep2 | + | $ touch /tmp/rep2/fic2 |
- | root@tssi:/tmp# cd rep2 | + | $ ls -ail /tmp/rep2/fic2 |
- | root@tssi:/tmp/rep2# touch fic2 | + | 800155 -rw-rw---- 1 util1 grp1 0 nov. 7 16:18 /tmp/rep2/fic2 |
- | root@tssi:/tmp/rep2# ls -l | + | |
- | total 0 | + | |
- | -rw-rw---- 1 root root 0 9 oct. 16:52 fic2 | + | |
4. Changer les droits du fichiers fic2 afin que personne ne puisse le modifier. | 4. Changer les droits du fichiers fic2 afin que personne ne puisse le modifier. | ||
- | root@tssi:/tmp/rep2# chmod 555 fic2 | + | $ chmod 550 /tmp/rep2/fic2 |
- | root@tssi:/tmp/rep2# ls -l | + | $ ls -ail /tmp/rep2/fic2 |
- | total 0 | + | 800155 -r-xr-x--- 1 util1 grp1 0 nov. 7 16:18 /tmp/rep2/fic2 |
- | -r-xr-xr-x 1 root root 0 9 oct. 16:52 fic2 | + | |
5. Se connecter en tant que util2 sur une console texte libre. | 5. Se connecter en tant que util2 sur une console texte libre. | ||
6. Essayer de supprimer le fichier /tmp/rep2/fic2. Est-ce possible ? Pourquoi ? | 6. Essayer de supprimer le fichier /tmp/rep2/fic2. Est-ce possible ? Pourquoi ? | ||
- | rabiven2@tssi:~$ su util2 | + | util2@debian:/usr/share$ rm /tmp/rep2/fic2 |
- | Mot de passe : | + | rm : supprimer fichier (protégé en écriture) « /tmp/rep2/fic2 » ? |
- | util2@tssi:/home/rabiven2$ rm /tmp/rep2/fic2 | + | Permission non accordée |
- | rm: impossible de supprimer « /tmp/rep2/fic2 »: Permission non accordée | + | util2@debian:/usr/share$ cat /tmp/rep |
+ | rep1/ rep2/ | ||
+ | util2@debian:/usr/share$ cat /tmp/rep2/fic2 | ||
+ | toto | ||
+ | |||
+ | utils2 n'a pas les droits d'écriture | ||
+ | :TMP | ||
7. Entant que root, créer le programme C /tmp/droits.c suivant : | 7. Entant que root, créer le programme C /tmp/droits.c suivant : | ||
+ | <code=c> | ||
#include < stdio.h> | #include < stdio.h> | ||
#include < stdlib.h> | #include < stdlib.h> | ||
Ligne 182: | Ligne 163: | ||
} | } | ||
+ | </code> | ||
8. Compiler le code source précédent avec la commande : | 8. Compiler le code source précédent avec la commande : | ||
- | gcc droits.c -o droits.exe | + | |
+ | gcc droits.c -o droits.exe | ||
9. Exécuter successivement le programme droits.exe en tant que root et util1. Quel est le résultat affiché ? Qu'en déduire ? | 9. Exécuter successivement le programme droits.exe en tant que root et util1. Quel est le résultat affiché ? Qu'en déduire ? | ||
- | root@tssi:/tmp# vim droits.c | + | |
- | root@tssi:/tmp# gcc droits.c -o droits.exe | + | root@debian:/tmp# ./droits.exe |
- | root@tssi:/tmp# ./droits.exe | + | UID réel : 0 |
- | UID réel: 0 | + | UID effectif : 0 |
- | UID effectif: 0 | + | GID réel : 0 |
- | GID réel: 0 | + | GID effectif : 0 |
- | GID effectif: 0 | + | root@debian:/tmp# su util1 |
- | root@tssi:/tmp# su util1 | + | $ ./droits.exe |
- | util1@tssi:/tmp$ ./droits.exe | + | UID réel : 1001 |
- | UID réel: 1003 | + | UID effectif : 1001 |
- | UID effectif: 1003 | + | GID réel : 1001 |
- | GID réel: 1006 | + | GID effectif : 1001 |
- | GID effectif: 1006 | + | |
- | util1@tssi:/tmp$ | + | |
10. Positionner le droit SUID sur ce fichier et exécuter de nouveau ce programme en tant que root et util1. Quelle est la différence ? | 10. Positionner le droit SUID sur ce fichier et exécuter de nouveau ce programme en tant que root et util1. Quelle est la différence ? | ||
- | root@tssi:/tmp# chmod 4000 droits.exe | + | |
- | root@tssi:/tmp# ./droits.exe | + | root@debian:/tmp# chmod 4000 droits.exe |
- | bash: ./droits.exe: Permission non accordée | + | root@debian:/tmp# ./droits.exe |
- | root@tssi:/tmp# su util1 | + | bash: ./droits.exe: Permission non accordée |
- | util1@tssi:/tmp$ ./droits.exe | + | root@debian:/tmp# su util1 |
- | bash: ./droits.exe: Permission non accordée | + | $ bash |
- | util1@tssi:/tmp$ ^C | + | util1@debian:/tmp$ ./droits.exe |
- | util1@tssi:/tmp$ | + | bash: ./droits.exe: Permission non accordée |
11. Changer le propriétaire et le groupe du fichier /tmp/droits.exe en util2 et grp2. | 11. Changer le propriétaire et le groupe du fichier /tmp/droits.exe en util2 et grp2. | ||
- | root@tssi:/tmp# chown util2 /tmp/droits.exe | + | |
- | root@tssi:/tmp# chgrp grp2 /tmp/droits.exe | + | root@debian:/tmp# chown util2 /tmp/droits.exe |
+ | root@debian:/tmp# chgrp grp2 /tmp/droits.exe | ||
12. Positionner le droit SGID sur ce fichier et exécuter de nouveau ce programme en tant que root et util1. | 12. Positionner le droit SGID sur ce fichier et exécuter de nouveau ce programme en tant que root et util1. | ||
- | root@tssi:/tmp# chmod 6110 droits.exe | + | root@debian:/tmp# chmod 6110 droits.exe |
- | root@tssi:/tmp# ./droits.exe | + | root@debian:/tmp# ./droits.exe |
- | UID réel: 0 | + | UID réel : 0 |
- | UID effectif: 1004 | + | UID effectif : 1002 |
- | GID réel: 0 | + | GID réel : 0 |
- | GID effectif: 1007 | + | GID effectif : 1002 |
- | root@tssi:/tmp# su util1 | + | root@debian:/tmp# ls -ail |
- | util1@tssi:/tmp$ ./droits.exe | + | total 68 |
- | bash: ./droits.exe: Permission non accordée | + | 783371 drwxrwxrwt 12 root root 4096 nov. 8 09:29 . |
+ | 2 drwxr-xr-x 25 root root 4096 nov. 7 17:01 .. | ||
+ | 800133 -rw-r--r-- 1 root root 297 nov. 8 09:29 droits.c | ||
+ | 800151 ---s--s--- 1 util2 grp2 7436 nov. 8 09:29 droits.exe | ||
+ | 798957 drwxrwxrwt 2 root root 4096 nov. 8 09:23 .ICE-unix | ||
+ | 798962 drwx------ 2 Debian-gdm Debian-gdm 4096 nov. 8 09:23 pulse-BtBEnh3eMTDt | ||
+ | 798973 drwx------ 2 romain romain 4096 nov. 8 09:23 pulse-JtkyoEsgQCKO | ||
+ | 798955 drwx------ 2 root root 4096 nov. 8 09:22 pulse-PKdhtXMmr18n | ||
+ | 798961 drwx------ 2 romain romain 4096 nov. 8 09:23 ssh-ckU3A6WqzCkd | ||
+ | 800126 drwxr-xr-x 2 romain romain 4096 nov. 8 09:23 tracker-romain | ||
+ | 783494 drwxrwxrwt 2 root root 4096 nov. 8 09:22 VMwareDnD | ||
+ | 798974 drwx------ 2 romain romain 4096 nov. 8 09:23 vmware-romain | ||
+ | 783800 drwx------ 2 root root 4096 nov. 8 09:22 vmware-root | ||
+ | 798958 -r--r--r-- 1 root root 11 nov. 8 09:22 .X0-lock | ||
+ | 783808 drwxrwxrwt 2 root root 4096 nov. 8 09:22 .X11-unix | ||
+ | 798966 -rw------- 1 romain romain 11 nov. 8 09:23 xdg-screensaver-romain--0 | ||
+ | root@debian:/tmp# su util1 | ||
+ | $ bash | ||
+ | util1@debian:/tmp$ ./droits.exe | ||
+ | bash: ./droits.exe: Permission non accordée | ||
13. Modifier de nouveau le propriétaire et le groupe du fichier /tmp/droits.exe en root et root. | 13. Modifier de nouveau le propriétaire et le groupe du fichier /tmp/droits.exe en root et root. | ||
- | root@tssi:/tmp# chown root droits.exe | + | root@debian:/tmp# chown root droits.exe |
- | root@tssi:/tmp# chgrp root droits.exe | + | root@debian:/tmp# chgrp root droits.exe |
+ | |||
14. Positionner les droits d'accès à 0755 sur le fichier /tmp/droits.exe. | 14. Positionner les droits d'accès à 0755 sur le fichier /tmp/droits.exe. | ||
+ | |||
+ | root@debian:/tmp# chmod 0755 /tmp/droits.exe | ||
15 Ajouter la ligne suivante au fichier /etc/sudoers : | 15 Ajouter la ligne suivante au fichier /etc/sudoers : | ||
Ligne 247: | Ligne 254: | ||
successivement en tant que util1 et util2. Est-ce possible ? Si oui, sous quelle identité ? | successivement en tant que util1 et util2. Est-ce possible ? Si oui, sous quelle identité ? | ||
- | root@tssi:/tmp# visudo | + | $ sudo /tmp/droits.exe |
- | root@tssi:/tmp# ./droits.exe | + | [sudo] password for util1: |
- | UID réel: 0 | + | UID réel : 0 |
- | UID effectif: 0 | + | UID effectif : 0 |
- | GID réel: 0 | + | GID réel : 0 |
- | GID effectif: 0 | + | GID effectif : 0 |
- | root@tssi:/tmp# su util1 | + | |
- | util1@tssi:/tmp$ ./droits.exe | + | |
- | UID réel: 1003 | + | |
- | UID effectif: 1003 | + | |
- | GID réel: 1006 | + | |
- | GID effectif: 1006 | + | |
- | util1@tssi:/tmp$ su util2 | + | |
- | Mot de passe : | + | |
- | util2@tssi:/tmp$ ./droits.exe | + | |
- | UID réel: 1004 | + | |
- | UID effectif: 1004 | + | |
- | GID réel: 1007 | + | |
- | GID effectif: 1007 | + | |
- | Exercice 3 : Pour aller plus loin | + | |
+ | ==== Exercice 3 : Pour aller plus loin ==== | ||
1. Mettre en place un répertoire de travail commun pour les membres du grp1 ; tout nouveau fichier créé à l'intérieur de celui-ci devra appartenir à ce groupe. | 1. Mettre en place un répertoire de travail commun pour les membres du grp1 ; tout nouveau fichier créé à l'intérieur de celui-ci devra appartenir à ce groupe. | ||
- | util2@tssi:/tmp$ mkdir repgrp1 | + | root@debian:/tmp# chmod 2070 commungrp1/ |
- | util2@tssi:/tmp$ chgrp grp1 repgrp1 | + | |
- | util2@tssi:/tmp$ chmod 2010 repgrp1 | + | |
- | TAG | ||
- | Supprimer un utilisateur | ||
- | userdel | ||
- | deluser –remove-home utilisateur | ||