Thema: Mounten von Laufwerken im Netzwerk

Das Mounten von Laufwerkes ist in den verschiedensten Blog und Anleitungen schon weitgehendst erschöpfend erörtert worden. Was ich hier nun zeigen will, wie man praktisch das Wissen in einem kleines selbst geschriebenen Skript  umsetzt.
Es ärgerte mich immer, das wenn die entsprechenden Shares in der Datei ‚/etc/fstab/‚ eingetragen sind und ich mit dem Laptop ‚on the road‘ war, das Booten des Rechners immer so verhältnismäßig lange dauerte. Auch war ich einfach zu faul die Shares jedes Mal über den ‚nautilus‚ zu mounten und/oder den ‚Umount‘ als „admin“ durchzuführen. Das Brausen durch das gesamte Netzwerk kann sich unter bestimmten Umständen auch als recht nervig erweisen.
Also was nun bzw. was ist jetzt tun?

Unter Windows hätte ich mir einfach ein Script bzw. „batch-job“ geschrieben ( net use …), aber ich bewegte mich hier in Linux auf einem noch unbekannten Terrain. Programmieren ist für mich nichts Neues, hatte ich doch von Pascal, C, Cobol und diversen anderen Programmiersprachen jede Menge „Codezeilen“ auf die EDV losgelassen. Eigentlich sollte das Programmieren unter Linux (./bash) sich nicht wesentlich von dem Scripting unter Windows unterscheiden.
Man muss sich beim Entwickeln mit einer „Scriptsprache“ eben konsequent an bestimmte Regularien halten.
Gesagt … getan und schon war das erste Programm so im groben Stil fertig (geschnitzt).

Das erste Scriptversuch konnte ‚mount‘ und ‚umount‘ mittels einem „Klick“ auf ein Desktopsymbol durchführen. Es war nur das Einbinden einer einzelnen ‚Share‘ möglich, auch gab es nur ein paar dürftige Fehlermeldungen. Die ersten Schritte waren getan und meine Neugier (Ehrgeiz) erwachte.
Das Programm heißt in der Version 1.0:
mount   = > netdrive_on_off on
umount => netdrive_on_off off



Es folgte sehr bald die Version 2.0.
Hier machte ich meine erste Erfahrung in einem bash-Script, Informationen in andere Dateien aus zu lagern, gleich dem Prinzip von“include-Dateien“ wie es in  C üblich ist. Zugleich änderte sich der Name des Scripts von netdrive_on_off in netlog.
Durch das Auslagern von bestimmten Informationen erhielt das Script eine gewisse Übersichtlichkeit (Strukturierung).
Ablaufplan



Das Programm in der einfachsten Form, hat aber den Vorteil großen, das es über ein Symbol auf den Desktop gestartet oder gestoppt werden kann.

Es ist zwar recht nett und professionell aus das Programm über ein Terminal-Fenster zu starten, aber im Prinzip ist es doch besser, wenn man mit einer graphisches Oberfläche arbeitet, auch dieses Programm über ein Desktop-Symbol zustarten und zu stoppen. Ferner zeigte sich die Notwendigkeit, das Programm so flexible zu machen, das es sich auch in anderen Netzwerken mit kleinen Änderungen an einer zentralen Stelle verwenden lässt. Zumal sollte es möglich sein, mehrere Laufwerke (Max 9) mit dem Programm bequem zu „mounten“ und auch wieder zu „umounten“.

So kam es zur Weiterentwicklung zu einer 3.1 Version.
1. Vorbereitende Maßnahmen

Sind folgende Programme installiert:
1.1. sudo apt install nmap
1.2. sudo apt install nfs-common
1.3. sudo apt install xterm

2. Installations Maßnahmen

2.1. Verzeichnis anlegen: „/opt/netlogon“
2.2. eine Gruppe anlegen:  „addgroup netlogon“ und

wiki: addgroup [option] gruppenname

„Mit -g gid als Option wird der numerische Wert für die Gruppen-ID angegeben. Dieser Wert muss einmalig sein, außer es wird noch die Option -o nachgestellt. Die gid darf nicht negativ sein. Standardmäßig wird der kleinste Wert verwendet, der größer als 99 und alle bisherigen Gruppen-IDs ist. Werte zwischen 0 und 99 werden üblicherweise für Systemgruppen reserviert.“
Links:
http://www.computerhope.com/unix/groupadd.htm
https://wiki.ubuntuusers.de/Benutzer_und_Gruppen/

 

2.3. „adduser netlogon“
2.4. „/etc/sudeors“ um folgende Einträge ergänzen:

#### Selbstangelegte Rechte ####
%netlog ALL=NOPASSWD: /bin/mount
%netlog ALL=NOPASSWD: /bin/umount

2.5. Entpacken der Datei netlog_vers.3.1.zip in das Verzeichnis:          „/opt/netlogon“

2.5.1 „sudo unzip netlog_vers.3.1.zip -d /opt/netlogon“

Die 2 Dateien:
NetOn.desktop
NetOff.desktop
auf den Desktop kopieren, wenn dieses gewünscht wird.

2.5.2  Vergabe der Zugriffsrechte

Soll nur der „root“ die Möglickeit haben das Programm zu ändern?

JA:
Alle Dateien im Verzeichniss „netlogon“ kommen in die
Gruppe von „netlogon“:
„sudo chown -Rc root:netlogon netlogon“ -> Gruppe
„chmod 755 *.sh“
Auswikung:
Der Anwender kann nur die beiden Programme „NetOn“ und „NetOff“ auf dem Desktop aufrufen bzw. das was hinter dem Startscript steht.
Er kann nicht die Option „netlog.sh -r  oder netlog.sh on -d“ korrekt ausführen!

Nein:
Alle Dateien im Verzeichniss „netlogon“ kommen in die
Gruppe von „netlogon“:
„sudo chown -cR <username>:netlogon /opt/netlogon“
„chmod 755 *.sh“

Anmerkung: <username> = $USER

Es muss noch folgendes kl. Problem gelöst werden:
Die Passwörter von den jeweiligen Netzwerkverbindungen werden im Klartext in der der Datei „dialogmodus.dat“ abgelegt. Es gibt keine Möglichkeit das Recht dem $USER in diese Datei schreiben, ohne das er sich diese Datei auch ansehen darf. Erschwerend kommt noch dazu, das dieser Datei mit der Option „-r“ gelöscht wird und erst mit der Option „on“ wieder neu angelegt wird.
Anmerkung: Hier muss ich zur Not noch mal Hirnschmalz verwenden, es kann sein das die hier ein ganz neuer Ansatz verwendet werden muss!
NotLösung:
„chmod 220 dialogmodus.dat“

Scripte:

netdrive vers. 1.0
netlog vers. 2.0
netlog vers. 3.1