Page suivante Page précédente Table des matières
7. Faire en sorte que la suite shadow fonctionne
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.
7.1 Ajouter, modifier, et supprimer des utilisateurs.
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.useradd
la commande
useraddpeut ê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:
Pour effectuer ces changements, j'ai dû utiliser:
- Je veux que le groupe par défaut soit 100,
- Je veux que les mots de passe expirent au bout de 60 jours,
- Je ne veux pas que le compte soit bloqué lors de l'expiration du mot de passe,
- Je veux que le shell par défaut soit
/bin/bashuseradd -D -g100 -e60 -f0 -s/bin/bashMaintenant, lancer
useradd -Ddonne:
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/useraddMaintenant vous pouvez utiliser
useraddpour ajouter des utilisateurs à votre système. Par exemple, pour ajouter l'utilisateurfred, en utilisant les valeurs par défaut, vous devez utiliser ce qui suit:Cela créera une entrée dans le fichieruseradd -m -c "Fred Flintstone" fred/etc/passwd:Ainsi que cette entrée dans le fichierfred:*:505:100:Fred Flintstone:/home/fred:/bin/bash/etc/shadow:Le répertoire d'accueil defred:!:0:0:60:0:0:0:0fredsera créé et le contenu de/etc/skelsera 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
fredest maintenant créé, maisfredne 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/shadowcontient:
fred:J0C.WDR1amIt6:9559:0:60:0:0:0:0
fredest maintenant capable de se connecter et d'utiliser le système. La chose intéressante à propos deuseraddet des autres programmes provenant de la Suite Shadow, est qu'ils effectuent les changements dans les fichiers/etc/passwdet/etc/shadowautomatiquement. 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/passwdet/etc/shadow. Si vous éditez le fichier/etc/shadowet 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
useraddetpasswd:
#!/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/passwdet/etc/shadowainsi qu'à l'utilisation de programmes commeadduserde 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.
usermod
Le programme
usermodest utilisé pour modifier les informations relatives à un utilisateur. Les options sont les mêmes que pouruseradd.Disons que l'on souhaite changer le shell de
fred. Vous devrez faire la chose suivante:
usermod -s /bin/tcsh fredMaintenant l'entrée concernant
freddans le fichier/etc/passwdest devenue:
fred:*:505:100:Fred Flintstone:/home/fred:/bin/tcshOn change la date d'expiration du compte au 15/09/97:
usermod -e 09/15/97 fredMaintenant l'entrée concernant
freddans le fichier/etc/shadowest devenue:fred:J0C.WDR1amIt6:9559:0:60:0:0:10119:0Pour plus d'informations concernant
usermod, consultez la page de manuel en ligne.
userdel
userdelfait exactement ce que vous voulez, il efface le compte d'un utilisateur. Utilisez simplement:userdel -r usernameL'option
-rimplique 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.
7.2 La commande passwd et la durée du mot de passe.
La commande
passwda pour but de changer les mots de passe. De plus, elle est utilisée par l'utilisateurroot pour:
- Vérouiller et dévérouiller des comptes (-l et -u),
- Définir le nombre de jours de validité d'un mot de passe (-x),
- Définir le nombre de jours minimums pour le changement de mot de passe (-n),
- Définir le nombre de jours d'alerte concernant l'expiration d'un mot de passe(-w),
- Définir le nombre de jours après que le mot de passe soit expiré pour vérouiller le compte(-i),
- Permettre de voir les informations concernant un utilisateur dans un format clair(-S).
Par exemple, jetons un coup d'oeil à
fred:passwd -S fred fred P 03/04/96 0 60 0 0Cela signifie que le mot de passe de
fredest 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, quefredne 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
fredse 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
fred14 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:Maintenant les informations concernantpasswd -w14 -i14 fredfredsont changées en:fred P 03/04/96 0 60 14 14Pour de plus amples informations concernant
passwd, se référer au manuel en ligne.
7.3 Le fichier login.defs
Le fichier
/etc/login.defsest le fichier de configuration du programmeloginainsi que celui de toute le Suite Shadow.Le fichier
/etc/login.defscontient 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.defsest assez bien documenté de part ses propres commentaires. De plus, il y a quelques points a noter:
- Il contient des drapeaux qui peuvent être activé ou désactivé concernant la taille de journalisation,
- Il contient des pointeurs sur d'autres fichiers de configuration,
- Il contient les valeurs par défaut comme la durée d'un mot de passe.
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.
7.4 Les mots de passe pour les groupes
Le fichier
/etc/groupspeut 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 constanteSHADOWGRPdans 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/gshadowpour 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/gshadowinitial, faites la chose suivante:touch /etc/gshadow chown root.root /etc/gshadow chmod 700 /etc/gshadowUne fois que vous créez un nouveau groupe, il sera ajouté dans le fichier
/etc/groupainsi 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/gshadowsera changé.Les programmes
groups,groupadd,groupmod, etgroupdelsont fournis dans la Suite Shadow pour modifier les groupes.Le format du fichier
/etc/groupest:où:groupname:!:GID:member,member,...
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/gshadowest:où:groupname:password:admin,admin,...:member,member,...
groupnameLe nom du groupe,
passwordLe mot de passe encodé,
adminLa liste des administrateurs de groupe,
memberLa liste des membres du groupe.
La commande
gpasswdest utilisée pour ajouter, retirer des administrateurs et des membres d'un groupe.root ou un administrateur du groupe peut ajouter ou retirer des membres du groupe.Le mot de passe du groupe peut être changé en utilisant le programme
passwdparroot ou un administrateur du groupe.En dépit du fait qu'il n'y ait pas encore de page de manuel pour
gpasswd, tapezgpasswdsans 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.
7.5 Programmes de vérification de la structure
pwck
Le programme
pwckest fourni pour vérifier la cohérence des fichiers/etc/passwdet/etc/shadow. Il vérifie chaque nom d'utilisateur ainsi que les points suivants:
- Le nombre correct de champs,
- Nom unique,
- Nom et groupe valide,
- Groupe primaire valide,
- Répertoire d'accueil valide,
- Shell valide.
Il prévient aussi lorsqu'un compte ne possède pas de mot de passe.
C'est une bonne idée de lancer
pwckaprè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 utilisercronpour lancer une analyse régulière et avoir un rapport sous forme de courrier.
grpck
grpckest le programme de vérification de la cohérance des fichiers/etc/groupet/etc/gshadow. Il effectue les vérifications suivantes:
- Le nombre correct de champs,
- Unicité du nom de groupe,
- Validité de la liste des membres et des administrateurs.
Il possède aussi l'option
-rpour des rapports automatiques.
7.6 Les mots de passe "Accès à distance"
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.defset vous assurer queDIALUPS_CHECK_ENABest positionnée àyes.Les deux fichiers contenant les informations d'accès à distance sont
/etc/dialupset/etc/d_passwd. Le fichier/etc/dialupscontient 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_passwdcontient 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/dialupet que son shell est listé dans le fichier/etc/d_passwdalors 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
dpaswdest fournie pour assigner un mot de passe à un shell dans le fichierd_passwd. Lisez le manuel en ligne pour de plus amples informations.
Page suivante Page précédente Table des matières