ubuntuusers.de

Windows Freigabe für Ubuntu

Status: Gelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

joe2017

Anmeldungsdatum:
24. Juli 2017

Beiträge: 146

Hallo Zusammen,

ich weiß, dass die Version 18.04 noch in der Entwicklung ist. Jedoch handelt es sich hierbei um eine Standard Mount Funktion.

Ich habe folgendes Szenario:

  • Windows Server 2012 R2 (Active Directory)

  • Windows Server 2012 R2 (Feilserver mit Freigabe)

  • Ubuntu 18.04 Desktop

Ich habe meinen Ubuntu Client bereits in die Domäne eingebunden und kann mich mit meinen AD Usern anmelden. Jetzt möchte ich lediglich meine Freigabe von meinem Windows Server mounten.

Mit folgendem Befehl funktioiert dies auch:

sudo mount -t cifs -o user=domainUser,domain=domainName //Server/Freigabe /mount/winshare

Ich möchte jedoch eine Systemweite Freigabe mittels FSTAB bereitstellen. Allerdings möchte ich die jeweilige Authentication vom aktuellen angemeldeten Benutzer für die Anmeldung der Freigabe verwenden ohne diese immer wieder eingeben zu müssen. Meinen Anwendern kann ich aber auch nicht zumuten eine sogenante "credential" Datei anzulegen. Gibt es eine Möglichkeite eine Freigabe automatisch bei der Anmeldung mit dem angemeldeten User/Password zu mounten? So wie das unter Windows standardmäßig funktioniert.

Vielen Dank für eure Hilfe.

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Das sollte wohl über PAM-Mount gehen: Samba Winbind (Abschnitt „PAM-Mount“)

Max-Ulrich_Farber

Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

ch möchte jedoch eine Systemweite Freigabe mittels FSTAB bereitstellen. Allerdings möchte ich die jeweilige Authentication vom aktuellen angemeldeten Benutzer für die Anmeldung der Freigabe verwenden ohne diese immer wieder eingeben zu müssen.

Das kann so leider nicht gehen, weil beim Abarbeiten der Datei fstab noch gar kein Benutzer angemeldet ist.

Ein gangbarer und genau so einfacher Weg ist aber, dass Du eine feste Kombination Username/Passwort verwendest, mit der die Freigabe grundsätzlich per fstab gemountet wird, egal, wer sich danach dann als Benutzer anmeldet. Wenn die cifs UNIX Extensions aktiv sind (UNIX/Linux-Server), werden die Zugriffsrechte ohnehin über die UNIX-Dateirechte auf dem Server festgelegt, unabhängig davon, wer die Freigabe einbindet. Bei einem Windows-Server kannst Du vermutlich entsprechend die Zugriffsrechte über ACLs festlegen. Sollte dies nicht klappen (?), dann kannst Du ja Zugriffsrechte immer noch auf dem Client mit den Mount-Optionen uid=xxx,gid=xxx,file_mode=xxx,dir_mode=xxx so geeignet simulieren, dass die jeweiligen Benutzer entsprechende Rechte haben, auch ohne die Freigabe selbst eingebunden zu haben.

Sollte es aus irgend welchen Gründen trotzdem notwendig sein, dass der aktuell angemeldete User die Freigabe selbst einbindet, so kann dies mit einem Befehl oder Skript unter "Startprogramme" automatisch geschehen. Dort kannst Du für den jeweils angemeldeten Benutzer die Umgebungsvariable $USER verwenden.

Gruß – Max-Ulrich

joe2017

(Themenstarter)

Anmeldungsdatum:
24. Juli 2017

Beiträge: 146

Hallo Max-Ulrich_Farber,

vielen Dank für die Info. Das Mounten hat jetzt funktioniert. Jedoch werden immer die Berechtigungen des Users aus der Credential Datei verwendet. Die Berechtigungen welche im Windows Server für dieverse Gruppen und User vergeben wurden, werden nicht weitergereicht. Evtl. fehlt mir hier in meinem Ubuntu Client noch etwas. Ist es überhaup möglich mit einem Ubuntu Client die Windows Rechte zu lesen und zu verstehen?

Max-Ulrich_Farber

Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

Jedoch werden immer die Berechtigungen des Users aus der Credential Datei verwendet.

Für den Zugriff auf eine Windows-Freigabe gelten primär die im Register "Sicherheit" über ACLs festgelegten Windows-Dateirechte und sekundär dann die im Register "Freigabe" festgelegten Zugriffsrechte. Beides bezieht sich meines Wissens ausschließlich auf den Benutzer, der die Freigabe auf dem Linux-Client einbindet. Ob es eine Möglichkeit gibt, dem Server mitzuteilen, wer dann auf dem Client auf die bereits eingebundene (gemountete) Freigabe zugreift, weiß ich nicht. Bei einem UNIX/Linux-Server sind dies eben die UNIX-Extensions, doch die funktionieren ja bei einem Windows-Server bekanntlich nicht.

