Usermod -c Benutzerkontenbeschreibung

Hallo Community,
ich habe ein großes Problem. Vielleicht kann mir einer weiterhelfen. Ich möchte die Benutzerbeschreibung von Benutzerkonten ändern, dazu suche ich ein shell-script was den Benutzername abfrage z.B.: aus der /etc/passwd und dann einen prompt anzeigt wo ich die Beschreibung eintragen kann.

Ich bin für jede Idee dankbar.

Grüsse
Marcel

Hallo Marcel,

Ich möchte die Benutzerbeschreibung von
Benutzerkonten ändern

Das kannst Du normalerweise mit chfn machen:

chfn [-f Voller\_Name] [-r Zimmer\_Nr] [-w Tel\_Arbeit] [-h Tel\_Privat] [-o sonstiges] [Benutzer]

dazu suche ich ein shell-script was den
Benutzername abfrage z.B.
aus der /etc/passwd und dann einen
prompt anzeigt wo ich die Beschreibung eintragen kann.

Warum möchtest Du den Benutzernamen aus der /etc/passwd raussuchen? Du kennst doch normalerweise die Benutzernamen. Oder soll eine Massenumbennung stattfinden? Kannst Du vielleicht den Hintergrund deiner Anfrage noch etwas erläutern?

Viele Grüße
Marvin

hallo marvin,
ich möchte alle daemonen gleich benamen und jeden user für sich. sprich die gecos anpassen.

Kennst du dich mit shell scripten aus? Wie ich das bewerkstelligen kann?

Gruss
Marcel

hallo Marcel,

ich möchte alle daemonen gleich benamen und jeden user für
sich. sprich die gecos anpassen.

Alle Dämonen gleich nennen?
Jeden User für sich benennen?
Die User haben doch schon Namen und die Dämonen bzw. Dienste auch, z.B. haldaemon heisst Hardware abstraction layer
Aber gut, Du wirst schon wissen, was Du tun willst.
Die Namen aller, die in der passwd stehen, erhältst Du mit

cut -d: -f1 /etc/passwd

und könntest sie z.B. in einer Schleife an chfn übergeben. Aber offenbar habe ich heute meinen begriffsstutzigen Tag :frowning: Woran liegt es denn noch, möchtest Du eine grafische Oberfläche, hast Du die neuen Bezeichnungen in einer Datei vorliegen oder woran hakt es denn? Wie stellst Du dir ungefähr das Vorgehen bei dieser Aktion vor?

Viele Grüße
Marvin

Hallo Marcel,
da sich über etwas existierendes besser diskutieren lässt, habe ich mal ein kleines Skript geschrieben. Das ist aber weder voll ausgetestet und auf keinen Fall irgendwie benutzerfreundlich. Fehler werden nur registriert und die Eingaben muss man bis zum bitteren Ende durchziehen oder eben mit Ctrl-C abbrechen. Dient also nur zur Illustration.

#!/bin/bash
for USER in $(cut -d: -f1 /etc/passwd)
do
 echo -n "Neuer Name für ${USER}: "
 read NAME
 sudo chfn -f "${NAME}" ${USER}
 if (( $? == 0 ))
 then
 echo "$USER heisst jetzt ${NAME}"
 else
 echo "Fehler beim Umbenennen von ${USER} nach ${NAME}"
 fi 
done

Viele Grüße
Marvin

Hallo Marvin,

vielen vielen Dank für das Script. Aber das Script ändert doch den Benutzernamen oder? Ich möchte aber nur den Kommentar des Benutzers ändern. Z.B.: useraccount = user1 und Kommentar = Max Meier und das Max Meier möchte ich in M. Meier, Freund ändern.

Vielen Dank
Marcel

Hallo Marvin,

das Script ist soweit super geil!!! Aber ich möchte halt nicht den Benutzernamen ändern sondern die Beschreibung es Benutzers z.B.:

marcel:x:1043:100:Marcel:/home/de110147:/bin/bash

soll dann:

marcel:x:1043:100:M Freund;21Jahre:/home/de110147:/bin/bash

heißen.

Vielen Dank

Hallo Marcel,

ich möchte halt nicht
den Benutzernamen ändern sondern die Beschreibung es Benutzers
z.B.:
marcel:x:1043:100:Marcel:/home/de110147:/bin/bash
soll dann:
marcel:x:1043:100:M Freund;21Jahre:/home/de110147:/bin/bash
heißen.

Genau das tut es auch. Im Skript die Ausgabe „$USER heisst jetzt ${NAME}“ ist vielleicht etwas irreführend. Es gibt ja eigentlich zwei „Namen“, einmal der Username, mit dem Du dich anmeldest, also marcel oder mb oder root oder… und das, was Du „Beschreibung des Benutzers“ nennst. Diese Beschreibung ist eigentlich der volle Name des Benutzers, also „Marcel Müller“ oder „Marvin Meier“, und dieser volle Name wird vom Skript geändert.
Um es noch etwas komplizierter zu machen, besteht dieser Teil eigentlich aus fünf Teilen, dem vollen Namen, einer Zimmer-Nr, Tel. Arbeit, Tel. privat und sonstiges. Daher die vielen Kommas bei den realen Benutzern, die andeuten, daß die Felder leer sind, weil das eigentlich keine Rolle mehr spielt oder kaum noch benutzt wird.
Führe das Skript einfach mal aus, und gib bei marcel wie von dir gewünscht

M Freund;21Jahre

ein. Wenn Du dir anschliessend die /etc/passwd betrachtest, siehst Du, daß die betreffende Zeile dann tatsächlich

marcel:x:1043:100:M Freund;21Jahre:/home/de110147:/bin/bash

heisst. Zumindest bei mir funktioniert das.
Aber wie gesagt, ist das Skript nur ein Ansatz, weil manches nicht abgeprüft wird, z.B. dürfen keine Kontrollzeichen, Kommata, Doppelpunkte und Gleichheitszeichen in dem betreffenden Feld vorkommen. Das wird von mir nicht geprüft.
Und zweitens macht das ganze nicht viel Sinn, weil Du eigentlich chfn auch so aufrufen kannst (und auch sollst), um in der passwd die Werte zu ändern.
Gib z.B. mal

chfn marcel

ein (wenn marcel dein Login-Name ist). Probiere das mal aus.

Viele Grüße
Marvin

Hallo Marvin,

super super! Vielen Dank es geht mehr als super!

Grüsse Marcel