Table des matières
Niveau : Admin Junior | Numéro de la Leçon | Dernière Modification |
---|---|---|
2/4 | <progrecss 1/12 style=inline /> | 2020/01/30 03:28 |
Gestion des Utilisateurs
La bonne gestion des utilisateurs passe par une bonne stratégie de groupes. En effet, chaque utilisateur est affecté à un groupe principal mais il peut aussi être membre d'un ou de plusieurs groupes secondaires.
Comme dans d'autres systèmes d'exploitation, sous Linux il est préférable de donner les droits d'accès aux groupes et non aux utilisateurs individuels.
<note important> Afin de mettre en pratique les exemples dans cette unité, vous devez vous connecter à votre système en tant que root grâce à la commande su - et le mot de passe fenestros. </note>
Groupes
Pour lister les groupes existants sur le système, saisissez la commande suivante :
root@debian:~# cat /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20: fax:x:21: voice:x:22: cdrom:x:24:trainee floppy:x:25:trainee tape:x:26: sudo:x:27: audio:x:29:trainee dip:x:30:trainee www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:trainee sasl:x:45: plugdev:x:46:trainee staff:x:50: games:x:60: users:x:100: nogroup:x:65534: libuuid:x:101: crontab:x:102: messagebus:x:103: Debian-exim:x:104: mlocate:x:105: ssh:x:106: avahi:x:107: netdev:x:108:trainee bluetooth:x:109:trainee lpadmin:x:110: ssl-cert:x:111: fuse:x:112: utempter:x:113: Debian-gdm:x:114: scanner:x:115:saned,trainee saned:x:116: trainee:x:1000: vboxsf:x:1001:
<note important> Notez que la valeur du GID ( Group ID ) de root est de 0 et que les GID des utilisateurs normaux commencent à 1000 ( voir trainee ). </note>
Dans ce fichier, chaque ligne est constituée de 4 champs :
- Le nom unique du groupe,
- Le mot de passe du groupe. Une valeur de x dans ce champs indique que le système utilise le fichier /etc/gshadow pour stocker les mots de passe. Une valeur de ! indique que le groupe n'a pas de mot passe et que l'accès au groupe via la commande newgrp n'est pas possible,
- Le GID. Une valeur unique utilisée pour déterminée les droits d'accès aux fichiers et aux répertoires,
- La liste des membres ayant le groupe comme groupe secondaire.
Pour consulter le fichier /etc/gshadow, saisissez la commande suivante :
root@debian:~# cat /etc/gshadow root:*:: daemon:*:: bin:*:: sys:*:: adm:*:: tty:*:: disk:*:: lp:*:: mail:*:: news:*:: uucp:*:: man:*:: proxy:*:: kmem:*:: dialout:*:: fax:*:: voice:*:: cdrom:*::trainee floppy:*::trainee tape:*:: sudo:*:: audio:*::trainee dip:*::trainee www-data:*:: backup:*:: operator:*:: list:*:: irc:*:: src:*:: gnats:*:: shadow:*:: utmp:*:: video:*::trainee sasl:*:: plugdev:*::trainee staff:*:: games:*:: users:*:: nogroup:*:: libuuid:!:: crontab:!:: messagebus:!:: Debian-exim:!:: mlocate:!:: ssh:!:: avahi:!:: netdev:!::trainee bluetooth:!::trainee lpadmin:!:: ssl-cert:!:: fuse:!:: utempter:!:: Debian-gdm:!:: scanner:!::saned,trainee saned:!:: trainee:!:: vboxsf:!::
Chaque ligne est constituée de 4 champs :
- Le nom du groupe. Ce champs est utilisé pour faire le lien avec le fichier /etc/group,
- Le mot de passe crypté du groupe s'il en existe un. Une valeur vide dans ce champs indique que seuls les membres du groupe peuvent exécuter la commande newgrp. Une valeur de !, de x ou de * indique que personne ne peut exécuter la commande newgrp pour le groupe,
- L'administrateur du groupe s'il en existe un,
- La liste des membres ayant le groupe comme groupe secondaire.
Afin de vérifier les fichiers /etc/group et /etc/gshadow pour des erreurs éventuelles, saisissez la commande suivante :
root@debian:~# grpck -r
Dans le cas où vos fichiers ne comportent pas d'erreurs, vous vous retrouverez retourné au prompt.
<note important> L'option -r permet la vérification des erreurs sans le modifier. </note>
Dans le cas où il est nécessaire de régénérer un des deux fichiers, il convient d'utiliser un des deux comandes suivantes :
- grpconv
- permet de régénérer le fichier /etc/gshadow à partir du fichier /etc/group et éventuellement du fichier /etc/gshadow existant
- grpunconv
- permet de régénérer le fichier /etc/group à partir du fichier /etc/gshadow et éventuellement du fichier /etc/group existant puis supprime le fichier /etc/gshadow
Utilisateurs
Pour lister les comptes utilisateur existants sur le système, saisissez la commande suivante :
root@debian:~# cat /etc/passwd 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 saned:x:107:116::/home/saned:/bin/false hplip:x:108:7:HPLIP system user,,,:/var/run/hplip:/bin/false trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash vboxadd:x:999:1::/var/run/vboxadd:/bin/false
<note important> Notez que la valeur de l'UID de root est de 0 et que les UID des utilisateurs normaux commencent à 1000. Les UID des comptes système sont inclus entre 1 et 999. </note>
Chaque ligne dans ce fichier est constituée de 7 champs :
- Le nom d'utilisateur
- Le mot de passe. Une valeur de x dans ce champs indique que le système utilise le fichier /etc/shadow pour stocker les mots de passe.
- L'UID. Une valeur unique qui est utilisée pour déterminée les droits aux fichiers et aux répertoires.
- Le GID. Une valeur indiquant le groupe principal de l'utilisateur
- Le nom complet. Ce champs optionnel est aussi appelé GECOS
- Le répertoire personnel de l'utilisateur
- Le shell de l'utilisateur.
Pour consulter le fichier /etc/shadow, saisissez la commande suivante :
root@debian:~# cat /etc/shadow root:$6$fPk.t6Kf$V8EJWK3gMvt/FK3096D91v1phWzqvfsNyt9RcyhqMNqKgSgi.PsFJJrb6sddCII4CeiXTzOkNHykJt.HRJjGB.:15088:0:99999:7::: daemon:*:15088:0:99999:7::: bin:*:15088:0:99999:7::: sys:*:15088:0:99999:7::: sync:*:15088:0:99999:7::: games:*:15088:0:99999:7::: man:*:15088:0:99999:7::: lp:*:15088:0:99999:7::: mail:*:15088:0:99999:7::: news:*:15088:0:99999:7::: uucp:*:15088:0:99999:7::: proxy:*:15088:0:99999:7::: www-data:*:15088:0:99999:7::: backup:*:15088:0:99999:7::: list:*:15088:0:99999:7::: irc:*:15088:0:99999:7::: gnats:*:15088:0:99999:7::: nobody:*:15088:0:99999:7::: libuuid:!:15088:0:99999:7::: messagebus:*:15088:0:99999:7::: Debian-exim:!:15088:0:99999:7::: statd:*:15088:0:99999:7::: avahi:*:15088:0:99999:7::: usbmux:*:15088:0:99999:7::: Debian-gdm:*:15088:0:99999:7::: saned:*:15088:0:99999:7::: hplip:*:15088:0:99999:7::: trainee:$6$6Ie1tC6k$njVbKQWFCBrfXKB9ewRxuaE18kSE95Mkp8N3C/daikawoVERSO8UUONuGpeGS5rjTcKwcdlL6e2Y2z8YOs1Vx.:15088:0:99999:7::: vboxadd:!:15091::::::
Chaque ligne dans ce fichier est constituée de 8 champs :
- Le nom de l'utilisateur. Ce champs est utilisé pour faire le lien avec le fichier /etc/passwd,
- Le mot de passe crypté de l'utilisateur. Le cryptage est à sens unique. Ce champ peut aussi contenir une des trois valeurs suivantes :
- !! - Le mot de passe n'a pas encore été défini et l'utilisateur ne peut pas se connecter,
- * - L'utilisateur ne peut pas se connecter,
- vide - aucun mot de passe sera demandé pour l'utilisateur concerné,
- Le nombre de jours entre le 01/01/1970 et le dernier changement du mot de passe,
- Le nombre de jours que le mot de passe est encore valide. Une valeur de 0 dans ce champs indique sue le mot de passe n'expire jamais,
- Le nombre de jours après lequel le mot de passe doit être changé,
- Le nombre de jours avant la date de modification forcée que l'utilisateur recevra un avertissement,
- Le nombre de jours après l'expiration du mot de passe que le compte sera désactivé,
- Le numéro du jour après le 01/01/1970 que le compte a été désactivé.
Afin de vérifier les fichiers /etc/passwd et /etc/shadow pour des erreurs éventuelles, saisissez la commande suivante :
root@debian:~# pwck -r utilisateur lp : le répertoire « /var/spool/lpd » n'existe pas utilisateur news : le répertoire « /var/spool/news » n'existe pas utilisateur uucp : le répertoire « /var/spool/uucp » n'existe pas utilisateur www-data : le répertoire « /var/www » n'existe pas utilisateur list : le répertoire « /var/list » n'existe pas utilisateur irc : le répertoire « /var/run/ircd » n'existe pas utilisateur gnats : le répertoire « /var/lib/gnats » n'existe pas utilisateur nobody : le répertoire « /nonexistent » n'existe pas utilisateur usbmux : le répertoire « /home/usbmux » n'existe pas utilisateur saned : le répertoire « /home/saned » n'existe pas utilisateur vboxadd : le répertoire « /var/run/vboxadd » n'existe pas pwck : aucun changement
<note important> Les erreurs ci-dessus ne sont pas importantes. Elles sont dues au fait que les répertoires de connexion de certains comptes systèmes ne sont pas créés par le système lors de la création des comptes et ceci justement pour éviter la possibilité qu'un pirate ou un hacker puisse se connecter au système en utilisant le compte concerné. Encore une fois, l'option -r permet la vérification des erreurs dans sans le modifier. </note>
Dans le cas où il est nécessaire de régénérer un des deux fichiers, il convient d'utiliser une des deux comandes suivantes :
- pwconv
- permet de régénérer le fichier /etc/shadow à partir du fichier /etc/passwd et éventuellement du fichier /etc/shadow existant
- pwunconv
- permet de régénérer le fichier /etc/passwd à partir du fichier /etc/shadow et éventuellement du fichier /etc/passwd existant puis supprime le fichier /etc/shadow
Commandes
Groupes
groupadd
Cette commande est utilisée pour créer un groupe.
Options de la commande
root@debian:~# groupadd --help Syntaxe: groupadd [options] GROUPE Options: -f, --force terminer avec succès si le groupe existe déjà ou interrompre -g si le GID est déjà utilisé -g, --gid GID utiliser cet identifiant (GID) pour le nouveau groupe -h, --help afficher ce message d'aide et quitter -K, --key CLÉ=VALEUR ignorer les valeurs par défaut de /etc/login.defs -o, --non-unique autoriser la création de groupes avec des identifiants (GID) non uniques -p, --password MOT_DE_PASSE utiliser ce mot de passe chiffré pour le nouveau groupe -r, --system créer un compte système
groupdel
Cette commande est utilisée pour supprimer un groupe.
Options de la commande
Cette commande ne prend pas d'options.
groupmod
Cette commande est utilisée pour modifier un groupe existant.
Options de la commande
root@debian:~# groupmod --help Syntaxe: groupmod [options] GROUPE Options: -g, --gid GID modifier l'identifiant de groupe en utilisant GID comme valeur -h, --help afficher ce message d'aide et quitter -n, --new-name NOUVEAU_GROUPE renommer en NOUVEAU_GROUPE -o, --non-unique utiliser un identifiant de groupe déjà utilisé -p, --password MOT_DE_PASSE remplacer le mot de passe par le mot de passe chiffré MOT_DE_PASSE
newgrp
Cette commande est utilisée pour modifier le groupe de l'utilisateur qui l'invoque.
Options de la commande
root@debian:~# newgrp --help Syntaxe : newgrp [-] [groupe]
gpasswd
Cette commande est utilisée pour modifier administrer le fichier /etc/group.
Options de la commande
root@debian:~# gpasswd --help Usage: gpasswd [option] GROUP Options: -a, --add USER add USER to GROUP -d, --delete USER remove USER from GROUP -h, --help afficher ce message d'aide et quitter -r, --remove-password remove the GROUP's password -R, --restrict restrict access to GROUP to its members -M, --members USER,... set the list of members of GROUP -A, --administrators ADMIN,... set the list of administrators for GROUP Except for the -A and -M options, the options cannot be combined.
Utilisateurs
useradd
Cette commande est utilisée pour utilisée pour ajouter un utilisateur.
Les codes retour de la commande useradd sont :
Code Retour | Description |
---|---|
1 | Impossible de mettre à jour le fichier /etc/passwd |
2 | Syntaxe invalide |
3 | Option invalide |
4 | L'UID demandé est déjà utilisé |
6 | Le groupe spécifié n'existe pas |
9 | Le nom d'utilisateur indiqué existe déjà |
10 | Impossible de mettre à jour le fichier /etc/group |
12 | Impossible de créer le répertoire personnel de l'utilisateur |
13 | Impossible de créer le spool mail de l'utilisateur |
Options de la commande
root@debian:~# useradd --help Usage: useradd [options] LOGIN Options: -b, --base-dir REP_BASE répertoire de base pour le répertoire personnel du compte du nouvel utilisateur -c, --comment COMMENTAIRE définir le champ « GECOS » du compte du nouvel utilisateur -d, --home-dir REP_PERS répertoire personnel pour le compte du nouvel utilisateur -D, --defaults afficher ou enregistrer la configuration par défaut modifiée de « useradd » -e, --expiredate DATE_EXPIR fixer la date de fin de validité du compte à DATE_EXPIR -f, --inactive INACTIF fixer la durée d'inactivité du mot de passe -g, --gid GROUPE forcer l'utilisation de GROUPE pour le compte du nouvel utilisateur -G, --groups GROUPES liste des GROUPES supplémentaires pour le compte du nouvel utilisateur -h, --help afficher ce message d'aide et quitter -k, --skel REP_SQEL définir un autre répertoire « skel » -K, --key CLÉ=VALEUR ignorer les valeurs par défaut de /etc/login.defs -l, --no-log-init ne pas ajouter l'utilisateur aux bases de données lastlog et faillog -m, --create-home créer le répertoire personnel pour le compte du nouvel utilisateur -M, --no-create-home ne pas créer de répertoire personnel pour le compte du nouvel utilisateur -N, --no-user-group ne pas créer de groupe de même nom que l'utilisateur -o, --non-unique autoriser la création d'un utilisateur avec un identifiant d'utilisateur (UID) dupliqué (non unique) -p, --password MOT_DE_PASSE utiliser un mot de passe chiffré pour le compte du nouvel utilisateur -r, --system créer un compte système -s, --shell INTERPRÉTEUR interpréteur de commandes initial pour le compte du nouvel utilisateur -u, --uid UID forcer l'utilisation de l'identifiant « UID » pour le compte du nouvel utilisateur -U, --user-group créer un groupe ayant le même nom que l'utilisateur -Z, --selinux-user SEUSER utiliser un SEUSER particulier pour la correspondance de l'utilisateur SELinux
userdel
Cette commande est utilisée pour utilisée pour supprimer un utilisateur.
Options de la commande
root@debian:~# userdel --help Syntaxe : userdel [options] IDENTIFIANT Options : -f, --force forcer la suppression des fichiers, même s'ils n'appartiennent pas à l'utilisateur -h, --help afficher cette page d'aide et quitter -r, --remove supprimer le répertoire personnel et le spool du courrier
usermod
Cette commande est utilisée pour utilisée pour modifier un utilisateur existant.
Options de la commande
root@debian:~# usermod --help Syntaxe : usermod [options] IDENTIFIANT Options : -c, --comment COMMENT définir une nouvelle valeur pour le champ « GECOS » -d, --home REP_PERS définir un nouveau répertoire personnel pour le compte de l'utilisateur -e, --expiredate DATE_EXPIR fixer la date de fin de validité du compte à DATE_EXPIR -f, --inactive INACTIF fixer la durée d'inactivité du mot de passe après sa fin de validité à INACTIF -g, --gid GROUPE forcer l'utilisation de GROUPE comme nouveau groupe primaire -G, --groups GROUPES définir une nouvelle liste de groupes supplémentaires -a, --append ajouter l'utilisateur aux GROUPES supplémentaires mentionnés par l'option -G sans supprimer l 'utilisateur des autres groupes -h, --help afficher ce message d'aide et quitter -l, --login IDENTIFIANT définir un nouveau nom pour le compte -L, --lock bloquer le compte de l'utilisateur -m, --move-home déplacer le contenu du répertoire personnel vers le nouvel emplacement (à n'utiliser qu'avec -d) -o, --non-unique autoriser l'utilisation d'un identifiant d'utilisateur (UID) dupliqué (non unique) -p, --password MOT_DE_PASSE utiliser un mot de passe chiffré pour le nouveau mot de passe -s, --shell INTERPRÉTEUR définir un nouvel interpréteur de commandes initial pour le compte de l'utilisateur -u, --uid UID définir un nouvel identifiant (UID) pour le compte de l'utilisateur -U, --unlock déverrouiller le compte de l'utilisateur -Z, --selinux-user nouvelle corespondance de l'utilisateur SELinux pour le compte d'utilisateur
passwd
Cette commande est utilsée pour créer ou modifier le mot de passe d'un utilisateur.
Options de la commande
root@debian:~# passwd --help Syntaxe : passwd [options] [IDENTIFIANT] Options : -a, --all afficher l'état des mots de passe de tous les comptes -d, --delete supprimer le mot de passe du compte indiqué -e, --expire forcer la fin de validité du compte indiqué -h, --help afficher ce message d'aide et quitter -k, --keep-tokens ne changer le mot de passe que s'il est arrivé en fin de validité -i, --inactive INACTIF fixer la durée d'inactivation du mot de passe après sa fin de validité à INACTIF -l, --lock bloquer le compte indiqué -n, --mindays JOURS_MIN fixer le nombre minimum de jours avant le changement de mot de passe à JOURS_MIN -q, --quiet mode silencieux -r, --repository DÉPÔT changer le mot de passe dans le dépôt DÉPÔT -S, --status afficher l'état du mot de passe du compte indiqué -u, --unlock déverrouiller le compte indiqué -w, --warndays JOURS_AVERT fixer le nombre de jours d'avertissement de fin de validité à JOURS_AVERT -x, --maxdays JOURS_MAX fixer le nombre maximum de jours avant le changement de mot de passe à JOURS_MAX
chage
La commande chage modifie le nombre de jours entre les changements de mot de passe et la date du dernier changement. Ces informations sont utilisées par le système pour déterminer si un utilisateur doit changer son mot de passe.
Options de la commande
root@debian:~# chage --help Syntaxe : chage [options] [IDENTIFIANT] Options : -d, --lastday DERNIER_JOUR fixer la dernière modification du mot de passe à DERNIER_JOUR -E, --expiredate FIN_VALIDITÉ fixer la date de fin de validité du compte à FIN_VALIDITÉ -h, --help afficher ce message d'aide et quitter -I, --inactive INACTIF fixer la durée d'inactivité du mot de passe après sa fin de validité à INACTIF -l, --list afficher les informations concernant la validité du compte au cours du temps -m, --mindays JOURS_MIN fixer le nombre minimum de jours avant la modification du mot de passe à JOURS_MIN -M, --maxdays JOURS_MAX fixer le nombre maximum de jours avant la modification du mot de passe à JOURS_MAX -W, --warndays JOURS_AVERT fixer le nombre de jours d'avertissement de fin de validité à JOURS_AVERT
Configuration
La commande useradd est configurée par le fichier /etc/default/useradd. Pour consulter ce fichier, saisissez la commande suivante :
root@debian:~# cat /etc/default/useradd # Default values for useradd(8) # # The SHELL variable specifies the default login shell on your # system. # Similar to DHSELL in adduser. However, we use "sh" here because # useradd is a low level utility and should be as general # as possible SHELL=/bin/sh # # The default group for users # 100=users on Debian systems # Same as USERS_GID in adduser # This argument is used when the -n flag is specified. # The default behavior (when -n and -g are not specified) is to create a # primary user group with the same name as the user being added to the # system. # GROUP=100 # # The default home directory. Same as DHOME for adduser # HOME=/home # # The number of days after a password expires until the account # is permanently disabled # INACTIVE=-1 # # The default expire date # EXPIRE= # # The SKEL variable specifies the directory containing "skeletal" user # files; in other words, files such as a sample .profile that will be # copied to the new user's home directory when it is created. # SKEL=/etc/skel # # Defines whether the mail spool should be created while # creating the account # CREATE_MAIL_SPOOL=yes
Dans ce fichier, nous trouvons les directives suivantes :
- GROUP - identifie le groupe principal par défaut de l'utilisateur quand l'option -N est utilisée avec la commande useradd. Dans le cas contraire le groupe principal est soit le groupe spécifié par l'option -g de la commande, soit un nouveau groupe au même nom que l'utilisateur.
- HOME - indique que le répertoire personnel de l'utilisateur sera créé dans le répertoire home lors de la création du compte si cette option a été activée dans le fichier /etc/login.defs,
- INACTIVE - indique le nombre de jours d'inactivité après l'expiration d'un mot de passe avant que le compte soit verrouillé. La valeur de -1 désactive cette directive,
- EXPIRE - sans valeur, cette directive indique que le mot de passe de l'utilisateur n'expire jamais,
- SHELL - renseigne le shell de l'utilisateur,
- SKEL - indique le répertoire contenant les fichiers qui seront copiés vers le répertoire personnel de l'utilisateur, si ce répertoire est créé lors de la création de l'utilisateur,
- CREATE_MAIL_SPOOL - indique si oui ou non une boite mail interne au système sera créée pour l'utilisateur.
Cette même information peut être visualisée en exécutant la commande useradd :
root@debian:~# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no
Pour consulter la liste des fichiers dans /etc/skel, saisissez la commande suivante :
#ls -la /etc/skel [Entrée]
Vous obtiendrez un résultat similaire à celui-ci :
root@debian:~# ls -la /etc/skel/ total 28 drwxr-xr-x 2 root root 4096 24 avril 2011 . drwxr-xr-x 121 root root 12288 17 déc. 14:21 .. -rw-r--r-- 1 root root 220 10 avril 2010 .bash_logout -rw-r--r-- 1 root root 3184 10 avril 2010 .bashrc -rw-r--r-- 1 root root 675 10 avril 2010 .profile
Pour connaître l'UID, le GID et l'appartenance aux groupes d'un utilisateur, il convient d'utiliser la commande id. Saisissez la commande suivante :
root@debian:~# id trainee uid=1000(trainee) gid=1000(trainee) groupes=1000(trainee),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev),109(bluetooth),115(scanner)
Pour seulement connaître les groupes d'un utilisateur, il convient d'utiliser la commande groups. Saisissez la commande suivante :
root@debian:~# groups trainee trainee : trainee cdrom floppy audio dip video plugdev netdev bluetooth scanner
Les valeurs minimales de l'UID et du GID utilisés par défaut lors de la création d'un utilisateur sont stipulées dans le fichier /etc/login.defs :
... # # Min/max values for automatic uid selection in useradd # UID_MIN 1000 UID_MAX 60000 # System accounts #SYS_UID_MIN 100 #SYS_UID_MAX 999 # # Min/max values for automatic gid selection in groupadd # GID_MIN 1000 GID_MAX 60000 # System accounts #SYS_GID_MIN 100 #SYS_GID_MAX 999 ...
T.P. #1
Créez maintenant trois groupes groupe1, groupe2 et groupe3. La valeur du GID du groupe groupe3 doit être de 807 :
root@debian:~# groupadd groupe1; groupadd groupe2; groupadd -g 807 groupe3
Créez maintenant trois utilisateurs fenestros1, fenestros2 et fenestros3. Les trois utilisateurs ont pour groupe principal groupe1, groupe2 et groupe3 respectivement. fenestros2 est aussi membre des groupes groupe1 et groupe3. fenestros1 à un GECOS de tux1 :
root@debian:~# useradd -g groupe2 fenestros2; useradd -g 807 fenestros3; useradd -g groupe1 fenestros1 root@debian:~# usermod -G groupe1,groupe3 fenestros2 root@debian:~# usermod -c "tux1" fenestros1
En consultant votre fichier /etc/passwd, vous obtiendrez un résultat similaire à celui-ci:
root@debian:~# cat /etc/passwd ... fenestros2:x:1001:1003::/home/fenestros2:/bin/sh fenestros3:x:1002:807::/home/fenestros3:/bin/sh fenestros1:x:1003:1002:tux1:/home/fenestros1:/bin/sh
En regardant votre fichier /etc/group, vous obtiendrez un résultat similaire à celui-ci:
root@debian:~# cat /etc/group ... groupe1:x:1002:fenestros2 groupe2:x:1003: groupe3:x:807:fenestros2
Créez le mot de passe fenestros pour le groupe3 :
root@debian:~# gpasswd groupe3 Changement du mot de passe pour le groupe groupe3 Nouveau mot de passe : fenestros Nouveau mot de passe (pour vérification) : fenestros.
<note important> Notez que les mots de passe saisis ne seront pas visibles. </note>
Consultez le fichier /etc/gshadow :
root@debian:~# cat /etc/gshadow ... groupe1:!::fenestros2 groupe2:!:: groupe3:knbeqMpej2IxI::fenestros2
<note important> Notez la présence du mot de passe crypté pour le groupe3. </note>
Nommez maintenant fenestros1 administrateur du groupe3 :
root@debian:~# gpasswd -A fenestros1 groupe3
Consultez le fichier /etc/gshadow de nouveau :
root@debian:~# cat /etc/gshadow ... groupe1:!::fenestros2 groupe2:!:: groupe3:knbeqMpej2IxI:fenestros1:fenestros2
<note important> L'utilisateur fenestros1 peut maintenant administrer le groupe groupe3 en y ajoutant ou en y supprimant des utilisateurs à condition de connaître le mot de passe du groupe. </note>
Essayez maintenant de supprimer le groupe groupe3 :
root@debian:~# groupdel groupe3 groupdel : impossible de supprimer le groupe primaire de l'utilisateur « fenestros3 »
<note important> En effet, vous ne pouvez pas supprimer un groupe tant qu'un utilisateur le possède comme son groupe principal. </note>
Supprimez donc l'utilisateur fenestros3 :
root@debian:~# userdel fenestros3
Ensuite essayez de supprimer le groupe groupe3 :
root@debian:~# groupdel groupe3
<note important> Notez que cette fois-ci la commande est exécutée sans erreur. </note>
Le fait de supprimer un utilisateur sans l'option -r implique que le répertoire personnel de l'utilisateur demeurre sur la machine.
Dans notre cas les répertoires personnels des utilisateurs n'ont pas été créés parce que les directives n'ont pas été activées dans le fichier /etc/default/useradd et que nous n'avons pas spécifier la création du répertoire lors de l'utilisation de la commande useradd :
root@debian:~# cat /etc/default/useradd # Default values for useradd(8) # # The SHELL variable specifies the default login shell on your # system. # Similar to DHSELL in adduser. However, we use "sh" here because # useradd is a low level utility and should be as general # as possible SHELL=/bin/sh # # The default group for users # 100=users on Debian systems # Same as USERS_GID in adduser # This argument is used when the -n flag is specified. # The default behavior (when -n and -g are not specified) is to create a # primary user group with the same name as the user being added to the # system. # GROUP=100 # # The default home directory. Same as DHOME for adduser # HOME=/home # # The number of days after a password expires until the account # is permanently disabled # INACTIVE=-1 # # The default expire date # EXPIRE= # # The SKEL variable specifies the directory containing "skeletal" user # files; in other words, files such as a sample .profile that will be # copied to the new user's home directory when it is created. # SKEL=/etc/skel # # Defines whether the mail spool should be created while # creating the account # CREATE_MAIL_SPOOL=yes
Otez donc le caractère # devant les lignes suivantes :
GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
Pour tester la configuration, créez un utilisateur test :
root@debian:~# useradd -m test
Vérifiez que l'utilisateur test a un répertoire personnel :
root@debian:~# ls -l /home total 8 drwxr-xr-x 2 test test 4096 18 déc. 09:52 test drwxr-xr-x 33 trainee trainee 4096 16 déc. 15:21 trainee
Créez maintenant les répertoires personnels de fenestros1 et fenestros2 :
root@debian:~# mkdir /home/fenestros1 /home/fenestros2
Copiez le contenu du répertoire /etc/skel dans les répertoires /home/fenestros1 et /home/fenestros2 :
root@debian:~# cp -r /etc/skel/.[a-zA-Z]* /home/fenestros1 root@debian:~# cp -r /etc/skel/.[a-zA-Z]* /home/fenestros2
Modifiez le propriétaire et le groupe pour les répertoires /home/fenestros1 et /home/fenestros2 :
root@debian:~# chown -R fenestros1:groupe1 /home/fenestros1 root@debian:~# chown -R fenestros2:groupe2 /home/fenestros2
Créez maintenant les mots de passe pour fenestros1 et fenestros2. Indiquez un mot de passe identique au nom du compte :
root@debian:~# passwd fenestros1 Entrez le nouveau mot de passe UNIX : fenestros1 Retapez le nouveau mot de passe UNIX : fenestros1 passwd : le mot de passe a été mis à jour avec succès root@debian:~# passwd fenestros2 Entrez le nouveau mot de passe UNIX : fenestros2 Retapez le nouveau mot de passe UNIX : fenestros2 passwd : le mot de passe a été mis à jour avec succès
<note important> Notez que les mots de passe saisis ne seront pas visibles. </note>
su et su -
Vous allez maintenant devenir fenestros2, d'abord sans l'environnement de fenestros2 puis avec l'environnement de fenestros2.
Contrôlez votre répertoire courant de travail :
root@debian:~# pwd /root
Pour devenir fenestros2 sans son environnement, saisissez la commande suivante :
root@debian:~# su fenestros2
Contrôlez votre répertoire courant de travail :
$ pwd /root
Vous noterez que vous êtes toujours dans le répertoire /root. Ceci indique que vous avez gardé l'environnement de root.
<note important> L'environnement d'un utilisateur inclut donc, entre autre, le répertoire personnel de l'utilisateur ainsi que la valeur de la variable système PATH. </note>
Saisissez la commande suivante pour redevenir root :
$ exit
Saisissez la commande suivante pour redevenir fenestros2 :
root@debian:~# su - fenestros2
Contrôlez votre répertoire courant de travail :
$ pwd /home/fenestros2
Vous noterez que vous êtes maintenant dans le répertoire /home/fenestros2. Ceci indique que vous avez l'environnement de fenestros2.
<note important> Notez que root peut devenir n'importe quel utilisateur sans avoir besoin de connaître son mot de passe. </note>
sudo
La commande sudo permet à un utilisateur autorisé d'exécuter une commande en tant que root ou en tant qu'un autre utilisateur. Lors de l'exécution de la commande, l'UID et le GID éffectifs et réels sont ceux de l'identité de l'utilisateur cible. L'utilisation de la commande sudo est une façon simple de déléguer des tâches administratives à d'autres utilisateurs sans communiquer le mot de passe de root et sans placer un SUID bit sur l'exécutable.
La commande sudo est configurée grâce au fichier /etc/sudoers ainsi que les fichiers se trouvant dans le répertoire /etc/sudoers.d. Saisissez la commande suivante :
root@debian:~# cat /etc/sudoers # /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # Defaults env_reset # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL) ALL # Allow members of group sudo to execute any command # (Note that later entries override this, so you might need to move # it further down) %sudo ALL=(ALL) ALL # #includedir /etc/sudoers.d
<note important> Notez la présence de la ligne en commentaire # %sudo ALL=(ALL) ALL. Cette ligne possède le format Qui Où = (En tant que qui) Quoi. La ligne implique donc que les membres du groupe sudo peuvent exécuter à partir de n'importe quel hôte et en tant que n'importe quel utilisateur, toutes les commandes du système. Dans ce fichier donc, un groupe est référencé par un %. Un nom sans ce caractère est forcément un utilisateur. Pour éditer le fichier /etc/sudoers, il est nécessaire d'utiliser la commande visudo. </note>
Vérifiez maintenant si l'utilisateur trainee est membre du groupe sudo :
root@debian:~# groups trainee trainee : trainee cdrom floppy audio dip video plugdev netdev bluetooth scanner
En effet, l'utilisateur trainee n'étant pas membre du groupe sudo, il ne peut pas exécuter sudo.
Ajoutez donc trainee au groupe sudo :
root@debian:~# usermod -G cdrom,floppy,audio,dip,video,plugdev,netdev,bluetooth,scanner,sudo trainee
Vérifiez ensuite que trainee est membre du groupe sudo :
root@debian:~# groups trainee trainee : trainee cdrom floppy sudo audio dip video plugdev netdev bluetooth scanner
<note important> A ce stade, trainee, étant membre du groupe sudo, peut administrer le système. </note>
~~DISCUSSION:off~~
Donner votre Avis
{(rater>id=debian_6_l106|name=cette page|type=rate|trace=user|tracedetails=1)}