Greift man auf dem Client über den Dateimanager bzw über das GVFS auf die Freigabe zu (wie es ja in der Mehrzahl der Fälle geschieht), dann ist dies überhaupt kein Problem, denn dann ist es automatisch der gleiche Benutzer, der einbindet und zugreift. Wenn man die Freigabe jedoch systemweit z.B. über einen Eintrag in fstab einbindet, dann kann es sehr wohl sein, dass es ganz verschiedene Benutzer sind, welche die Freigabe einbinden und dann auf die eingebundene Freigabe zugreifen. Diesen Fall habe ich mit einem Windows-Server noch nicht durchgespielt. Beschrieben findet man sehr viel häufiger die Kombination Linux-Server und Windows-Client.

Wenn meine Vermutung zutrifft, dass man über Samba dem Windows-Server nicht mitteilen kann, wer letztlich auf einem Linux-Client auf eine systemweit eingebundene Freigabe zugreift, dann gibt es wohl nur folgende Möglichkeiten:

  • Man simuliert auf dem Client durch entsprechende Mount-Optionen passende Besitz. und Zugriffsrechte, die dann auf diesem Client (aber nur dort) systemweit gelten, oder

  • man bindet die Freigabe erst nach dem Einloggen des Benutzers, der nachher auf die Freigabe zugreifen möchte, mit dessen Identität ein. Automatisch geht dies über einen Eintrag in "Startprogramme", oder

  • man verwendet zum Einbinden das GVFS, dann stimmen einbindender und zugreifender Benutzer automatisch überein. Dies lässt sich sehr einfach mit dem graphischen Tool Gigolo automatisieren. Der Nachteil, dass beim GVFS keine UNIX-Extensions möglich sind, spielt für einen Windows-Server keine Rolle.

Bei einem größeren Netzwerk wird man ganz anders vorgehen. Da muss der Server als Active Directory Domain Controller (AD-DC) konfiguriert werden, und die Benutzerdaten werden dann mittels Winbind an diesen übermittelt, der sie verwaltet. Das geht dann gleichermaßen für Windows- und Linux-Clients. Doch für ein Heimnetzwerk wäre dies wirklich "mit Kanonen nach Spatzen geschossen".

joe2017

(Themenstarter)

Anmeldungsdatum:
24. Juli 2017

Beiträge: 146

Super und Danke für die ausführliche Antwort!

Dann würde ich die Freigabe am liebsten nach der Anmeldung mit den aktuellen Benutzerinformationen mounten. Jedoch bin ich dann wieder bei meinem Ursrpungsproblem. Ich möchte erstens nicht jedes mal ein Kennwort eingeben und zweitens kann ich keine .credentials Datei mit den Benutzerinformationen anlegen, da ich nicht weiß wer sich anmeldet und wie das Kennwort ist. Gibt es eine Möglichkeit wie bei Microsoft die Freigabe unter einem Benutzer mit den aktuellen Benutzerdaten zu mounten ohne diese angeben zu müssen?

Hierbei handelt es sich nicht um ein privates Netzwerk. Wie zu Beginn geschrieben habe ich bereits ein Windows Active Directory. Ich möchte aktuell lediglich die Ubuntu Clients damit verbinden und auf Freigaben zugreifen können. Die Freigaben sind auf mehreren Windows Serveren. Vielleicht hilft das.

Ich habe die Anbindung an mein AD nicht mit Winbind gemacht. Ich habe dies wie hier beschrieben eingerichtet. http://www.thurnhofer.net/ubuntu-16-04-desktop-an-das-active-directory-anbinden

Übrigens funktionieren die Login Einstellungen nicht mehr wie gewünscht. Früher konnte man die Benutzer noch ausblenden. Aktuell werden bei mir alle Benutzer angezeigt welche sich einmal angemeldet haben. Früher ging das noch wie folgt:

nano /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

greeter-show-manual-login=true
greeter-hide-users=true

Vielleicht weiß das jemand aus dem stehgreif heraus?

Max-Ulrich_Farber

Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

Dann ist alles, was ich geschrieben habe, leider um eine Nummer zu klein. Dann ist wohl tatsächlich PAM-Mount der richtige Weg. Doch damit fehlt mir leider die Erfahrung.

