Wie kann ich Lese- / Schreibzugriff auf die NFS-Freigabe von Synology NAS erhalten?

11

Ich habe nur Lesezugriff auf die bereitgestellte NFS-Freigabe.

Permission deniedWenn auf dem NAS die Option "Keine Squash-Zuordnung" festgelegt ist, erhält der reguläre Ubuntu-Benutzer beim Versuch, cdin die Freigabe zu gelangen, nur Lesezugriff sudo.
Mit der Squash-Einstellung "Alle Benutzer dem Administrator zuordnen" kann der reguläre Client-Benutzer cdnur Lesezugriff auf die Freigabe erhalten. Die Verwendung sudoerlaubt kein Schreiben.


Synology NAS:
DS214> id username
uid=1026(username) gid=100(users) groups=100(users),101(administration)

kein Squash (kein Mapping)
DS214> cat /etc/exports
/volume1/Files 10.1.1.2(rw,async,no_wdelay,no_root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)

all squash (ordne alle Benutzer dem Administrator zu)
DS214> cat /etc/exports
/volume1/Files 10.1.1.2(rw,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=1024,anongid=100)

Ubuntu-Client:
$ cat /etc/fstab
10.1.1.214:/volume1/Files /mnt/nfs/Files nfs rw,user,auto 0 0

$ id username
uid=1000 gid=1000(username) groups=1000(username), <etc>

$ ls -n /mnt/nfs
drwxrwxrwx 9 0 0 4096 Sep 25 01:28 Files

$ ls -n /mnt/nfs/Files
drwxr-xr-x 11 1026 100 4096 Sep 24 22:05 Data


(Ich habe ursprünglich fälschlicherweise angegeben, dass der sudoaktivierte Schreibzugriff verwendet wird.) Ich kann eine Datei in der bereitgestellten NFS-Freigabe mit öffnen, sudo vi /mnt/nfs/Files/Data/test.fileaber die Änderungen in die Datei auch mit nicht schreiben sudo. Die vi-Fehlermeldung beim :w!Befehl lautet:
"test.file" E212: Can't open file for writing

Marsilea
quelle
NFS überprüft die Zugriffsberechtigungen anhand von Benutzer-IDs (UIDs). Die UID des Benutzers auf Ihrem lokalen Computer muss mit der UID des Eigentümers der Dateien übereinstimmen, auf die Sie auf dem Server zugreifen möchten . Gehen Sie zum Server und sehen Sie sich die Dateiberechtigungen an. Zu welcher UID (herausfinden mit id username) gehören sie und welche Berechtigungen sind festgelegt?
Nephente
Können Sie sogar cdals normaler Benutzer in die Montierung? Wenn ja, schlage ich Folgendes vor. Gehen Sie wie folgt vor, um meinen Verdacht zu bestätigen oder zu widerlegen: Auf dem Client cdin den Mount und tun ls -n. Dadurch werden Dateibesitzer und Gruppen mit ihren jeweiligen IDs aufgelistet. Du wirst das wohl damit machen müssen sudo. Fügen Sie Ihrer Frage ein oder zwei Zeilen der Ausgabe hinzu, zusammen mit der Ausgabe von id (nein sudo!). Wenn Sie cdals regulärer Benutzer nicht einmal zum Mount gelangen können, müssen Sie die Berechtigungen des Verzeichnisses überprüfen, in das Sie exportieren der Kellner.
Nephente
Ich konnte cdals normaler Benutzer nicht in die Montierung einsteigen. Die Verwendung von Squash auf dem Server zum Erzwingen von Berechtigungen dient als vorübergehende Korrektur zum Erteilen von Berechtigungen. Untersuchen von Serverberechtigungen und id username.
Marsilea
Vielen Dank, ich denke, es wäre besser, nfs auf die richtige Art und Weise zu verwenden, als nur brutale Gewalt mit Squash: 'Alle Benutzer dem Administrator
zuordnen
Es hängt davon ab, ob. Vertrauen Sie Kunden und Benutzern? Wenn Sie dies nicht tun, ist NFSv3 schließlich nicht geeignet, da jeder, der Root-Zugriff auf einen Client hat, UIDs fälschen kann. Wenn Sie eine ordnungsgemäße Authentifizierung benötigen, sollten Sie SMB verwenden. Für die Authentifizierung mit NFSv4 muss ein Kerberos ausgeführt werden, was ziemlich kompliziert ist. Trotzdem verwirrt mich Ihre Ausgabe ... Ich nehme an, der Einhängepunkt ist /mnt/nfs/Files. Obwohl Filesdie rootErlaubnis dazu gehört , darf jeder etwas tun. Für mich macht es keinen Sinn, warum Sie als Benutzer Probleme haben, dieses Verzeichnis einzugeben. Vielleicht die entsprechende Zeile von posten /etc/exports?
Nephente

