
Ich mounte eine Festplatte auf meiner Ubuntu-Box unter /media/newhdd
, dieVormount hat die folgenden Berechtigungen:
drwxr-xr-x 2 root team 4096 Jan 19 17:26 newhdd
drwxr-x---+ 2 root root 4096 May 14 2020 oem
Ich hatte die Gruppe bereits in die team
Gruppe geändert.NachMontage, aber was ich sehe ist:
drwx------ 4 29999 29999 4096 Jan 19 19:48 newhdd
drwxr-x---+ 2 root root 4096 May 14 2020 oem
Was bedeuten diese Zahlen? Und warum haben sich die Berechtigungen geändert?
Info: Ich mounte mit sudo mount /dev/sda /media/newhdd
.
Antwort1
Nein, die Berechtigungen werden nicht geändert. Ihre lokale UID/GID-Zuweisung stimmt nicht mit der des Systems überein, auf dem die Berechtigungen festgelegt wurden, und Ihr System zeigt sie nur anders an. Die Berechtigungen auf der Festplatte sind jedoch immer noch korrekt. Wenn Sie den Speicher auf das System verschoben haben, auf dem diese festgelegt wurden, werden sie wie vorgesehen angezeigt.
Jedes System hat seinen eigenen Satz von IDs. Im Allgemeinen werden sie nach Bedarf zugewiesen. Wenn Sie beispielsweise eine Gruppe erstellen, weist ein System ihr eine GID zu und speichert die Zuweisung in /etc/group
(standardmäßig). Wenn Sie einen Benutzer erstellen, weist das System ihm eine UID zu und speichert die Zuweisung in /etc/passwd
.
Systemkonten unterscheiden sich nicht sehr. Es gibt Unterschiede zwischen den Distributionen. Beispielsweise können einige Distributionen bestimmte UIDs und GIDs für bestimmte Anwendungen „statisch zuordnen“. Diese Zuordnungen werden bei der Installation des Systems nicht gespeichert. Wenn Sie jedoch eine Software installieren, die ein eigenes Konto benötigt, erstellt das Installationsprogramm Konten mit vordefinierten UIDs/GIDs für sie. Andere Distributionen (Gentoo) tun nicht einmal das. UIDs und GIDs werden bei der ersten Softwareinstallation bei Bedarf neu zugewiesen.
Es gibt einige Einstellungen, die Pools definieren, aus denen diese UIDs und GIDs zur Zuweisung entnommen werden. Diese Zeilen in /etc/adduser.conf
sind eine davon, aber es gibt noch andere. Beispielsweise hat mein System keine /etc/adduser.conf, aber ich habe /etc/default/useradd
. Sie können dies bei der Kontoerstellung überschreiben, indem Sie konkrete IDs angeben, wie folgt: useradd -u 1100 -G users newuser
erstellt einen Benutzer mit UID 1100, unabhängig von konfigurierten Bereichen.
Welche Namen welchen UIDs/GIDs entsprechen, ist also von System zu System fast immer unterschiedlich. Es hängt stark von der Historie des Systems ab: Welche Distribution es ist; welche Software installiert wird und in welcher Reihenfolge; welche Benutzer erstellt werden und in welcher Reihenfolge usw. Die einzige Wahrheit, die wir über „jedes“ Linux-System sagen können, ist, dass der Benutzer root
immer die UID 0
und die Gruppe root
immer die GID hat 0
.
Wenn ich beispielsweise zwei identische Ubuntus installiere und dann auf einem Benutzer zuerst „alice“ anlege, kann diese die UID 1000 haben, dann „bob“, der wahrscheinlich die UID 1001 hat; auf einem anderen System erstelle ich zuerst „bob“, der 1000 bekommt, und als zweites „alice“, sie erhält 1001.
Dateisysteme speichern dagegen keine Benutzer- und Gruppennamen, sondern Nummern, UIDs und GIDs. Um das vorherige Beispiel zu erweitern: Wenn ich auf dem ersten System eine Datei erstelle und sie zur Besitzerin „alice“ mache, wird ihre UID 1000 in die Metadaten des Dateisystems geschrieben. Wenn ich ein Speichermedium auf die zweite Maschine verschiebe und auf diese Datei zugreife, wird „bob“ als ihr Besitzer angezeigt, weil die Datei in den Metadaten die UID 1000 hat und diese UID auf der zweiten Maschine „bob“ entspricht.
Was passiert, wenn keine UID zugewiesen ist? Keine Sorge, das Betriebssystem selbst kümmert sich nicht um Namen, es verwendet nur IDs und Namen werden nur vom Userspace übersetzt. Userspace-Tools zeigen normalerweise nur „digitale“ IDs an, wenn ihnen in /etc/passwd
und keine Zuweisung vorliegt /etc/group
.
Windows-Systeme unterscheiden sich kaum. Sie haben eine einzige „Nummerierungsdomäne“ von IDs, genannt RIDs, aus der sowohl Benutzer- als auch Gruppensicherheitskennungen entnommen werden (Linux zählt UIDs und GIDs getrennt). Der erste lokale Benutzer hat oft eine RID von 500. RIDs in Kombination mit „Nummerierungsdomäne“ ergeben SIDs, die in die Metadaten des Dateisystems geschrieben werden. Zuordnungen werden in der SAM-Datenbank gespeichert.
Dies führt zu einem sehr wichtigen Problem: Wie kann man eine Gruppe von Computern zentral verwalten, damit der Speicher übertragbar ist usw.? Dafür gibt es mehrere Lösungen. Eine der am häufigsten verwendeten ist ein zentrales System, das die Zuordnungen verwaltet, und alle angeschlossenen Systeme fragen die Zuordnungen von diesem ab. Auf lokalen Systemen werden diese zugewiesenen IDs häufig einer „ID-Domäne“ zugeordnet. Beispielsweise verfügt MS Active Directory immer über einen Domänencontroller mit aktiver FSMO-Rolle RID master
; dies ist genau ein System, das die Zuordnungen in der Domäne verwaltet. (Wenn Sie genauer darüber nachdenken, erhalten SieWarumDiese Rolle wurde zu FSMO gemacht, einer „Single Master Operation“-Rolle.) Daher werden die Berechtigungen für domäneneigene Dateien auf allen Systemen in der Domäne korrekt wiedergegeben, selbst wenn Medien zwischen Computern verschoben werden. Wenn Medien jedoch außerhalb der Domäne verschoben werden, treten alle beschriebenen Auswirkungen einer fehlerhaften Zuordnung auf. Linux-Systeme können auch eine zentrale Zuweisung verwenden, es gibt NIS, oder sogar ein MS AD-Controller kann UIDs/GIDs für Linux-Systeme zuweisen, die einer AD-Domäne beigetreten sind.
Antwort2
Dies scheint eine dynamisch generierte UID zu sein und die Obergrenze für solche IDs wird wie folgt gewählt /etc/adduser.conf
:
# FIRST_[GU]ID to LAST_[GU]ID inclusive is the range of UIDs of dynamically
# allocated user accounts/groups.
FIRST_UID=1000
LAST_UID=29999