Was sind die Gefahren beim Erstellen eines normalen Benutzers mit einer UID <500?

14

Was sind die Gefahren beim Erstellen eines normalen Benutzers mit einer UID <500? Angenommen, die UIDs sind keine Duplikate der vorhandenen UIDs. Was könnte schief gehen?

Dies ist nicht etwas, was ich tun möchte, sondern etwas, was ich gesehen habe und wissen möchte, warum es nicht getan werden sollte. In diesem Beispiel ist RHEL5 aktiviert.

Jeff
quelle
2
Von Debian abgeleitete Systeme scheinen normale UIDs bei 1000 zu starten, nicht bei 500.
Keith Thompson

Antworten:

16

Ich glaube nicht, dass es ein inhärentes Risiko gibt. Dies geschieht lediglich, um eine Trennung zwischen Systemkonten und Benutzerkonten zu erreichen. Die Praxis, aus meiner Erfahrung Zahlen unter 500 zu verwenden, ist ein Redhatismus, und wirklich nichts weiter.

Unter Solaris hatte ich gesehen, dass Benutzern auch Nummern ab 100 zugewiesen wurden. Erst Jahre später stellte sich heraus, dass das Zusammenführen von Systemen zweier kleinerer Abteilungen eine Art Albtraum darstellt, da mehrere Benutzer in den beiden Abteilungen dieselbe UID hatten / GIDs zugewiesen.

Dies ist wirklich das Hauptrisiko / der Hauptschmerz beim Zuweisen der UIDs. Da die UID das ist, was letztendlich in den Inode für die angegebenen Dateien / Verzeichnisse eines Benutzers geschrieben wird, möchten Sie nicht, dass Sie massiv findnach Dateien suchen müssen, die der UID 1234 gehören, und diese in 5678 ändern müssen .

Wenn Sie sich also Gedanken über die Auswahl der UIDs machen, können Administratoren Probleme vermeiden.

Die Verwendung von 500 und höher ist nur ein Versuch von Redhat (und anderen Unixen), sich genügend Puffer zu geben, damit alle Systemkonten, die erstellt werden müssen, nicht mit UIDs vermischt werden, die Benutzern zugewiesen sind.

/etc/login.defs

Im übrigen wird die Zahl 500 durch diese Einstellung in der Konfigurationsdatei angetrieben, /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

Sie können dies beliebig ändern, wenn Sie das Standardverhalten von useradd/ addusercommand überschreiben möchten .

Useradd Manpage

Wenn Sie sich die useraddManpage ansehen, werden Sie diesen Abschnitt bemerken, in dem der Standardwert für GID erläutert wird. Dieser Kommentar gilt jedoch auch für UIDs:

Auszug

-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.

Systemkonten

Eine andere Sache, die in der useraddManpage beachtet werden muss, ist dieses Bit bei der Systemkontoerzeugung.

Auszug

-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.

Diese Methode ( useradd -r ...) wird häufig von Skripten verwendet, die bei der Installation eines Pakets in die verschiedenen Paketverwalter (z. B. RPM) integriert sind. Wenn Sie auf diese Weise Skripte erstellen, kann das System automatisch die nächste verfügbare UID / GID auf einem bestimmten System auswählen, ohne das Risiko einzugehen, auf UIDs / GIDs zuzugreifen, die den Benutzern des Systems bereits zugewiesen wurden.

slm
quelle
1
FWIW, ich denke das ist ein allgemeiner GNU / Linux-Ismus, nicht nur ein Red Hat-Ismus. Ich habe dies auf allen Systemen gesehen, die ich verwende, und ich habe noch nie Red Hat verwendet.
Strugee
@strugee - danke ich wollte die aussage nicht zu breit machen und habe sie mir nochmal beißen lassen.
slm
2

Aus Sicht des Kernels gibt es nur einen speziellen Benutzer: UID 0. Die Aufteilung der UID-Bereiche aus administrativen Gründen vereinfacht Ihr Leben. Die allgemeinen Bereiche sind Hersteller, System, lokal und global.

