Linuxmuster-client7: nicht benötigte Laufwerke nicht einbinden

Hallo zusammen,

Ich habe den neuen linuxmuster-linuxclient7 installiert. Ich benötige die Laufwerke ISO (R:) und Programs (K:) nicht.
Gibt es eine Möglichkeit, diese nicht einzubinden?

Viele Grüße
Sven

Hi Sven,

Ja, das geht. Am Einfachsten ist es, wenn du auf einem. Windowsclient wie hier beschrieben:
https://docs.linuxmuster.net/de/latest/systemadministration/gpo/gpo.html
Die entsprechenden Laufwerkszuweisungen deaktivierst.

VG, Dorian

Hi Dorian,

ich habe keinen Windows-Client. Kann ich das alternativ auch direkt auf den Server ändern? Ich nehme an in der Datei /var/lib/samba/sysvol/linuxmuster.lan/Policies/\{<Eine UUID>\}/User/Preferences/Drives/Drives.xml? Einfach die entsprechenden Zeilen auskommentier mit <!------- Kommentar-----> oder geht das anders?

Noch eine Frage: wo werden denn die Mount-Options für Samba-Freigaben gesetzt? Ich würde gerne testen, ob die Option x-gvfs-hide funktioniert, um einzelnen Freigaben nicht auf dem Desktop zu zeigen, andere aber schon.

Viele Grüße und vielen Dank
Sven

Der „offizielle“ Weg ist es, im Drive xml-Object die property disabled="1" hinzuzufügen, z.B. so: (1. Zeile ganz am Ende)

        <Drive clsid="{935D1B74-9CB8-4e3c-9914-7DD559B7A417}" name="K:" status="K:" image="2" changed="2018-11-24 14:36:30" uid="{297391D1-F96E-48E5-81B4-01208C4D8E92}" bypassErrors="1" disabled="1">
                <Properties action="U" thisDrive="SHOW" allDrives="NOCHANGE" userName="" path="\\server\default-school\program" label="Programs" persistent="0" useLetter="1" letter="K"/>
        </Drive>

Die sind hardgecoded. Hier:

Aber warum willst du das machen? Shares einzuhängen, die nicht sichtbar sind, ist tatsächlich im Design vorgesehen. Siehe: Mountpoints · linuxmuster/linuxmuster-linuxclient7 Wiki · GitHub
Dafür müsstest du nur ein kurzes Python Script schreiben. Ansonsten ist der vorgesehene Weg immer über die GPO.

Edit:
So ein Script könnte so aussehen (nicht getestet!):

from linuxmusterLinuxclient7 import shares

success, mountpoint = shares.getMountpointOfRemotePath("//server/sysvol", hiddenShare=True, autoMount=True)
print("Success:", success, "Mountpoint:", mountpoint)

VG, Dorian

Hallo Dorian,

vielen Dank für die Einblicke, sie haben mir weitergeholfen. Ich habe aber wieder eine neue Frage: Da wir nur Linux-Client nutzen sind die Laufwerksbezeichungen mit Buchstaben (Tausch (T:)) nicht notwendig/sinnvoll. Ich nehme an, dass diese direkt vom Server kommen, die Funktion(?) getMountPoitOfRemotePath auf dem Client in der o.g. Datei ändert ja nur die „//“ in „“, der Buchstabe selbst ist Teile des remoteFilePath, richtig?
Kann man das auf dem Server ändern? Den Buchstaben selbst bekomme ich weg, nicht aber die Klammer und den Doppelpunkt, in dem ich in der Datei /var/lib/samba/sysvol/linuxmuster.lan/Policies/\{<Eine UUID>\}/User/Preferences/Drives/Drives.xml? bei „letter“ nichts angebe.

Danke an der Stelle übrigens für das tolle Paket, es hat bei mir auf Anhieb funktioniert (Linux Mint MATE 20.2 mit LightDM)

Viele Grüße
Sven

Hi Sven,

Nein, das lässt sich nicht ändern. Die Klammern und der Doppelpunkt sind hier hart gecoded:

Eine Alternative wäre es, alle Laufwerke in der GPO zu deaktivieren und sie stattdessen manuell mit einem eigegen onLogin Script einzubinden. Mit der Funktion shares.mountShare kann man den anzuzeigenden Namen mitgeben.

VG, Dorian

Hallo Dorian,

Wie könnte so ein Skript aussehen? Ich bin da leider etwas unbedarft :slight_smile:
Gruß,
Mathias

Hallo Mathias,

In etwa so (nicht getestet):

from linuxmusterLinuxclient7 import shares

success, mountpoint = shares.mountShare("//server/pfad/zu/einem/share", "einSichtbarereName")

print(success, mountpoint)

success, mountpoint = shares.mountShare("//server/pfad/zu/einem/geheimen/share", "einUnsichtbarerName", True)

print(success, mountpoint)

Das mountet zwei shares:

  • //server/pfad/zu/einem/share nach $HOME/media/einSichtbarerName
  • //server/pfad/zu/einem/geheimen/share nach /srv/samba/$USER/einUnsichtbarerName
    Damit kannst du mal als normal eingeloggter User testen :slight_smile:

VG, Dorian

Hallo Dorian,

der erste Versuch ging schief:
grafik

Auf dem Client in /etc/linuxmuster-linuxclient7/onLogin.d/20_Shares steht bei mir:

#!/bin/bash

from linuxmusterLinuxclient7 import shares
success, mountpoint = shares.mountShare("//server/srv/samba/schools/default-school/share", "Tauschverzeichnisse")
print(success, mountpoint)

Ist das die richtige Stelle für das Skript?
Was habe ich sonst noch so falsch gemacht?
Gruß,
Mathias

Das ist kein Bash, sonder Python :wink:
Also in die erste Zeile statt #!/bin/bash bitte #!/bin/python3 schreiben.
Du kannst das Script auch einfach testen, wenn du schon angemeldet bist, dann gehts schneller:
python3 /pfad/zum/script

VG,
Dorian

Hallo Dorian,

Ups, jetzt klappt’s :slight_smile:
Danke für den Hinweis.
Gruß,
Mathias