Cette section explique quelques éléments que vous souhaitez savoir depuis que vous avez la suite shadow sur votre système. De plus amples informations sont disponibles dans les pages de manuels.
La Suite Shadow a ajouté les commandes suivantes qui
sont orientées ``ligne de commande'', pour ajouter, modifier et
supprimer des utilisateurs. Vous avez aussi sûrement dû
installer le programme adduser
.
la commande useradd
peut être utilisée pour
ajouter des utilisateurs à votre système. Vous appelez
aussi cette commande pour changer les paramètres par
défaut.
La première chose à faire est d'examiner les paramètres par défaut et effectuer des changements pour votre propre système.
useradd -D
GROUP=1 HOME=/home INACTIVE=0 EXPIRE=0 SHELL= SKEL=/etc/skel
Les paramètres par défauts ne sont probablements pas ceux que vous souhaitez, donc, si vous commencez à ajouter des utilisateurs maintenant, vous aurez à spécifier toutes les informations pour chacun d'entre eux. C'est pour cela que nous pouvons et devons changer les valeurs par défaut.
Sur mon sytème:
/bin/bash
useradd -D -g100 -e60 -f0 -s/bin/bash
Maintenant, lancer useradd -D
donne:
GROUP=100 HOME=/home INACTIVE=0 EXPIRE=60 SHELL=/bin/bash SKEL=/etc/skel
Ces valeurs par défaut sont stockées dans le fichier
/etc/defaults/useradd
Maintenant vous pouvez utiliser useradd
pour ajouter des
utilisateurs à votre système. Par exemple, pour ajouter
l'utilisateur fred
, en utilisant les valeurs par
défaut, vous devez utiliser ce qui suit:
useradd -m -c "Fred Flintstone" fred
Cela créera une entrée dans le fichier
/etc/passwd
:
fred:*:505:100:Fred Flintstone:/home/fred:/bin/bash
Ainsi que cette entrée dans le fichier /etc/shadow
:
fred:!:0:0:60:0:0:0:0
Le répertoire d'accueil de fred
sera créé
et le contenu de /etc/skel
sera copié à cet
endroit grâce à l'option -m
De plus, lorsque l'on ne spécifie pas l'IUD, le prochain disponible est utilisé.
Le compte de fred
est maintenant créé, mais
fred
ne peut pas se loger tant que nous ne
dévérouillons pas le compte. Nous effectuons cela en
changeant le mot de passe.
passwd fred
Changing password for fred Enter the new password (minimum of 5 characters) Please use a combination of upper and lower case letters and numbers. New Password: ******* Re-enter new password: *******
Maintenant /etc/shadow
contient:
fred:J0C.WDR1amIt6:9559:0:60:0:0:0:0
fred
est maintenant capable de se connecter et d'utiliser le
système. La chose intéressante à propos de useradd
et des autres programmes provenant de la Suite Shadow, est qu'ils
effectuent les changements dans les fichiers /etc/passwd
et
/etc/shadow
automatiquement. Donc si vous ajoutez un
utilisateur, et qu'un autre utilisateur change son mot de passe au
même moment, les deux opérations sont effectuées
correctement.
Vous devriez plutôt utiliser les commandes fournies
qu'éditer directement les fichier /etc/passwd
et
/etc/shadow
. Si vous éditez le fichier
/etc/shadow
et qu'un utilisateur change son mot de passe au
même moment, ce que vous sauverez, sera bien dans le fichier
mais, le nouveau mot de passe de l'utilisateur sera perdu.
Voici un petit script intéractif permettant d'ajouter des utilisateurs
en utilisant les commandes useradd
et passwd
:
#!/bin/bash # # /sbin/newuser - A script to add users to the system using the Shadow # Suite's useradd and passwd commands. # # Written my Mike Jackson <mhjack@tscnet.com> as an example for the Linux # Shadow Password Howto. Permission to use and modify is expressly granted. # # This could be modified to show the defaults and allow modification similar # to the Slackware Adduser program. It could also be modified to disallow # stupid entries. (i.e. better error checking). # ## # Defaults for the useradd command ## GROUP=100 # Default Group HOME=/home # Home directory location (/home/username) SKEL=/etc/skel # Skeleton Directory INACTIVE=0 # Days after password expires to disable account (0=never) EXPIRE=60 # Days that a passwords lasts SHELL=/bin/bash # Default Shell (full path) ## # Defaults for the passwd command ## PASSMIN=0 # Days between password changes PASSWARN=14 # Days before password expires that a warning is given ## # Ensure that root is running the script. ## WHOAMI=`/usr/bin/whoami` if [ $WHOAMI != "root" ]; then echo "You must be root to add news users!" exit 1 fi ## # Ask for username and fullname. ## echo "" echo -n "Username: " read USERNAME echo -n "Full name: " read FULLNAME # echo "Adding user: $USERNAME." # # Note that the "" around $FULLNAME is required because this field is # almost always going to contain at least on space, and without the # the useradd command would think that you we moving on to the next # parameter when it reached the SPACE character. # /usr/sbin/useradd -c"$FULLNAME" -d$HOME/$USERNAME -e$EXPIRE \ -f$INACTIVE -g$GROUP -m -k$SKEL -s$SHELL $USERNAME ## # Set password defaults ## /bin/passwd -n $PASSMIN -w $PASSWARN $USERNAME>/dev/null 2>&1 ## # Let the passwd command actually ask for password (twice) ## /bin/passwd $USERNAME ## # Show what was done. ## echo "" echo "Entry from /etc/passwd:" echo -n " " grep "$USERNAME:" /etc/passwd echo "Entry from /etc/shadow:" echo -n " " grep "$USERNAME:" /etc/shadow echo "Summary output of the passwd command:" echo -n " " passwd -S $USERNAME echo ""
Utiliser un script pour ajouter des utilisateurs est
préférable à l'édition des fichiers
/etc/passwd
et /etc/shadow
ainsi qu'à l'utilisation
de programmes comme adduser
de la distribution
Slackware.
Vous êtes libre d'utiliser et de modifier le script à en fonction de votre système.
Pour plus d'informations sur useradd
, consultez le manuel en
ligne.
Le programme usermod
est utilisé pour modifier les
informations relatives à un utilisateur. Les options sont les
mêmes que pour useradd
.
Disons que l'on souhaite changer le shell de fred
. Vous
devrez faire la chose suivante:
usermod -s /bin/tcsh fred
Maintenant l'entrée concernant fred
dans le fichier
/etc/passwd
est devenue:
fred:*:505:100:Fred
Flintstone:/home/fred:/bin/tcsh
On change la date d'expiration du compte au 15/09/97:
usermod -e 09/15/97 fred
Maintenant l'entrée concernant fred
dans le fichier
/etc/shadow
est devenue:
fred:J0C.WDR1amIt6:9559:0:60:0:0:10119:0
Pour plus d'informations concernant usermod
, consultez la
page de manuel en ligne.
userdel
fait exactement ce que vous voulez, il efface le
compte d'un utilisateur. Utilisez simplement:
userdel -r username
L'option -r
implique que tous les fichiers du
répertoire d'accueil d'un utilisateur seront
effacés. Les fichiers situés en dehors du
répertoire d'accueil devront être cherchés et
effacés manuellement.
Si vous souhaitez simplement vérouiller un compte au lieu de
l'effacer, utilisez la commande passwd
.
La commande passwd
a pour but de changer les mots de passe. De
plus, elle est utilisée par l'utilisateur
Par exemple, jetons un coup d'oeil à fred
:
passwd -S fred
fred P 03/04/96 0 60 0 0
Cela signifie que le mot de passe de fred
est valide, qu'il a
été changé pour la dernière fois le
04/03/96, qu'il peut être changé à n'importe quel
moment, qu'il expire au bout de 60 jours, que fred
ne sera
pas averti, et que le compte ne sera pas vérouillé lors
de l'expiration du mot de passe.
Cela veut simplement dire que si fred
se loge après
l'expiration de son mot de passe, il lui sera demandé de taper
un nouveau mot de passe.
Si nous souhaitons prévenir fred
14 jours avant
l'expiration de son mot de passe, et vérouiller son compte 14
jours après l'avoir laissé expiré, nous devrions
faire la chose suivante:
passwd -w14 -i14 fred
Maintenant les informations concernant fred
sont
changées en:
fred P 03/04/96 0 60 14 14
Pour de plus amples informations concernant passwd
, se
référer au manuel en ligne.
Le fichier /etc/login.defs
est le fichier de configuration du
programme login
ainsi que celui de toute le Suite
Shadow.
Le fichier /etc/login.defs
contient les paramètres
allant de l'apparance de l'invite à l'expiration par
défaut concernant les mots de passe utilisateurs.
Le fichier /etc/login.defs
est assez bien documenté de
part ses propres commentaires. De plus, il y a quelques points a
noter:
Des informations précédantes on peut en déduire que c'est un fichier important, vous devez être sûr qu'il existe et que les valeurs sont celles que vous désirez pour votre système.
Le fichier /etc/groups
peut contenir des mots de passe
permettant à un utilisateur de devenir un membre d'un groupe
particulier. Cette fonction est validée si vous
validez la constante SHADOWGRP
dans le fichier
/usr/src/shadow-AAMMJJ/config.h
.
Si vous définissez cette constante et que vous compilez, vous
devez créer un fichier /etc/gshadow
pour stocker les
mots de passe pour les groupes, ainsi que les informations concernant
l'administration du groupe.
Lorsque vous avez créé le fichier /etc/shadow
,
vous avez utilisé un programme appelé pwconv
,
il n'y a pas d'équivalent pour créer le fichier
/etc/gshadow
, mais ce n'est pas grave.
Pour créer le fichier /etc/gshadow
initial, faites la
chose suivante:
touch /etc/gshadow
chown root.root /etc/gshadow
chmod 700 /etc/gshadow
Une fois que vous créez un nouveau groupe, il sera
ajouté dans le fichier /etc/group
ainsi que dans le
fichier /etc/gshadow
. Si vous modifiez un groupe en ajoutant,
retirant, ou en changeant le mot de passe du groupe, le fichier
/etc/gshadow
sera changé.
Les programmes groups
, groupadd
, groupmod
,
et groupdel
sont fournis dans la Suite Shadow pour
modifier les groupes.
Le format du fichier /etc/group
est:
groupname:!:GID:member,member,...
où:
groupname
Le nom du groupe,
!
Le champs contenant normalement le mot de passe
qui est maintenant stocké dans le fichier /etc/gshadow
,
GID
L'identificateur numérique du groupe,
member
La liste des membres du groupe.
Le format du fichier /etc/gshadow
est:
groupname:password:admin,admin,...:member,member,...
où:
groupname
Le nom du groupe,
password
Le mot de passe encodé,
admin
La liste des administrateurs de groupe,
member
La liste des membres du groupe.
La commande gpasswd
est utilisée pour ajouter, retirer
des administrateurs et des membres d'un groupe.
Le mot de passe du groupe peut être changé en utilisant
le programme passwd
par
En dépit du fait qu'il n'y ait pas encore de page de manuel
pour gpasswd
, tapez gpasswd
sans paramètres
pour obtenir la liste des options. C'est relativement facile de
comprendre comment tout marche un fois que vous avez compris le format
du fichier et les concepts.
Le programme pwck
est fourni pour vérifier la
cohérence des fichiers /etc/passwd
et
/etc/shadow
. Il vérifie chaque nom d'utilisateur
ainsi que les points suivants:
Il prévient aussi lorsqu'un compte ne possède pas de mot de passe.
C'est une bonne idée de lancer pwck
après avoir
installé la Suite Shadow. C'est aussi une bonne
idée de le lancer périodiquement, une fois par semaine
ou par mois. Si vous utilisez l'option -r
, vous pouvez
utiliser cron
pour lancer une analyse régulière
et avoir un rapport sous forme de courrier.
grpck
est le programme de vérification de la
cohérance des fichiers /etc/group
et
/etc/gshadow
. Il effectue les vérifications suivantes:
Il possède aussi l'option -r
pour des rapports
automatiques.
Les mots de passe "Accès à distance" sont une autre
ligne de défense des systèmes permettant la connexion
à distance. Si vous avez un système qui permet à
des utilisateurs de se connecter localement ou par
l'intermédiaire d'un réseau, mais vous voulez
contrôler qui peut appeler et se connecter, les mots de passe
"Accès à distance" sont pour vous. Pour valider les mots
de passe "Accès à distance", vous devez éditer le
fichier /etc/login.defs
et vous assurer que
DIALUPS_CHECK_ENAB
est positionnée à yes
.
Les deux fichiers contenant les informations d'accès à
distance sont /etc/dialups
et /etc/d_passwd
.
Le fichier /etc/dialups
contient les terminaux (un par ligne, avec
l'entête "/dev/
" supprimé). Si un terminal est
listé alors, la vérification d'accès à
distance est effectuée;.
Le second fichier /etc/d_passwd
contient le chemin complet
d'un shell, suivit d'un mot de passe optionnel.
Si un utilisateur se connecte à un terminal décrit dans une ligne du
fichier /etc/dialup
et que son shell est listé dans le
fichier /etc/d_passwd
alors l'accès lui est autorisé en
fournissant le mot de passe correct.
Une autre possibilité utile des mots de passe "Accès à distance" est de spécifier un ligne qui ne permet qu'un certain type de connexion (PPP, ou UUCP par exemple). Si un utilisateur essaye d'avoir un autre type de connexion, (ie. une liste de shell), il doit connaitre un mot de passe pour l'utiliser.
Avant de pouvoir utiliser les possibilités de l'accès à distance, vous devez créer les fichiers.
La commande dpaswd
est fournie pour assigner un mot de passe
à un shell dans le fichier d_passwd
. Lisez le manuel
en ligne pour de plus amples informations.