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

Empfehlung einer Programmiersprache

Hakam

Newbie
Hallo an Alle!
Ich möchte mir selbst eine Linux-Benutzerverwaltung schreiben. Dabei - so weit ich das beurteilen kann - muss man des öfteren auf Informationen aus Textdateien des Systems zugreifen (z.B. passwd oder group o.ä.). Um solche Informationen zu separieren (z.B. lediglich die Namen der Benutzer einer bestimmten Hauptgruppe) benötigt man Befehle zur Textmanipulation. Diese scheinen in der Shell-Programmierung nicht ausreichend verfügbar.
Mit welcher Programmiersprache kann ich solche Anforderungen abdecken? Woher kann ich eine entsprechende Entwicklungsumgebung beziehen und ist auch eine gute deutsche Dokumentation dabei?
Vielen Dank für einen guten Ratschlag!
Haka

Gibt es auch gute Einsteiger-Übungen im WWW?
 

nbkr

Guru
Perl ist die klassische Antwort wenn es um die Verarbeitung von Zeichenketten geht.

Persönlich würde ich aber Python empfehlen, da Perl Quellcode doch schnell unübersichtlich wird. Zu Python gibts genug Literatur im Netz. Die Homepage http://www.python.org/
 
Das was Du willst, geht auch mit Shell-Mitteln. Sieht halt nicht so toll aus, ist relativ umständlich etc. pp.
Ich würde Perl verwenden. Dazu gibt es massig Infos im Netz und sehr wahrscheinlich gibt's auch irgendwo im CTAN das, was Du selber machen möchtest ;-).
 

gameboy

Hacker
Um das Stimmenverhältnis zwischen Python und Perl wieder auszugleichen, schließe ich mich der Empfehlung an, Perl zu nehmen... :)

Im Ernst: Perl ist für solche Aufgaben (String-/Dateimanipulation) wirkilch sehr gut geeignet. Es ist zwar richtig, daß man in Perl extrem unlesbaren/unübersichtlichen Code produzieren kann - das muß aber nicht zwangsläufig so sein. Letztlich hat es der jeweilige Entwickler selbst in der Hand, wie er seinen Code gestaltet. Und mit einer entsprechenden Portion gutem Willen ist es durchaus auch in Perl möglich, seinen Code vernünftig zu strukturieren (z.B. durch das Zerlegen komplexer regulärer Ausdrücke in Teilausdrücke, sprechende Variablennamen, sinnvolle Kommentare, etc.).

Allerdings ist das natürlich ein hochgradig subjektives Thema. Insofern das oben gesagte bitte nur als meine persönliche Meinung auffassen.

Viele Grüße,
gameboy.
 

TeXpert

Guru
leute, ernsthaft. Warum zum Henker will man für eine Nutzer-Verwaltung die Files manuell patchen?

Schreib eine schönes Klick-und-Weg Frontend für die Commandline-Tools (adduser, useradd, etc.... und wie sie bei den einzelnen Distris alle heißen)

das parsen der /etc/passwd um die verfügbaren Namen anzuzeigen ist mit keiner Sprache die grundlegende RegExes versteht ein Problem.

(BTW: ich verstehe den Sinn einer 101-ten Nutzerverwaltung nicht...)
 

PNS-Richi

Member
Wenn du VB kannst oder ein andere Basic Programmiersprache kannst du das über Gambas lösen.

Kann viel und ist wie VB. Gefällt mir persönlich besser. Damit kannst du schnell und einfach Komplexe Programme programmieren.

lg Richi
 
OP
H

Hakam

Newbie
TeXpert schrieb:
leute, ernsthaft. Warum zum Henker will man für eine Nutzer-Verwaltung die Files manuell patchen?

Schreib eine schönes Klick-und-Weg Frontend für die Commandline-Tools (adduser, useradd, etc.... und wie sie bei den einzelnen Distris alle heißen)

das parsen der /etc/passwd um die verfügbaren Namen anzuzeigen ist mit keiner Sprache die grundlegende RegExes versteht ein Problem.

(BTW: ich verstehe den Sinn einer 101-ten Nutzerverwaltung nicht...)

Nun. Man lernt dabei Linux nachhaltiger, wenn man's vorher noch nicht konnte und man bringt in Erfahrung, welche mit welcher Sprache man sich eventuell nützliche Tools schreiben kann. Beim Verwalten eines großen Betriebes kann man sich so auch ganz auf den Betrieb abgestimmte Automatismen codieren, oder nicht?
Apropos: Gibt es in Perl die Möglichkeit, useradd & Co. zu nutzen, oder stellt Perl selbst solche Befehle bereit?
Gruß Haka (Linux und Perl-Amateur und Anfänger, erst seit 2 Wochen dabei!)
 

TeXpert

Guru
Hakam schrieb:
Apropos: Gibt es in Perl die Möglichkeit, useradd & Co. zu nutzen, oder stellt Perl selbst solche Befehle bereit?
Gruß Haka (Linux und Perl-Amateur und Anfänger, erst seit 2 Wochen dabei!)

Du kannst jeden Shellbefehl ausführen -> denke an den passenden Kontext
 
Letztendlich kommt es darauf an, wie anspruchsvoll die Benutzerverwaltung sein soll. Bei meinem für large userbases (Schulen, Unis) entworfenem Vitalnix griff ich nach 4 Jahren Perl-Maintenance zu einem Rewrite in C, weil's da halt doch etwas schneller geht. Und "useradd" wird da auch nicht aufgerufen, weil das für jeden hinzugefügten User die Passwortdateien sperrt und entsperrt und immer ein neuer Prozess erstellt wird - stattdessen mache ich das in einem Rutsch (also /etc/passwd lesen, sperren, 1000 User "im RAM" hinzufügen, RAM zu disk flushen und fertig).
 

TeXpert

Guru
jengelh schrieb:
Letztendlich kommt es darauf an, wie anspruchsvoll die Benutzerverwaltung sein soll.

naja, wenns darum geht hin und wieder mal 1000 Benutzer hinzuzufügen oder zu löschen, dann würde ich aber mal über Alternativen (LDAP) nachdenken...

ansonsten, Zustimmung dass dann die "normalen" Scripte etwas länger laufen ;) aber bei einem Coding-Einsteiger hab ich mir erlaubt, zu behaupten, dass es sich um n-Nutzer (n < 10) handelt ;)
 
Oben