Doch das Passwort-Problem bleibt wohl. Du möchtest also das System-Passwort des Users auf dem Client automatisch auch als dessen Samba-Passwort verwenden? Ich denke nicht, dass es eine einfache Möglichkeit gibt, im Betrieb das System-Passwort zu ermitteln. Sonst hätte man damit ja mittels sudo den Zugang zum gesamten System, und das würde ja allen Sicherheits-Vorstellungen widersprechen!

Gruß – Max-Ulrich

joe2017

(Themenstarter)

Anmeldungsdatum:
24. Juli 2017

Beiträge: 146

Das ist schon richtig. Aber ich möchte es auch eigentlich nicht ermitteln sondern den MOUNT ohne Angabe von Benutzerinformationen mit der derzeigen Anmeldung durchführen. Wie das eben in Windows auch so funktioniert. Hier muss ich auch keinen Bnutzer und Passwort für die Dateifreigabe angeben. Ich spreche somit von einem Single Sign On.

Das muss doch hier auch möglich sein. Wenn ich einen Benutzer für den Mount angebe und dieser für die Berechtigungen verwendet wird, wie kann ich dann entscheiden welcher Benutzer auf welche Ordner zugreifen darf? Es würden ja alle Benutzer von diesem Client mit diesen MOUNT Berechtigungen auf meinen Server zugreifen. Das kann ja nicht sein!?

Trotzdem schon mal vielen Dank und ein schönes Wochenende.

Max-Ulrich_Farber

Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

MOUNT ohne Angabe von Benutzerinformationen mit der derzeigen Anmeldung durchführen

Ob das geht, hängt allein davon ab, wie die Zugriffsrechte für die Freigabe auf dem Windows-Server festgelegt sind. Wenn dort der Zugriff ohne Passwort erlaubt ist, dann gibt es kein Problem. Doch wenn der Server ein Passwort verlangt, dann geht es nicht, weil der Client das Anmelde-Passwort des Benutzers grundsätzlich nicht mitteilt. Dies ist ja der Hauptgrund, warum Samba eine eigene Passwort-Verwaltung hat.

Je nach Zugriffsrechten könnte es genügen, für Freigaben, auf die jeder zugreifen darf, statt der credentials-Datei einfach guest als Mount-Option anzugeben. Das sollte dann sogar in der fstab schon klappen. Als Benutzer wird dann der virtuelle User nobody verwendet. Das GVFS macht dies automatisch, wenn es damit "durchkommt". Wenn dies nicht geht oder wenn der Zugriff persönlich eingeschränkt ist, dann könnte es mit dem Benutzernamen ($USER) und einem leeren Passwort gehen. Doch wenn ein Passwort nötig ist, dann sehe ich keine Möglichkeit.

Wie das eben in Windows auch so funktioniert. Hier muss ich auch keinen Bnutzer und Passwort für die Dateifreigabe angeben

Wird nicht von Windows da automatisch das System-Passwort des Benutzers als Passwort angegeben, also genau das, was Linux grundsätzlich nicht tut?

Gruß – Max-Ulrich

P.S.

Doch, es muss auch dann gehen, und sogar ganz einfach: Jeder Benutzer hat in seinem Heimverzeichnis eine eigene, versteckte und durch den Modus 0600 vor unberechtigtem Zugriff geschützte Credentials-Datei mit seinem Namen und Passwort. Im Mount-Befehl wird nicht der absolute Pfad der Credentials-Datei angegeben, sondern z.B. ~/.credentials. Nach dem Einloggen des Benutzers (also nicht in der fstab, wohl aber in Startprogramme) ist dies zulässig. Dann werden automatisch die Credentials des betreffenden Benutzers verwendet. Fertig.

cflinux

Anmeldungsdatum:
14. Januar 2013

Beiträge: 685

Hallo

Das geht mit Pam-mount dazu muß das Modul libpam-mount nach installiert werden. Die Datei /etc/securitypam_mount.conf.xml bearbeitet werden.

<volume user="Einscränkungen des Zugriffs" server="Server der Freigabe" path="Freigabename" mountpoint="wohin damit" optionen="können noch Optionen mitangeben werden z.B sec=krb5,workgroup=Domainname" />

Damit solltest du bei der Anmeldung diese Freigabe gemountet bekommen, mit deinem Namen und Berechtigungen.

Ich hab's aber noch nie mit einem Windows-Server probiert mangels Möglichkeit, aber mit einem Samba4 als AD-Server funktioniert es.

Gruß cflinux

joe2017

(Themenstarter)

Anmeldungsdatum:
24. Juli 2017

Beiträge: 146

hallo cflinux,

ich bin leider erst heute dazu gekommen das zu testen. Hat bestens funktioniert! Vielen Dank für diesen Gedankenanstoß.

Antworten |