HSR-Mountscript
Aus alt.comp.hsr
Wie man im Artikel SMB-Shares-Shell sehen kann, können die Samba-Shares mithilfe von smbfs direkt ins Dateisystem eingebunden werden. Wenn dies in einem Bash-Script gemacht wird, wird das Passwort im Klartext gespeichert, was sicherheitstechnisch nicht so toll ist.
Deshalb hier ein Python-Script mit Passwortabfrage ohne Anzeige des Passwords bei der Eingabe.
Inhaltsverzeichnis
Voraussetzungen
python und cifs-utils müssen installiert sein.
Installation
- Quellcode kopieren und in einer Datei z.B. im Homeverzeichnis abspeichern, z.B.
~/hsrmount.py
- Im Script HSRUSERNAME durch den HSR-Benutzernamen und LOCALUSERNAME durch den Namen des lokalen Linux-Users ersetzen
- Ausführ-Berechtigungen setzen:
chmod +x ~/hsrmount.py
Benutzung
Das Script muss mit Root-Berechtigungen ausgeführt werden, beispielsweise mit $ sudo ./hsrmount.py
Script
#!/usr/bin/python # # Simple script to mount shares at HSR # v1.0 (20.09.2010) # # Author: Danilo Bargen <gezuru@gmail.com> # Some code stolen from http://sel.pastebin.com/9kCpmA4y # # License: # # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE # Version 2, December 2004 # # Everyone is permitted to copy and distribute verbatim or modified # copies of this license document, and changing it is allowed as long # as the name is changed. # # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION # # 0. You just DO WHAT THE FUCK YOU WANT TO. ############################ # Set the following options ############################ username = "HSRUSERNAME" # HSR username localuser = "LOCALUSERNAME" # The local user that should have write access to the mounted share server = "vf3.hsr.ch" # Server providing the following shares shares = ["skripte", "tmp", username] # The shares on the server to mount ############## # Main script ############## import getpass, os, sys, subprocess # Check for root permissions if os.getuid(): print "You need root permissions to mount smb shares." sys.exit(0) # Get HSR password password = getpass.getpass("HSR Password: ") try: retval = "" print "" for entry in shares: retval = subprocess.check_call(["mkdir", "-p", "/mnt/%s" % entry]) retval = retval + subprocess.check_call(["mount", "-t", "cifs", "//%s/%s" % (server, entry), "-o", "user=%s,pass=%s" % (username, password), "-o", "uid=%s" % localuser, "/mnt/%s" % entry]) print "Mounted /mnt/%s" % (entry) print "\nDone mounting." except: print "\nAn error occured. Blame the monkeys."