Ich muss den Besitz der Datei / des Verzeichnisses mithilfe von chmod
ändern. Ich kenne nur den Benutzernamen des Besitzers, möchte aber gleichzeitig den Standardgruppennamen ändern. Zu diesem Zeitpunkt ist der Gruppenname noch nicht festgelegt, daher setze ich den gleichen Namen wie den Benutzernamen
chown -R username:username path_to_dir
Der Befehl kann für verschiedene Systeme / Benutzer ausgeführt werden. Mein Anliegen ist also, dass Linux immer ein Paar Benutzername (Benutzer) hat: Benutzername (Gruppe) ODER irgendwann kann dieser Standardgruppenname einen Fehler verursachen.
Obwohl ich angefangen habe, GID vom Benutzer zu finden, gehört
id username | tr '(=)' ':' | awk -F: '{print $3}
Aber für Wissen möchte ich wissen. Bis jetzt haben Analysen mit /etc/passwd
/etc/groups
Ausnahme weniger Benutzer wie "Herunterfahren, Anhalten, Synchronisieren, Öffnen" alle Benutzer ebenfalls in Gruppen aufgelistet.
EDIT 1: id -gn Benutzername ist auch eine gute Option
id -g username
?id -gn username
die den Namen anstelle der ID druckt.Antworten:
Es gibt keine Garantie dafür, dass der Gruppenname =
username
vorhanden ist.Das häufigste Szenario ist, dass Systemadministratoren unter Linux einen neuen Benutzer lokal auf dem System erstellen, ohne dass eine explizite Angabe für die Gruppe vorliegt. Dies bedeutet, dass die Gruppe standardmäßig genauso wie der Benutzername erstellt wird und dem Benutzer zugewiesen wird Die Standard-GID der neu erstellten Gruppe.
Dies bedeutet nicht, dass ein anderer Systemadministrator dieses Verfahren befolgt. Wenn Sie andere Namensdienste wie NIS oder LDAP in den Mix aufnehmen, entspricht die als Standard zugewiesene Gruppe wahrscheinlich nicht der neuen GID mit dem Gruppennamen und dem Benutzernamen.
Sie sollten sich also nicht darauf verlassen, dass Benutzername = Gruppenname
quelle
useradd
Skript geliefert werden, das standardmäßig eine Gruppe mit demselben Namen erstellt, haben nicht alle. Als ich es das letzte Mal verwendet habe (vor vielen, vielen Jahren), hatte das Benutzererstellungsskript von slackware standardmäßig eine einzelne Gruppeusers
, zu der stattdessen alle Benutzer gehörten. docs.slackware.com/slackbook:users schlägt vor, dass dies möglicherweise immer noch der Fall ist.Obwohl die Benutzergruppe für private Gruppen in modernen Linux-Systemen häufig verwendet wird, benötigt * nix nicht für jeden Benutzer eine eindeutige Primärgruppe, und es ist durchaus möglich, dass mehrere Benutzerkonten eine gemeinsame Primärgruppe wie
users
oder gemeinsam nutzenstaff
.Selbst in Fällen, in denen die UPG-Sprache erzwungen wird, gibt es keinen besonderen Grund dafür, dass die numerische GID einer bestimmten UPG der UID des Eigentümers entsprechen sollte, obwohl die meisten Tools zur Kontoerstellung versuchen, UIDs und GIDs in der richtigen Reihenfolge zuzuweisen verfügbar. Die IDs können leicht aus dem Takt geraten, wenn die Benutzer und / oder Gruppen über mehrere Systeme hinweg konsistent gemacht werden müssen (z. B. um bereits vorhandene NFS-Freigaben aufzunehmen).
quelle
Wie Ramesh standardmäßig angegeben hat, sind UID und GID für normale Benutzer gleich. Dies ist jedoch nicht immer der Fall, sodass Sie keine solche Annahme treffen dürfen, da dies Ihr System zerstören kann. Das Zuweisen von Datei- / Ordnerberechtigungen zu einer falschen Gruppe ist etwas chaotisch, nicht wahr?
Die kurze Antwort lautet: Nein, UID ist nicht immer gleich GID. Dennoch
/etc/passwd
enthält sowohl die UID und GID der Standardgruppe auf der gleichen Linie , so dass es ziemlich einfach ist , sie zu extrahieren.quelle
adduser
alsuseradd
und die Standardeinstellungen/etc/adduser.conf
sind so eingestellt,USERGROUPS=yes
dass für jeden neuen Benutzer eine Gruppe erstellt wird. Diese Gruppen haben normalerweise (jedoch nicht immer) dieselbe GID wie die UID des Benutzers, für den sie erstellt wurden.Über diesen Link sehe ich die folgenden Informationen.
Eine Benutzer-ID (UID) ist eine eindeutige positive Ganzzahl, die jedem Benutzer von einem Unix-ähnlichen Betriebssystem zugewiesen wird. Jeder Benutzer wird dem System anhand seiner UID identifiziert, und Benutzernamen werden im Allgemeinen nur als Schnittstelle für Menschen verwendet.
UIDs werden zusammen mit ihren entsprechenden Benutzernamen und anderen benutzerspezifischen Informationen in der
/etc/passwd
Datei gespeichert, die mit dem Befehl cat wie folgt gelesen werden kann:Das dritte Feld enthält die UID, und das vierte Feld enthält die Gruppen-ID (GID), die standardmäßig der UID für alle normalen Benutzer entspricht.
BEARBEITEN
Wie @Karlson jedoch betont, ist es nicht wahr, dass die UID standardmäßig der GID entspricht.
Die Aussage ist nur wahr, wenn keine gewöhnlichen Gruppen separat hinzugefügt werden und bei keiner Benutzererstellung explizit Gruppen angegeben werden . Standardmäßig gid für den nächsten hinzugefügten Benutzer =
max(gid) + 1
. Es gibt keine Korrelation zwischen UID und GID, die von einem * NIX-System benötigt wird, das in einigen Fällen zufällig zusammenfällt.Weitere Referenzen
http://www.thegeekstuff.com/2009/06/useradd-adduser-newuser-how-to-create-linux-users
quelle
-g
Flaguseradd
des Programms erstellt wird, wird eine Gruppe für Sie erstellt. Wenn keine GID-Verschiebung stattgefunden hat, ist dies = UID. Wenn die Erstellungsmethode jedoch nicht bekannt ist, können Sie sich nicht darauf verlassen, dass dies der Fall ist:uid=123456(ME) gid=777(ABC) groups=777(ABC)