Der" andere " Finger (GECOS Felder bei /etc / passwd)
In der Datei /etc/passwd
haben wir das sogenannte GECOS fields
(was für "General Electric Comprehensive Operating System" steht), das heißt:
username:password:userid:groupid:gecos:home-dir:shell
Wobei GECOS
unterteilt sind als:
:FullName,RoomAddress,WorkPhone,HomePhone,Others:
Und Others
sind in beliebig viele Kommas unterteilt:
:FullName,RoomAddress,WorkPhone,HomePhone,Other1,Other2,Other3:
Auf den man chfn
Seiten kann man lesen:
Das andere Feld dient zum Speichern von Buchhaltungsinformationen, die von anderen Applications.
Jetzt für einen Anwendungsentwickler (ich bin interessiert an C language
, system calls
und / oder bash script
) Welches ist der beste Weg, um diese Informationen zu erfassen?
Und wenn man nur die Umgebung Bash
betrachtet, da der Befehl finger
die Felder others
nicht anzeigen kann (oder zumindest nicht sehe, wie), was sind andere Befehle das kann? Ich weiß, dass chfn
nicht nur angezeigt, sondern auch geändert werden kann. Was ist, wenn man es nur an stdout
ausgeben soll?
2 answers
Der beste Weg, den ich gefunden habe, ist die Verwendung von getent
, da dies mit LDAP/NIS oder anderen Methoden nicht lokaler Benutzer funktioniert
getent passwd $UID| awk -F ":" '{print $5}'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-10-31 15:43:21
Zum Beispiel können Sie in einem Bash-Skript das fünfte Feld der Datei /etc/passwd
mit awk/gawk drucken:
awk -F ":" '{print $5}' /etc/passwd
Die Option -F fs
verwendet fs für das Eingabefeldtrennzeichen (in diesem Fall :
).
Sie können mehr lesen, zum Beispiel auf der GNU awk Homepage [1].
Awk hat die Funktion split()
, um eine Zeichenfolge aufzuteilen (in diesem Fall verwenden Sie das 5.Feld als Zeichenfolge und das ,
als Trennzeichen). Nehmen Sie insipiration von einer anderen Antwort darüber [2]....
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-23 12:41:34