HSR-Mountscript

Aus alt.comp.hsr
Wechseln zu: Navigation, Suche

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.

Voraussetzungen

python und cifs-utils müssen installiert sein.

Installation

  1. Quellcode kopieren und in einer Datei z.B. im Homeverzeichnis abspeichern, z.B. ~/hsrmount.py
  2. Im Script HSRUSERNAME durch den HSR-Benutzernamen und LOCALUSERNAME durch den Namen des lokalen Linux-Users ersetzen
  3. 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."