Frage von LoqerEZ, 46

Woher nimmt das Befehl id in Linux die Daten her brauche genaue pfadangaben pls?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von TeeTier, 11

Falls du dir bei so etwas unsicher bist, kannst du auch einfach ein Trace-Ergebnis filtern:

strace -eopen id 2>&1 | grep -F 'O_RDONLY' | cut -d\" -f2 | sort | uniq | grep -v '/\(lib\|proc\|share\)/'

Das liefert bei mir:

/etc/group
/etc/ld.so.cache
/etc/nsswitch.conf
/etc/passwd

Die beiden in der Mitte sind nicht plausibel, aber die erste und die letzte Datei sehen sehr vielversprechend aus:

Es scheint sich also um /etc/group und /etc/passwd zu handeln!

Gut, man hätte auch in die Man-Pages gucken können, aber schwarze Magie auf der Kommandozeile macht viel mehr Spaß! ;)

Schönen Tag noch! :)

Kommentar von guenterhalt ,

wie hast du das gemacht, dass /etc/group und /etc/passwd  in deinem Report stehen?

Bei mit liefert strace -eopen id <Rest bei dir abgeschrieben>
nur folgende Zeilen:

/etc/ld.so.cache
/lib64/libc.so.6
/lib64/libdl.so.2
/lib64/libpthread.so.0
/lib64/libselinux.so.1
/usr/lib64/gconv/gconv-modules.cache
/usr/lib64/libpcre.so.1

Kommentar von TeeTier ,

Welche Shell benutzt du denn? Sagt dir "type id", dass das Programm oder das Builtin benutzt wird?

Das Caching hängt evtl. auch stark von der Distribution ab. Intern wird ja nur getgrgid() & Co verwendet, die wiederum nur über /etc/passwd und /etc/groups iterieren.

Von daher müssten die eigentlich beim open-Syscall auftauchen.

Sehr mysteriös! :)

Kommentar von guenterhalt ,
 which id 
/usr/bin/id

es ist ein Binary

Bei mir liefert keine der Shells:  bash, ksh, tcsh, csh, zsh andere als in meinem Kommentar angegebene Ergebnisse.

Kommentar von TeeTier ,

Das ist aber wirklich äußerst merkwürdig. Irgendwie muss "id" ja letzendlich die Infos aus /etc/passwd und /etc/groups lesen. Oder hast du so ein extrem exotisches System? :)

Expertenantwort
von guenterhalt, Community-Experte für Linux, 29

all das, was der Befehl id ausgibt findet man auch in den Dateien /etc/passwd und /etc/group , nur nicht in der durch id zusammengestellten Form.

Kommentar von LoqerEZ ,

und von wo kommt der User der aktuelle und andere

Kommentar von guenterhalt ,

und von wo kommt der User der aktuelle und andere

erkläre diesen Satz bitte.
Eine Person versucht sich beim System anzumelden.
Ist sein User-Name in der Datei /etc/passwd vorhanden und das eingegebene Passwort ( nach Umwandlung=Verschlüsselung) mit dem bereits verschlüsseltem Passwort in der /etc/shadow identisch, dann wird er als berechtigter User mit dem System arbeiten können.

Neue User werden vom Superuser ( bei Unix und Linux heißt der root) in die Dateien /etc/passwd, /etc/group und /etc/shadow mit einer neuen id und weiteren Daten eingetragen.
Dafür gibt es auch wieder Befehle, damit der Superuser das nicht alles einzeln machen muss ( er könnte aber).

Übrigens ist der Superuser der, der immer nach der Installation  existiert. Ubuntu, Kubuntu und einige andere haben da dran "geschaubt". Da kann ich nur hoffen, dass in eurer Schule ein richtiges System benutzt wird.

Keine passende Antwort gefunden?

Fragen Sie die Community