Debian Client, CIFS Mounts von Windows Domain

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Simon74
Beiträge: 69
Registriert: 06.10.2009 22:21:07

Debian Client, CIFS Mounts von Windows Domain

Beitrag von Simon74 » 10.04.2012 21:05:22

Hallo,

da ich aus der Windows Welt komme, jedoch zuhause gerne mit Debian spiele, habe (hatte) ich folgendes Problem:

Wie komme ich automatisiert (ohne manuelles mounten) zu meinen Netzlaufwerken (Homeverzeichnis, Grouplaufwerk, usw...) vom Windows Fileserver ?

Am liebsten so wie beim Windows Client, ein automatisiertes Netlogon Script.
Für die Windows Clients habe ich es zentral per VBS Script gelöst, sowas in der Art habe ich nun versucht für meine Debian Clients möglichst einfach nachzustellen,
OHNE das der Debian Client "Domain Mitglied" sein muss (da ich mich hier nicht gegen einen Proxy oder sonst was authentifizieren muss).
  • 1. Es soll ein sichtbares Logonscript Terminalfenster bei Gnome-Anmeldung erscheinen, in dem ich meine Windows Active Directory Anmeldedaten eingeben kann.
    2. Mountpunkte sollten zentral im "netlogon.sh" Script definiert werden
.

Herausgekommen ist nun folgende Lösung, Voraussetzungen stehen im Script als Kommentar:

Code: Alles auswählen

#!/bin/bash
# Netlogon an Windows Domain für Linux Client (Debian Squeeze mit Gnome)

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Vorraussetzungen:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 1. apt-get install cifs-utils
#
# 2. Dieses Script nach /bin/netlogon.sh kopieren
#
# 3. sudo Mountrechte anpassen mit Befehl [visudo], Inhalt hinzufügen (Name anpassen!):
#     simon   ALL=(ALL) ALL
#     simon   ALL=NOPASSWD:/bin/mount
#     simon   ALL=NOPASSWD:/bin/umount
#
# 4. Gnome2 Starter hinzufügen: System -> Einstellungen -> Startprogramme, hinzufügen:
#     Name:   Netlogon Script
#     Befehl: gnome-terminal --execute /bin/netlogon.sh
#     Komm.:  Netzwerk Mounts
#

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# M A I N
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#Symlink, Arguments
[ ! -f "/bin/cifs" ] && sudo ln -s /bin/netlogon.sh /bin/cifs
[ "$1" = "off" ] && sudo umount -a -t cifs -l && echo "Cifs ausgehängt"  && exit 0

clear

echo -e "\033[1;31mNetwork Logonscript für Linux-Clients / V12.4                 $(date +"%d.%m.%Y %H:%M")\033[0m"
echo "-------------------------------------------------------------------------------"
echo ""
echo "Cifs Mount entfernen.."
sudo umount -a -t cifs -l
echo -e "\033[1;32mEingabe der ActiveDirectory Benutzerdaten:\033[0m"
echo ""
read -p "Windows Username: " ADUSER
read -s -p "Windows Password: " ADPASS; echo
echo ""

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# M O U N T S
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Mountparamter
 GID=`id -G | awk '{print $1}'`
 MPARAM=uid=$UID,gid=$GID,file_mode=0770,dir_mode=0770

#Home, Dokumente
 MPOINT=Dokumente
 WSHARE=//srv01/home$/$ADUSER
 [ ! -d ~/$MPOINT ] && mkdir -p ~/$MPOINT
 echo "$MPOINT ->  $WSHARE"
 sudo mount -t cifs $WSHARE ~/$MPOINT/ -o username=$ADUSER,password=$ADPASS,$MPARAM

#Musik
 MPOINT=Musik
 WSHARE=//srv01/MP3
 [ ! -d ~/$MPOINT ] && mkdir -p ~/$MPOINT
 echo "$MPOINT     ->  $WSHARE"
 sudo mount -t cifs $WSHARE ~/$MPOINT/ -o username=$ADUSER,password=$ADPASS,$MPARAM

#Bilder
 MPOINT=Bilder
 WSHARE=//srv01/Internetgalerie/Top05
 [ ! -d ~/$MPOINT ] && mkdir -p ~/$MPOINT
 echo "$MPOINT    ->  $WSHARE"
 sudo mount -t cifs $WSHARE ~/$MPOINT/ -o username=$ADUSER,password=$ADPASS,$MPARAM

#Gruppenordner
 MPOINT=Intern
 WSHARE=//srv01/$MPOINT
 [ ! -d ~/$MPOINT ] && mkdir -p ~/$MPOINT
 echo "$MPOINT     ->  $WSHARE"
 sudo mount -t cifs $WSHARE ~/$MPOINT/ -o username=$ADUSER,password=$ADPASS,$MPARAM

#Buecher
 MPOINT=Buecher
 WSHARE=//srv01/$MPOINT
 [ ! -d ~/$MPOINT ] && mkdir -p ~/$MPOINT
 echo "$MPOINT   ->  $WSHARE"
 sudo mount -t cifs $WSHARE ~/$MPOINT/ -o username=$ADUSER,password=$ADPASS,$MPARAM

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# SCRIPT REPLICATION
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#NETLOGON
 MPOINT=netlogon
 WSHARE=//srv01/netlogon
 [ ! -d ~/$MPOINT ] && mkdir -p ~/$MPOINT
 sudo mount -t cifs $WSHARE ~/$MPOINT -o username=$ADUSER,password=$ADPASS
 cp -f ~/$MPOINT/netlogon.sh /bin
 sudo umount ~/$MPOINT
 echo "Script repliziert."

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# E N D
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo ""
echo "Alle Cifs Mounts aushängen per: [cifs off]"
read -p "Drücke [Enter] zum beenden.."


Würde mich über Echo freuen, was und vor allem wie man es noch einfacher bzw. besser machen könnte ! :D
Zuletzt geändert von Simon74 am 11.04.2012 22:51:50, insgesamt 1-mal geändert.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: [Beispiele] Debian Client, CIFS Mounts von Windows Domai

Beitrag von Cae » 10.04.2012 21:38:35

Simon74 hat geschrieben:

Code: Alles auswählen

#     ALL ALL=NOPASSWD:/bin/mount
Das ist nicht die beste Idee, da nun jeder zum Beispiel seinen ext2-USB-Stick mounten kann, auf dem eine SetUID-Version der Bash mit root:root liegt… Imho ist mount eh nur ein Wrapper für mount.ext3, mount.foo, etc., also sollte in der sudoers genau der endgültige Befehl stehen. Also smbmount o.ä., ich habe hier keine Windows-Shares, keine Ahnung, wie das Ding heißt. Noch besser: genau die passende Zeile für jeden Mount in die sudoers schreiben.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Simon74
Beiträge: 69
Registriert: 06.10.2009 22:21:07

Re: Debian Client, CIFS Mounts von Windows Domain

Beitrag von Simon74 » 11.04.2012 22:56:29

Danke CAE für den Sicherheitshinweis.
Es ginge natürlich auch ganz ohne die Bearbeitung durch [visudo], aber dann müsste zusätzlich zu den Windows Logindaten nochmals das Linux-Password eingegeben werden. Werde mich nochmals mit dem Thema beschäftigen. Habe es im 1. Post angepasst bzw. auf den eigenen Loginaccount eingeschränkt.

Antworten