Die Herstellerbenutzer werden bei der Erstinstallation des Systems installiert und vom Hersteller statisch verwaltet. Systembenutzer werden je nach installierten Paketen pro Computer installiert. Die meisten Benutzer-Dienstprogramme zum Hinzufügen / Löschen haben eine Bereichsbeschränkung, um diese separat zu behandeln. Lokale Benutzer sind reguläre Benutzer und werden pro Computer zugewiesen. Globale Benutzer werden von einer zentralen Datenbank zugewiesen, sind jedoch reguläre Benutzer. Die Verwendung von UID-Bereichen verhindert Konflikte zwischen diesen verschiedenen Gruppen. Wo diese Grenzwerte liegen, kann variieren, ist jedoch normalerweise konfigurierbar.

hildred
quelle
1

Dies birgt keine inhärenten Gefahren. Wenn Sie einen Benutzer mit der UID 499 erstellen, verfügen diese Benutzer über keine zusätzlichen Berechtigungen. Der Grund, warum davon abgeraten wird, liegt einfach darin, dass die UIDs normalerweise für Systembenutzer reserviert sind. Das Problem, das beim Erstellen einer solchen UID auftreten kann, besteht darin, dass ein Systemdienst erwartet, dass die UID verfügbar ist. Es ist so etwas wie das Erstellen eines neuen Dienstes, der auf einem bekannten Port ausgeführt wird - es ist zwar kein Problem damit, aber es ist keine gute Praxis und kann später Probleme verursachen, wenn Sie sshd, ftpd usw. einrichten.

Trotzdem habe ich viele Systeme gesehen, auf denen Benutzer ohne Probleme mit einer UID <500 erstellt wurden. Mit dem Anwachsen der Benutzerbasis und der Zahl von Tausenden von Benutzern kann es jedoch schwierig werden, zwischen Benutzerkonten und Systemkonten zu unterscheiden. Nach der Regel ohne UID <500 ist es sehr einfach. Es ist also auch eine gute Möglichkeit, Konten zu organisieren.

Franz Kafka
quelle
1

Es besteht keine wirkliche Gefahr. Der Kernel kümmert sich nicht um Benutzer-ID-Werte mit Ausnahme von 0. Die meisten Verwaltungstools kümmern sich auch nicht darum - nur sehr wenige Teile des Systems unterscheiden zwischen Systembenutzern und menschlichen Benutzern.

Systembenutzer verfügen in der Regel über dedizierte Gruppen. Daher werden hierdurch wahrscheinlich keine Konten erstellt, die mehr Gruppen angehören, als sie sollten.

Einige Distributionen reservieren den Bereich 1–499 (Red Hat und Verwandte) oder 1–999 (Debian und Verwandte) für Systembenutzer, einschließlich Benutzer, die bei der Installation eines Pakets zugewiesen wurden, das einen Systemdienst enthält, für den ein dedizierter Benutzer erforderlich ist. Debians Konvention besagt, dass der Bereich 1–99 statisch zugewiesen wird (so dass es eine sehr schlechte Idee ist, einen menschlichen Benutzer in diesem Bereich zu erstellen, da dies mit einem Systembenutzer in Konflikt geraten kann), während der Bereich 100–999 dynamisch zugewiesen wird (so dass ein menschlicher Benutzer erstellt wird) in diesem Bereich ist harmlos, da jeder neue Systembenutzer eine freie Benutzerkennung auswählt).

Möglicherweise treten kleinere Unannehmlichkeiten auf, z. B. wenn Display-Manager Benutzern keine UIDs anbieten, die unter dem Schwellenwert in ihrer Liste liegen.

Die Hauptgefahr für einen isolierten Computer besteht darin, dass Sie möglicherweise andere Systemadministratoren verwirren. Auf einem Computer in einem Netzwerk, auf dem Benutzer-IDs gemeinsam genutzt werden, können Konflikte mit anderen Computern auftreten, auf denen diese Benutzer dieselbe Benutzer-ID wie ein Systembenutzer haben. In Netzwerken mit gemeinsam genutzten Benutzer-IDs ist es am besten, den Bereich 1000 bis 65533 oder sogar 10000 bis 65533 für Benutzer einzuhalten.

Gilles 'SO - hör auf böse zu sein'
quelle