Ich habe gerade meinen iMac in meinem Heimnetzwerk neu installiert und die Benutzer-Home-Verzeichnisse über eine NFS-Freigabe (gehostet auf einem Ubuntu-Server) gemountet.
Mein Problem besteht darin, dass mir bei Verwendung von sudo die Berechtigung für mein eigenes Home-Verzeichnis verweigert wird.
Meine UID ist 501 und ich darf sudo verwenden, da ich Mitglied der Admin-Gruppe (GID 80) bin.
Auf dem Ubuntu-Server habe ich mein Home-Verzeichnis wie folgt konfiguriert:
Ubuntu# ls -ln | grep bryan
drwxrwx--- 35 501 80 4096 2012-01-27 14:09 bryan
Was auf dem Mac korrekt übersetzt wird:
iMac$ ls -l | grep bryan
drwxrwx--- 35 bryan admin 4.0K 27 Jan 14:09 bryan/
Da root auch Mitglied von admin (GID 80) ist, hätte ich erwartet, dass sudo den Zugriff auf mein Home-Verzeichnis erlaubt, aber wie Sie unten sehen können, ist dies nicht der Fall.
iMac$ whoami
bryan
iMac$ sudo bash
bash: /Volumes/home/bryan/.bashrc: Permission denied
iMac# whoami
root
iMac# cd /Volumes/home/bryan/
bash: cd: /Volumes/home/bryan/: Permission denied
Nur zur Bestätigung, das Folgende ist der relevante Teil der Ausgabe dscacheutil -q group
auf meinem iMac:
name: admin
password: *
gid: 80
users: root bryan
Was kann ich tun, um bei Verwendung von sudo den Zugriff auf mein Home-Verzeichnis auf dem iMac zu ermöglichen?
Antwort1
Wenn Sie verwenden sudo
, wechseln Sie zum root
Benutzer (uid 0) – SieverlierenIhre brian
UID und die admin
Gruppe. ( sudo id
zeigt Ihnen die genauen Werte.)
Da frühere NFS-Versionen (v3 und älter) alle Sicherheitsüberprüfungen nur auf der Client-Seite durchführten, gibt es einen integrierten Schutz gegen unehrliche Clients – wenn der Client angibt, dass Ihre UID 0 ist,nichtRoot-Rechte erhalten –Stattdessen sieht der NFS-Server Sie als Benutzer nobody
.
Um diese Schutzmaßnahme zu deaktivieren, bearbeiten Sie die Server /etc/exports
so, dass diese Option verfügbar ist . Führen Sie die no_root_squash
Freigabe anschließend erneut aus exportfs -ra
und mounten Sie sie erneut auf allen Clients.
Beim Testen von NFS-Berechtigungen ist es hilfreich, ein allgemein beschreibbares Verzeichnis auf Ihrer Freigabe zu haben. Unter Ubuntu beispielsweise . sudo mkdir /home/temp; sudo chmod a+rwx /home/temp
Unter OS X können Sie dann ausführen sudo touch /Volumes/home/temp/testfile
und sofort sehen, welchen Besitzer die neu erstellte Datei hat.