Je ne crois pas qu'il y ait un risque inhérent, c'est quelque chose qui est fait simplement pour créer une séparation entre ce qui est considéré comme un compte système et un compte utilisateur. D'après mon expérience, la pratique consistant à utiliser des nombres inférieurs à 500 est un redhatisme, et rien de plus.
Sur Solaris, j'avais vu des utilisateurs se voir attribuer des numéros commençant à 100, seulement des années plus tard, je découvrais que lorsque la fusion des systèmes de 2 départements plus petits provoquait un cauchemar, car il y avait plusieurs utilisateurs dans les 2 départements qui avaient le même UID / GID attribué.
C'est vraiment le principal risque / casse-tête lors de l'attribution des UID. Étant donné que l'UID est ce qui est finalement écrit dans l'inode pour les fichiers / répertoires donnés par un utilisateur, vous ne devez pas avoir à effectuer des find
recherches massives pour les fichiers appartenant à l'UID 1234 et les changer en 5678 .
Ainsi, en réfléchissant à la sélection des UID, les administrateurs peuvent éviter les maux de tête sur la route.
L'utilisation de 500 et plus n'est qu'une tentative de Redhat (et d'autres Unix) de se donner suffisamment de tampon pour que les comptes système qui pourraient avoir besoin d'être créés ne soient pas mélangés avec les UID attribués aux utilisateurs.
/etc/login.defs
Soit dit en passant, le nombre 500 est entraîné par ce paramètre dans le fichier de configuration, /etc/login.defs
.
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 500
UID_MAX 60000
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 500
GID_MAX 60000
Vous pouvez changer cela en tout ce que vous voulez, si vous souhaitez remplacer le comportement par défaut par useradd
/ adduser
commandes.
Page de manuel Useradd
Si vous regardez la useradd
page de manuel, vous remarquerez cette partie qui traite de la valeur par défaut de GID, mais ce commentaire s'applique également aux UID:
extrait
-g, --gid GROUP
The group name or number of the user´s initial login group. The group name
must exist. A group number must refer to an already existing group.
If not specified, the behavior of useradd will depend on the USERGROUPS_ENAB
variable in /etc/login.defs. If this variable is set to yes
(or -U/--user-group is specified on the command line), a group will be
created for the user, with the same name as her loginname. If the variable
is set to no (or -N/--no-user-group is specified on the command line),
useradd will set the primary group of the new user to the value specified by
the GROUP variable in /etc/default/useradd, or 100 by default.
Comptes système
Une autre chose à noter dans la useradd
page de manuel est ce bit sur la génération de compte système.
extrait
-r, --system
Create a system account.
System users will be created with no aging information in /etc/shadow,
and their numeric identifiers are choosen in the SYS_UID_MIN-SYS_UID_MAX
range, defined in /etc/login.defs, instead of UID_MIN-UID_MAX (and their
GID counterparts for the creation of groups).
Note that useradd will not create a home directory for such an user,
regardless of the default setting in /etc/login.defs (CREATE_HOME). You
have to specify the -m options if you want a home directory for a system
account to be created.
C'est cette méthode ( useradd -r ...
) souvent utilisée par les scripts qui est intégrée dans les différents gestionnaires de packages, tels que RPM, lorsqu'un package est installé. Le scriptage de cette façon permet au système de sélectionner automatiquement le prochain UID / GID disponible sur un système donné sans risque de marcher sur les UID / GID déjà attribués aux utilisateurs du système.