/etc/shadow bearbeiten und SPEICHERN mit cut (war: expiry date)

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Umpalumpa

Benutzer
Registriert
26. Dez. 2014
Beiträge
57
Reaktionspunkte
0
Punkte
0
Hallo Linux-Experten!

Ich möchte gerne die Datei /etc/shadow bearbeiten, um dort ein Verfallsdatum einzutragen. Zwar komme ich mit einer Kombination von cat und sed sehr einfach an ein evtl. dort verzeichnetes Datum 'ran, aber wie SPEICHERE ich da nur einen Wert hinein??

Eine Zeile in der shadow-Datei hat üblicherweise die FOrm:

Rich (BBCode):
username:$1$Ppdxsfa0$PQ1w5jS9Uf4rbroOZ6qNi.:16314:0:99999:7:::
Mit cut komme ich nun leicht an das Verfallsdatum 'ran:

Rich (BBCode):
cut -d':' -f8 shadow
aber eben nur als AUSGABE. Wie kann ich da einen Wert EINTRAGEN und ABSPEICHERN? Bitte beachten: das muss unbedingt via Script automatisiert geschehen, ein Editor hilft an der Stelle nicht weiter.

Ich hoffe, dass es einfacher geht als:
  1. Datei zeilenweise öffnen
  2. jede Zeile mit sed analysieren und suchen/ersetzen
  3. jede Zeile mit >> in neue Datei shadow.tmp speichern
  4. shadow löschen
  5. shadow.tmp in shadow umbenennen

Danke und Gruß, Umpalumpa
 
Wenn Dir bis morgen niemand ein Shellskript anbietet, schaue ich mir das Thema einmal in Perl an. Sollte damit schnell erledigt sein.
 
Hiermit wird's auf den 31.12.2015 gesetzt.

cp -p /etc/shadow /tmp/shadow
awk -F: '{OFS=":";$8=16800;print $0}' /tmp/shadow >/etc/shadow
 
Kojak (Telly Savalas) würde sagen: "Entzückend". :)
 
Wenn Dir bis morgen niemand ein Shellskript anbietet, schaue ich mir das Thema einmal in Perl an.

Das ist sehr freundlich von dir, aber dieses Problem ist nur ein Steinchen im Mosaik meines "automatischen Benutzer-Managements". Ich schreibe es gerade von Debian-Bash-Script um in ein ash-Script. Zumindest versuche ich es :) Und meine Perl-Kenntnise sind nicht vorhanden bis sehr schlecht ;)

Trotzdem Danke und Gruß,
Umpalumpa
 
Hiermit wird's auf den 31.12.2015 gesetzt.

cp -p /etc/shadow /tmp/shadow
awk -F: '{OFS=":";$8=16800;print $0}' /tmp/shadow >/etc/shadow



Hallo, ich habe mich gerade mal ein wenig mit dem awk-Befehl auseinandergesetzt, das geht ja wirklich prima und einfach damit. Mein Problem habe ich nun folgendermaßen gelöst:

Rich (BBCode):
#!/bin/ash

# zuerst einmal eine Kopie der shadow-Datei anlegen:
cp -p /etc/shadow /etc/tmp_shadow

# Jetzt die neu angelegten User mit Verfallsdatum
# versehen und die Kopie wieder ueber die urspruengliche
# shadow-Datei drueberschreiben:
awk -F: '{OFS=":";
        if ($1 == "user1" || $1 == "user2")
                $8=18728;
        print;
}' /etc/tmp_shadow > /etc/shadow

So werden nur die beiden Benutzer "user1" und "user2" mit einem Verfallsdatum versehen.

Danke für die Hilfe,
Umpalumpa.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat