• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

User Datenbank

Psyn schrieb:
[...] nur ist halt die sache, das ich es ja auch verstehen muss [...]
Na, so schwer ist das nicht. Ich kann zwar kein Python, aber die meisten Befehle sind doch selbsterklärend. :wink:
Psyn schrieb:
[...] ist das wirklich bash? [...] kann ich damit nicht weiter arbeiten [...]
Nein. Das ist Python. Wenn du mit dem Script weiterarbeiten willst, solltest du entweder Python lernen (evtl. hat abgdf ein paar Tipps/Links *winkmitZaunpfahl* :D ), oder du schreibst ein Bashscript in das du entweder dieses Pythonscript an entsprechender Stelle einbaust, oder statt dessen awk und grep verwendest.
Anregungen hast du hier genug bekommen.
Damit kannst du zumindest mal einen Versuch starten/posten. :wink:
(Ich helfe gerne weiter, poste hier aber keine Fertiglösung)

Btw: Bitte Ausdrucksweise etwas ändern! :wink:
 
@Psyn:

Also, es ist theoretisch möglich, das Skript zu verstehen, aber ich kann das hier nicht mal eben kurz erklären, denn dazu müßtest Du etwas Python können. Wenn Du willst, kannst Du das hiermit lernen:

http://prdownload.berlios.de/abop-german/byteofpython_120.txt

Hinweise zu weiteren Dokumentationen findest Du hier im Forum:

http://www.linux-club.de/ftopic40403.html
http://www.linux-club.de/ftopic11108-20.html

(Nach "Python" suchen).

Dann würdest Du auch erkennen, daß ich Dir hier keine Fäkalien vorgesetzt habe.

Mein Skript ruft am Ende von Python aus den bash-Befehl "passwd" auf; als root kann man nämlich mit z.B.
Code:
echo mypwd | passwd benutzer --stdin
das Passwort des Benutzers "benutzer" nach "mypwd" ändern (siehe "man passwd").
Der Rest ist allgemeine Datenverarbeitung: Die jeweiligen Werte für "benutzer" werden aus "/etc/passwd" ausgelesen, der Wert für "mypwd" von der Tastatur abgefragt.
Das kann man prinzipiell in jeder Programmiersprache machen. Nur muß man sie dazu halt lernen, das kann ich Dir leider nicht abnehmen.

Viele Grüße
 
Ok,
das hilft mir schonmal sehr weiter,

big thx @ all die hier geholfen haben ^^
Ich meld mich ;)

THX and Greetz
Psyn
 
Hallo,

dann doch nochmal nur in bash:

Code:
#!/bin/bash

a=`grep home /etc/passwd | awk -F ":" '{print $1}'`;

echo
echo "Benutzer mit /home-Eintrag in /etc/passwd:" 
echo

for i in $a; do
echo $i;
done;

echo
echo "Bitte geben Sie das neue Passwort für alle oben genannten Benutzer ein"
echo "(Achtung: Nach Eingabe von RETURN werden alle Passwörter für diese Benutzer ohne weitere Nachfrage geändert !):"
echo

read pwd

for i in $a; do
echo $pwd | passwd $i --stdin
done;

echo

Shellscripting (http://www.tldp.org/linuxfocus/Deutsch/September2001/article216.shtml) fällt mir erstaunlich schwer.
Ich vermisse sowas wie Arrays (aber nicht Zeiger :) ) und habe Mühe mit ` `{} | -- usw. und dem Variablenexpandieren.
Wirklich verstanden habe ich die awk-Geschichte da oben auch nicht (sondern den früheren Postings entnommen), aber immerhin geht es irgendwie.

Viele Grüße
 
abgdf schrieb:
[...]Shellscripting (...) fällt mir erstaunlich schwer.[...]
Dafür sieht es aber ganz gut aus. 8)
abgdf schrieb:
[...]Wirklich verstanden habe ich die awk-Geschichte da oben auch nicht [...]
Eigentlich ganz einfach:
Code:
awk           -> Programmaufruf
-F ":"        -> Option: Doppelpunkt als Trennzeichen
'{print $1}'  -> Anweisung in Hochkommata (wird von der Interpretation der Bash ausgeschlossen)
{print $1}    -> Von 'awk' auszuführender Befehl in Geschweiften Klammern.
print $1      -> Kommando 'print' um den ersten durch den Doppelpunkt abgetrennten String auszugeben.
 
Hallo nochmal,

vielen Dank für die weiteren Erläuterungen zu awk. Ich werde mir das alles mal näher ansehen.

Soweit ich weiß sind die Unix-Tools wie awk, sed etc. seinerzeit in Perl in mächtige Funktionen wie split() eingeflossen. Bei Python wurden dann diese sehr nützlichen Perl-Funktionen übernommen und zugleich einige Dinge vereinfacht (wie etwa das Einbinden anderer Dateien als Module).
Das würde dann also vielleicht doch wieder für Python sprechen. Ich wollte aber eben auch sehen, wie das mit bash und awk zu machen ist.

Übrigens habe ich gerade gelesen, daß es doch auch in bash Arrays gibt ...

Viele Grüße
 
Oben