Befehl Chage ---> für alle User aufeinmal ???

Post Reply
Message
Author
spufy

Befehl Chage ---> für alle User aufeinmal ???

#1 Post by spufy »

Tag @ all,

hab ein System mit 1000 Usern, ich möchte, dass sich diese User nach 30 Tagen bzw. gleich nach neuanmeldung ihr passwort ändern.
(chage -M 30 -d 0 "username")
Wie kann ich diese Befehl für alle User aufeinmal absetzen ??? Danke schon mal im voraus

Spufy

Chris

Re: Befehl Chage ---> für alle User aufeinmal ???

#2 Post by Chris »

Hi!

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
while read line; do
user=`echo $line | cut -f1 -d:`
chage -M 30 -d 0 $user
done < /etc/passwd
</font><hr></pre></blockquote>

Gruß
Chris

spufy

Re: Befehl Chage ---> für alle User aufeinmal ???

#3 Post by spufy »

Thx, werde ich morgen gleich ausprobieren ...

Spufy

spufy

Re: Befehl Chage ---> für alle User aufeinmal ???

#4 Post by spufy »

Hi,

leider Funzt der Skript nicht ???
Es kommt immer die Fehlermeldung: "bash readline command not found"
Kann mir mal jemand helfen ???
THX

Spufy

panthera

Re: Befehl Chage ---> für alle User aufeinmal ???

#5 Post by panthera »

for i in `seq 1 1000`; do chage -M 3- -d 0 $i; done

...und die uids anpassen (z.b. 500-1500) ;)

Chris

Re: Befehl Chage ---> für alle User aufeinmal ???

#6 Post by Chris »

Hi!

"read line" != "readline"

Aber die Lösung von panthera ist besser da du die UIDs dort festlegen kannst. Mir war der seq-Befehl bislang unbekannt...


Gruß
Chris

spufy

Re: Befehl Chage ---> für alle User aufeinmal ???

#7 Post by spufy »

Kannst du mir mal die Lösung von panthera schritt für schritt erklären ???
Danke schon mal im voraus

Spufy

Chris

Re: Befehl Chage ---> für alle User aufeinmal ???

#8 Post by Chris »

Hi!

Ist eigentlich nicht's besonderes:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
# Schleife, die von 1 - 1000 zaehlt (`seq 1 1000` ist identisch mit "1 2 3 4 5 6 ... 998 999 1000")
for i in `seq 1 1000`; do
# Das Kommando dürfte dir bekannt sein... $i wird ersetzt durch den Wert aus der for-Schleife
chage -M 3- -d 0 $i
# ...weiter geht's mit der for-Schleife...
done
</font><hr></pre></blockquote>

Gruß
Chris

spufy

Re: Befehl Chage ---> für alle User aufeinmal ???

#9 Post by spufy »

Hi,

danke...
Aber, jetzt verstehe ich, diese seq 1 bis 1000 sollen meine User sein, oder ?
Mein problem ist, es kommen, ja immer wieder user bzw. gehen welche. Also es sind nicht immer 1000 user, sondern es variert, kann ich da vielleicht dynamisch machen ???

gruß

Spufy

Drake

Re: Befehl Chage ---> für alle User aufeinmal ???

#10 Post by Drake »

Du solltest vor allem Aufpassen, das Du root und andere "system" benutzer nicht anfasst. Da vermutlich "regulaere" Benutzer ab einer bestimmten UID anfangen (sagen wir mal 1000) macht eine Kombination aus beiden evtl. Sinn

---
#!/bin/sh
while read line; do
if [ "`echo ${line} | cut -d ":" -f 3`" -ge "1000" ]; then
user=`echo ${line} | cut -f 1 -d ":"`
chage -M 30 -d 0 ${user}
fi
done < /etc/passwd
---

Liest die Datei /etc/passwd Zeile fuer Zeile ein und prueft, ob die UID groesser ist als 1000. Wenn dem so ist, dann wird der chage Befehl ausgefuehrt. Damit hast Du ein "open End" und es ist egal, wieviele Benutzer mit welcher ID Du auf dem System hast. Hauptsache, Du legst keine Benutzer unterhalb eines bestimmten Schwellwertes an.

Max

Re: Befehl Chage ---> für alle User aufeinmal ???

#11 Post by Max »

warum passt du nicht dein Skript an mit dem User angelegt werden?
Dann ist das eine einmalige Sache...

Gruß Max

Chris

Re: Befehl Chage ---> für alle User aufeinmal ???

#12 Post by Chris »

@max:

Hi!

Weil er dann die bestehenden 1000 User immer noch nicht geändert hat...


Gruß
Chris

Max

Re: Befehl Chage ---> für alle User aufeinmal ???

#13 Post by Max »

sorry, natürlich nachdem er mit dem Einzeiler alle angepasst hat.
Meine Antwort war bezogen auf das Posting von Spufy.
<blockquote><hr>
Mein problem ist, es kommen, ja immer wieder user bzw. gehen welche. Also es sind nicht immer 1000 user, sondern es variert, kann ich da vielleicht dynamisch machen ???
<hr></blockquote>

Gruß Max

Post Reply