Die Programmieraufgabe
Listing 2 schlägt eine Lösung für die Aufgabenstellung aus der Einleitung dieser Titelstrecke in Python vor. Zunächst definiert »def«
die Funktion »createAccount()«
, die sich des Useradd-Kommandos bedient. Dann folgt die Prüfung, ob das Skript als Root läuft (mit »os.getuid()«
. Das eingangs geladene Modul »csv«
ermöglicht den Umgang mit der CSV-Datei, die Zeile 21 einliest. Die Schleife ab Zeile 23 erledigt anschließend die verlangten Prüfungen, ehe »createAccount()«
in Zeile 41 den User anlegt.
Listing 2
aufgabe.py
01 #!/usr/bin/python
03 import csv
04 import sys
05 import os
06 import re
07 import subprocess
08 import pwd
10 def createAccount(username, lastname, firstname):
11 return subprocess.call(['useradd', '-m', username, '-c', '%s, %s' % (lastname, firstname), '-U', '-s', '/bin/bash'])
13 if os.geteuid() != 0:
14 print "You must run this program as root"
15 exit(1)
17 if len(sys.argv) != 2:
18 print "Usage: %s <input.csv>" %
(sys.argv[0])
19 exit(1)
21 input = csv.reader(open(sys.argv[1]))
23 for row in input:
24 if len(row) != 3:
25 print "Line %d: Not enough data" %
input.line_num
26 continue
28 (username, lastname, firstname) = row
30 if not re.match('^[a-z][a-z0-9]+$', username):
31 print "Line %d: Login name must start with a letter, and contain only letters and numbers" % input.line_num
32 continue
34 try:
35 pwd.getpwnam(username)
36 print "Line %d: Account '%s' already exists" % (input.line_num, username)
37 continue;
38 except KeyError:
39 pass
40 createAccount(username, lastname, firstname)
Infos
- Python-FAQ: http://docs.python.org/faq/
- Monty Python: http://de.wikipedia.org/wiki/Monty_Python
- Python-Tutorial: http://python.about.com
- Mod_status«: http://httpd.apache.org/docs/2.0/mod/mod_status.html
- Bash Bashing: http://www.linux-magazin.de/NEWS/In-eigener-Sache-Statt-Boxen-Bundle-Bash-Bashing-zum-Streiten-und-Lieben
- Ipython: http://ipython.org
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 3 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





