Ich habe nur Lesezugriff auf die bereitgestellte NFS-Freigabe.
Permission denied
Wenn auf dem NAS die Option "Keine Squash-Zuordnung" festgelegt ist, erhält der reguläre Ubuntu-Benutzer beim Versuch, cd
in die Freigabe zu gelangen, nur Lesezugriff sudo
.
Mit der Squash-Einstellung "Alle Benutzer dem Administrator zuordnen" kann der reguläre Client-Benutzer cd
nur Lesezugriff auf die Freigabe erhalten. Die Verwendung sudo
erlaubt 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 sudo
aktivierte Schreibzugriff verwendet wird.) Ich kann eine Datei in der bereitgestellten NFS-Freigabe mit öffnen, sudo vi /mnt/nfs/Files/Data/test.file
aber 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
id username
) gehören sie und welche Berechtigungen sind festgelegt?cd
als 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 Clientcd
in den Mount und tunls -n
. Dadurch werden Dateibesitzer und Gruppen mit ihren jeweiligen IDs aufgelistet. Du wirst das wohl damit machen müssensudo
. Fügen Sie Ihrer Frage ein oder zwei Zeilen der Ausgabe hinzu, zusammen mit der Ausgabe vonid
(neinsudo
!). Wenn Siecd
als 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.cd
als 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 undid username
./mnt/nfs/Files
. ObwohlFiles
dieroot
Erlaubnis 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
?Antworten:
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 Richtungroot (uid=0, gid=0)
aufanonuid
undanongid
. Dieses Verhalten kann überschrieben werdenno_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
1026
Berechtigungen 755. Sie sind Benutzer auf dem Clientuid=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 wirdanonuid,anongid
.Fügen Sie die Optionen
all_squash,anonuid=1026,anongid=100
zum 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.
quelle
Tun
showmount -e 10.1.1.214
, um die Exportoptionen zu sehen.Permission denied
Der Fehler kommt vom NFS-Server selbst. Versuchen Sie, die Option vonrw,user,auto
auf zu änderndefaults
.quelle