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 fredsera créé
et le contenu de /etc/skel sera copié à cet
endroit grâce à l'option -mDe 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ù:
groupnameLe nom du groupe,
!Le champs contenant normalement le mot de passe
qui est maintenant stocké dans le fichier /etc/gshadow,
GIDL'identificateur numérique du groupe,
memberLa liste des membres du groupe.
Le format du fichier /etc/gshadow est:
groupname:password:admin,admin,...:member,member,...
où:
groupnameLe nom du groupe,
passwordLe mot de passe encodé,
adminLa liste des administrateurs de groupe,
memberLa 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.