Mounten einer Samba / CIFS-Freigabe unter Linux "richtig"

948
ewhac

Das Problem ist, dass ich keine Dateien auf der CIFS-Freigabe abrufen kann, um die korrekten Berechtigungen für den Linux-Client anzuzeigen, ohne vers=1.0die Mount-Optionen zu erzwingen .

Der Server ist ein FreeNAS-System, auf dem Samba 4.7.0 ausgeführt wird. Es läuft grundsätzlich im Standalone / Workgroup-Modus. Es gibt keinen AD / Domain Controller, und ich möchte keinen, wenn ich es vermeiden kann.

Der Client ist ein (instabiles) Debian-Sid-System mit Samba-Komponenten der cifs-utilsVersion 4.7.4 und der Version 6.8-1.

Die aktuelle Beschwörungsformel sieht so aus:

sudo mount.cifs -o 'vers=1.0,username=me,uid=me,gid=me,credentials=[[filename]]' //freenas/me $HOME/mnt 

(Das obige wird normalerweise von autofs ausgeführt, was sich jedoch als nicht relevant herausstellt.)

Sobald dies geschehen ist, erscheint der folgende Eintrag im mtab:

//freenas/me on /home/me/mnt type cifs (rw,relatime,vers=1.0,cache=strict,username=me,domain=,uid=1000,forceuid,gid=1000,forcegid,addr=X.X.X.X,soft,unix,posixpaths,serverino,mapposix,acl,rsize=1048576,wsize=65536,echo_interval=60,actimeo=1) 

... und unser Testverzeichnis wird mit den folgenden Modi / Berechtigungen angezeigt:

me@linuxclient:~$ ls -al mnt/testdir/ total 3 drwxr-xr-x+ 2 me me 0 Apr 21 00:10 . drwxr-xr-x+ 5 me me 0 Apr 21 00:07 .. -r--r--r--+ 1 me me 0 Apr 21 00:09 R--R--R-- -rw-r--r--+ 1 me me 0 Apr 21 00:10 RW-R--R-- -rwx------+ 1 me me 0 Apr 21 00:08 RWX------ -rwxr-xr-x+ 1 me me 0 Apr 21 00:08 RWXR-XR-X -r-xr-xr-x+ 1 me me 0 Apr 21 00:09 R-XR-XR-X 

Genau das erwarte und will ich. Das Mount erzwingt jedoch die SMB-Version 1.0, die alt und kaputt ist. Wenn ich jedoch nicht explizit angeben vers=1.0, geschieht Folgendes:

//freenas/me on /home/me/mnt type cifs (rw,relatime,vers=default,cache=strict,username=me,domain=,uid=1000,forceuid,gid=1000,forcegid,addr=X.X.X.X,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)   me@linuxclient:~$ ls -al mnt/testdir/ total 5120 drwxr-xr-x 2 me me 0 Apr 21 00:10 . drwxr-xr-x 2 me me 0 Apr 21 00:07 .. -rwxr-xr-x 1 me me 0 Apr 21 00:09 R--R--R-- -rwxr-xr-x 1 me me 0 Apr 21 00:10 RW-R--R-- -rwxr-xr-x 1 me me 0 Apr 21 00:08 RWX------ -rwxr-xr-x 1 me me 0 Apr 21 00:08 RWXR-XR-X -rwxr-xr-x 1 me me 0 Apr 21 00:09 R-XR-XR-X 

file_mode=0755,dir_mode=0755In die Mount-Optionen wurde etwas injiziert, und die daraus resultierenden Berechtigungen sind für alle Dateien 0x755, unabhängig von ihren tatsächlichen Berechtigungen, was offensichtlich falsch ist. Ich habe noch nicht herausgefunden, woher diese unerwünschten Optionen kommen.

Da es mein Ziel ist, dass mehrere Benutzer gleichzeitig mit ihren eigenen Anmeldeinformationen eine Verbindung zu ihren eigenen Heimatverzeichnissen herstellen, begann ich mit dieser mountBeschwörung zu experimentieren, insbesondere mit der multiuserOption:

sudo mount.cifs -o "user=me,noperm,multiuser" //freenas/me $HOME/mnt   me@linuxclient:~$ ls -al mnt/testdir/ total 5120 drwxr-xr-x 2 me me 0 Apr 21 00:10 . drwxr-xr-x 2 me me 0 Apr 21 00:07 .. -rwxr-xr-x 1 me me 0 Apr 21 00:09 R--R--R-- -rwxr-xr-x 1 me me 0 Apr 21 00:10 RW-R--R-- -rwxr-xr-x 1 me me 0 Apr 21 00:08 RWX------ -rwxr-xr-x 1 me me 0 Apr 21 00:08 RWXR-XR-X -rwxr-xr-x 1 me me 0 Apr 21 00:09 R-XR-XR-X 

Immer noch falsch. Wenn ich jedoch die Mount-Option hinzufüge cifsacl:

sudo mount.cifs -o "user=me,noperm,multiuser,cifsacl" //freenas/me $HOME/mnt 

Und geben Sie meine Zugangsdaten für den Server über den cifscredsBefehl ein. Ich erhalte folgende Ergebnisse:

//freenas/me on /home/me/mnt type cifs (rw,relatime,vers=default,cache=strict,multiuser,domain=,uid=0,noforceuid,gid=0,noforcegid,addr=X.X.X.X,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,cifsacl,noperm,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)   me@linuxclient:~$ ls -al mnt/testdir/ total 5120 drwxr-xr-x 2 root root 0 Apr 21 00:10 . drwxr-xr-x 2 root root 0 Apr 21 00:07 .. -r--r--r-- 1 root root 0 Apr 21 00:09 R--R--R-- -rw-r--r-- 1 root root 0 Apr 21 00:10 RW-R--R-- -rwx------ 1 root root 0 Apr 21 00:08 RWX------ -rwxr-xr-x 1 root root 0 Apr 21 00:08 RWXR-XR-X -r-xr-xr-x 1 root root 0 Apr 21 00:09 R-XR-XR-X 

Obwohl die Optionen file_mode=0755,dir_mode=0755noch injiziert werden, werden die Berechtigungen jetzt korrekt angezeigt. Aber jetzt sind die UIDs falsch und alles sieht aus, als wäre es im Besitz von root. Ich kann zwar Dateien in der Freigabe erstellen, ändern und löschen, sie erscheinen jedoch als root-Eigentümer. Ich weiß, dass ein Mapping von cifs.idmapund durchgeführt werden soll winbindd, aber ich habe nicht genau herausgefunden, wie das gemacht wird oder wie ich es einrichten kann.

Ich möchte die vers=1.0Kluge lieber nicht weiter benutzen ; Ich würde es vorziehen, das richtig zu machen. Irgendwelche Hinweise, was mir fehlt?

3

0 Antworten auf die Frage