Ich habe eine Synology NAS-Box (mit DSM 5.1) und habe ein Verzeichnis über NFS exportiert. Ich versuche es auf meiner Ubuntu-Box zu mounten.
Meistens funktioniert es einwandfrei, aber ich habe Probleme mit Benutzer- und Gruppenzuordnungen. Auf der Ubuntu-Box bin ich UID 1000 (Roger), GID 1000 (Roger). Auf der Synology habe ich UID 1026 (Roger), Gruppe 100 (Benutzer).
Wenn ich NFSv3 verwende, werden numerische uid / gid-Werte verwendet, was bedeutet, dass der Besitz der Synology durcheinander gebracht wird.
Wenn ich jemals von derselben Ubuntu-Box mit demselben Benutzer auf den NFS-Mount zugreifen würde, wäre dies in Ordnung, aber ich greife auch von einer Windows-Box mit CIFS (SMB) auf das Verzeichnis zu, was bedeutet, dass die Berechtigungen vorliegen falsch.
Wenn ich NFSv4 ( mount -o nfsvers=4
) mit den Standardeinstellungen für die Synology verwende, werden Dateien, die Eigentum roger.users
der Synology sind, im roger.users
Ubuntu- Fenster als Eigentum der angezeigt. Das ist gut.
Wenn ich jedoch touch
eine Datei:
roger@ubuntu$ touch /mounts/diskstation/music/foo
Es wird 1000.1000
in der Synology als Eigentum von nobody.4294967294
und in der Ubuntu-Box als Eigentum von angezeigt.
Alles, was ich in den Synology-Foren zu diesem Thema finden kann, stammt entweder aus dem Jahr 2011, als NFSv4 nicht unterstützt wurde, oder besteht aus Personen, die die gleiche Frage stellen und dann aufgeben.
Der Vollständigkeit halber /etc/exports
hat:
/volume1/music 10.0.0.0/24(rw,async,no_wdelay,root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)
... und ich montiere es auf der Ubuntu-Box mit:
mount -t nfs diskstation:/volume1/music /mounts/diskstation/music/ -o rw,nfsvers=4
Ich habe einige Hinweise gefunden, dass sec=sys
dies ein Problem sein könnte: Warum funktioniert die NFSv4-UID / GID-Zuordnung nicht mit AUTH_UNIX (AUTH_SYS) , aber das hat keine Lösung.
Gibt es einen einfachen Weg, um dieses Problem zu umgehen? Gibt es einen komplexeren Weg ( Husten, Kerberos- Husten ), um dies zu lösen?
Im Ernst, wenn Kerberos ist die Antwort, werde ich diesen Schlag nehmen, aber ich würde gerne wissen, bevor auf sie eine Menge Zeit zu verschwenden.
Update : Während die Synology-Dokumentation verschiedene Kerberos-Optionen behandelt, kann ich sie in der Benutzeroberfläche nicht finden. In den Versionshinweisen heißt es: "Wenn die Kerberos-Sicherheitsversion implementiert ist ...". Ich habe eine Seite gefunden (kann sie aber nicht mehr finden), was bedeutet, dass sie bei bestimmten Modellen möglicherweise nicht vorhanden ist. Ich habe einen DS211 gemäß der Systeminformationsseite. Vielleicht habe ich Pech?
Antworten:
Damit die NFSv4-ID-Zuordnung ordnungsgemäß funktioniert, müssen sowohl der Client als auch der Server den
idmapd
ID Mapper-Dämon ausführen und denselben inDomain
konfiguriert haben/etc/idmapd.conf
.Auf diese Weise sendet Ihr NFS-Client seine ID-Anmeldeinformationen wie
[email protected]
in den NFS-Befehlen auf der Leitung, und Ihr NFS-Server-ID-Mapper ordnet dies einem Benutzer zu, derroger
auf dem NFS-Server angerufen wurde . Die UID und die GID spielen keine Rolle, sie werden vom idmapper auf jedem System zugeordnet.Auf meiner Synology kümmere ich mich jedoch nicht darum. Mein freigegebener Ordner hat die folgenden Berechtigungen:
Dies führt dazu, dass
anonuid=1024,anongid=100
(deradmin
Benutzer und dieusers
Gruppe) dem Export/etc/exports
auf dem NAS hinzugefügt werden .Mein NFS-Client (auf dem der ID-Mapper nicht ausgeführt wird) sendet meine NFS-Befehle als mein Benutzer (
1000:1000
). Da UID und GID auf dem NAS nicht vorhanden sind, werden meine UID und GID in übersetzt,1024:100
sodass ich als Benutzer behandelt werde Admin-Benutzer, der über die volle Berechtigung verfügt.Dies ist eine furchtbar unprofessionelle und unsichere Verwendung von NFS in einer Geschäftsumgebung, aber nur für mich ist der Zugriff auf meine Dateien zu Hause ein Missbrauch von NFS-Verhalten, der für mich akzeptabel ist.
Eine andere Möglichkeit besteht darin,
roger
UID und GID auf dem NFS-Client und dem NAS identisch zu machen. Anschließend können Sie NFSv4 ohne ID-Zuordnung verwenden oder NFSv3, das nur auf UID und GID basiert.quelle
Ich habe wirklich mit genau dem gleichen Problem zu kämpfen. Ich hatte große Mühe, einen Kerberos-Server mit Docker in der Synology einzurichten, die ID-Zuordnung einzurichten, und das Verhalten gefiel mir immer noch nicht. Kerberos ist viel zu überarbeitet und es ist schwierig, weiterhin an Neustarts und der automatischen Bereitstellung zu arbeiten. Außerdem war die Standard-Umask für neu erstellte Dateien 0000, und jede neue Datei wurde im Modus 777 erstellt, unabhängig von meiner lokalen Umask.
Meine Lösung ähnelte der von suprjami, aber ich ging noch ein bisschen weiter:
roger.remote
. Machen Sie dasselbe für eine Benutzergruppe und benennen Sie sie genauso wie den Benutzernamen.roger.remote
die UID in 1000 und die GID in 1000roger.remote
auf 1000anonuid=1000,anongid=1000
/usr/syno/etc.defaults/rc.sysv/S83nfsd.sh restart
chmod 777 /volume1
. Ich hatte viele seltsame Probleme mit meinem gemounteten Homeverzeichnis. KDE konnte nicht gestartet werden, da die glibc-access()
Funktion den Zugriff auf das gemountete NFS-Verzeichnis zurückgab. (Aber alle Unterverzeichnisse würden funktionieren) Firefox hatte auch ein ähnliches Problem, bei dem es sich weigerte, Dateien im gemounteten Verzeichnis zu speichern, weil der Zugriff überprüft wurde. Obwohl die Berechtigungen korrekt waren und ich Dateien im bereitgestellten Verzeichnis berühren / erstellen / schreiben konnte. Das Ändern des übergeordneten Verzeichnisses / volume1 in das Verzeichnis world writable hat dieses dumme Problem behoben und die Client-Apps zum Schreiben verleitet.synoacltool -del /volume1/myshare
. Das+
Symbol sollte von der Ausgabe von ls -l entfernt sein.chown roger.remote:roger.remote /volume1/myshare
chmod 755 /volume1/myshare
Auf der Synology sollten Sie sehen:
Genießen!
quelle