Einen Linux Client (Debian Arbeitsstation) in eine Windows Domain zu integrieren [net join] ist mit einigem Arbeitsaufwand verbunden. Die verschiedenen OS-Welten (schnell mal so) zu vereinen geht nicht so einfach.
Über die Integration eines Sambaservers im Windows Netzwerk ist vieles zu lesen, umgekehrt die Integration eines Linux Clients in eine Windows Domäne eher weniger, und zum Schluss kam die Erkenntnis “hmm naja ich weiss nicht” 😕
Jedoch geht es zumindest einfach die Netzlaufwerke die man sonst in der Windows Arbeitsstation per Netlogonscript verbindet auch am Linuxclient zu mounten.
Dazu habe ich mir ein Bashscript (netlogon.sh) im Netlogonverzeichniss am Domaincontroller abgelegt, das der Gnome-, Xfce-Desktop beim anmelden am Debian (Squeeze, Wheezy) automatisch startet.
Der Inhalt meines einfach gehaltenen Mount Scripts:
SCRIPT DOWNLOAD: /bin/netlogon.sh
#!/bin/bash # Windows Domain Freigaben am Linux Client mounten (Debian mit Gnome2 oder Xfce) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Vorraussetzungen: # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 1. apt-get install cifs-utils sudo [gnome-terminal oder xfce4-terminal ] # # 2. Dieses Script nach /bin/netlogon.sh und \\%domaincontroller%\netlogon 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 # # 4a.Gnome2 Starter hinzufügen: System -> Einstellungen -> Startprogramme, hinzufügen: # Name: Netlogon Script # Befehl: gnome-terminal --execute /bin/netlogon.sh # Komm.: Netzwerk Mounts # # 4b.Xfce Starter hinzufügen: Einstellungen -> Sitzung und Startverhalten -> Gestartet Anwendungen, hinzufügen: # Name: Netlogon Script # Befehl: xfce4-terminal --execute /bin/netlogon.sh # Komm.: Netzwerk Mounts # # 5. Optional: ".ad" Datei (.smbcredentials) im Homeverzeichnis des Users anlegen # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # P R O G R A M M E # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ ! -f /usr/bin/sudo ] && echo "[sudo] ist nicht installiert !" && exit 1 [ ! -f /bin/cifs ] && echo "[cifs] ist nicht installiert !" && exit 1 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # V A R I A B L E N # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NETLOGONPATH="//Server/netlogon" #//servername/netlogon export linuxuser=$(whoami) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # B E N U T Z E R Z U O R D N U N G E N # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ $linuxuser = "simon" ] && ADUSER="Simon.Nachname" [ $linuxuser = "klaus" ] && ADUSER="Klaus.Nachname" # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 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.10 $(date +"%d.%m.%Y %H:%M")\033[0m" echo "-------------------------------------------------------------------------------" sudo umount -a -t cifs -l echo "Cifs Mounts entfernt.." if [ -f ~/.ad ]; then . $HOME/.ad MUSER="credentials=$HOME/.ad" ADUSER=$username chown $linuxuser:$linuxuser $HOME/.ad && chmod 600 $HOME/.ad echo "Credentials from File.." echo "User: $ADUSER" echo "" else echo -e "\033[1;32mEingabe der ActiveDirectory Benutzerdaten:\033[0m" echo "" if [ -z "$ADUSER" ]; then read -p "Windows Username: " ADUSER else echo "Windows Username:" $ADUSER fi read -s -p "Windows Password: " ADPASS; echo echo "" MUSER="username=$ADUSER,password=$ADPASS" fi # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # F U N C T I O N S # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mounttest () { [ $? -ne 0 ] && echo "Mount fehlgeschlagen !" && exit 1 } replication () { SPOINT=netlogon WSHARE=$NETLOGONPATH [ ! -d ~/$SPOINT ] && mkdir -p ~/$SPOINT sudo mount -t cifs $WSHARE ~/$SPOINT -o $MUSER vor=$(stat -c %Y /bin/netlogon.sh) cp -uf ~/$SPOINT/netlogon.sh /bin nach=$(stat -c %Y /bin/netlogon.sh) [ $vor -lt $nach ] && echo "Script aktualisiert, starte mit Befehl [cifs] das mounten neu" && exit 0 } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # M O U N T S # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #Script vom NETLOGON Verzeichniss kopieren (falls aktueller) replication #Mountparamter GID=`id -G | awk '{print $1}'` MPARAM=uid=$UID,gid=$GID,file_mode=0770,dir_mode=0770 #Home, Dokumente MPOINT=Dokumente WSHARE=//Server/home$/$ADUSER [ ! -d ~/$MPOINT ] && mkdir -p ~/$MPOINT echo "$MPOINT -> $WSHARE" sudo mount -t cifs $WSHARE ~/$MPOINT/ -o $MUSER,$MPARAM mounttest #Bilder MPOINT=Bilder WSHARE=//Server/Internetgalerie/Top05 [ ! -d ~/$MPOINT ] && mkdir -p ~/$MPOINT echo "$MPOINT -> $WSHARE" sudo mount -t cifs $WSHARE ~/$MPOINT/ -o $MUSER,$MPARAM mounttest #Public MPOINT=Public WSHARE=//Server/$MPOINT [ ! -d ~/$MPOINT ] && mkdir -p ~/$MPOINT echo "$MPOINT -> $WSHARE" sudo mount -t cifs $WSHARE ~/$MPOINT/ -o $MUSER,$MPARAM mounttest #Programme MPOINT=Programme WSHARE=//Server/$MPOINT [ ! -d ~/$MPOINT ] && mkdir -p ~/$MPOINT echo "$MPOINT -> $WSHARE" sudo mount -t cifs $WSHARE ~/$MPOINT/ -o $MUSER,$MPARAM mounttest sleep 2 sudo umount ~/$SPOINT && rm -r $SPOINT # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # E N D # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo "" echo "Alle Cifs Mounts aushängen per: [cifs off]"