Antworten:

11

NFSv2 / 3 verarbeitet Berechtigungen ausschließlich basierend auf UID und GID. Dateiberechtigungen auf dem Server werden mit Benutzer- und Gruppen-IDs auf dem Client abgeglichen. Aus diesem Grund ist NFSv <4 in Umgebungen, in denen Benutzer Root-Zugriff auf die Client-Computer haben, von Natur aus unsicher. UID-Spoofing ist in diesem Fall trivial.

Beachten Sie, dass NFSv4 die Client- und Benutzerauthentifizierung über Kerberos5 bietet. Wenn eine Authentifizierung mit Benutzername und Kennwort erforderlich ist, ist es oft viel einfacher, auf Samba (SMB / CIFS) zurückzugreifen, anstatt ein Kerberos einzurichten, selbst in reinen Linux-Umgebungen.

Um zumindest verhindern Eskalation der Root - Rechte sind NFS - Shares standardmäßig mit der Option exportiert root_squash, die alle Client - Anfrage Karte wird aus Richtung root (uid=0, gid=0)auf anonuidund anongid. Dieses Verhalten kann überschrieben werden no_root_squash, indem Root-Zugriff auf den Export gewährt wird.

Hier sehen wir einen weiteren Nachteil. Um ordnungsgemäß zu funktionieren, müssen Sie für NFS grundsätzlich auf allen Computern dieselbe UID / GID haben. Die Dateien, auf die Sie zugreifen möchten, gehören zu den 1026Berechtigungen 755. Sie sind Benutzer auf dem Client uid=1000. Die GIDs stimmen auch nicht überein, sodass Sie nur Weltberechtigungen erhalten. Daher kein Schreibzugriff.

Um dies zu beheben, können Sie eines von mehreren Dingen tun:

  • Ändern Sie auf dem NAS den Eigentümer der Dateien in 1000. Möglicherweise müssen Sie dieses bestimmte Konto erstellen. Wie sich dies auf andere Dienste auswirkt, kann ich nicht sagen.

  • Ändern Sie die UID Ihres lokalen Benutzers in 1026.

  • Da Sie der einzige sind, der auf die Dateien auf dem Server zugreift, können Sie den Server so tun lassen, als ob alle Anforderungen von der richtigen UID stammen. Dafür hat NFS die Option all_squash. Es weist den Server an, alle Anforderungen dem anonymen Benutzer zuzuordnen, der von angegeben wird anonuid,anongid.

    Fügen Sie die Optionen all_squash,anonuid=1026,anongid=100zum Export in hinzu /etc/exports.

Seien Sie jedoch vorsichtig , da dadurch jeder , der den Export bereitstellt, effektiv zum Eigentümer dieser Dateien wird!

Wenn Sie Ihr Netzwerk mit Personen und deren Kunden teilen, denen Sie nicht völlig vertrauen, um mit Ihren Dateien keinen Unfug zu treiben, sollten Sie sich unbedingt mit einer Methode zum Filesharing befassen, die Authentifizierung bietet. Meiner Meinung nach ist Samba der einfachste Weg, dies zu erreichen.

Nephente
quelle
Ich habe mich für NFS entschieden, weil ich dachte, es könnte Vorteile für Linux zu Linux haben, da ich den NAS per Rsync auf einem externen USB-Laufwerk auf dem Ubuntu-Client sichern möchte (das DSM-System von Synology bietet keine Synchronisierung mit USB-Laufwerk). unter Beibehaltung des Besitzes und der Berechtigungsinformationen der Datei. Eine gründliche Antwort und vielen Dank für die Anleitung.
Marsilea
0

Tun showmount -e 10.1.1.214, um die Exportoptionen zu sehen. Permission deniedDer Fehler kommt vom NFS-Server selbst. Versuchen Sie, die Option von rw,user,autoauf zu ändern defaults.

Muhammad Aizuddin
quelle