Debian Linux, Netzlaufwerke, Windows Domain

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]"

Schreibe einen Kommentar



error: