Root kann die Dateiberechtigung oder den Besitz nicht ändern

8

Mein Verzeichnis ist root:

pwd 
/

Ich habe folgendes Verzeichnis:

drwxrwxrwx   4 root   root     81920 Jun  4 09:25 imr_report_repo

HINWEIS: imr_report_repo ist eine NFS-Freigabe.

Hier ist die fstabAuflistung für imr_report_repo:

netapp1:/imr_report_repos_stage  /imr_report_repo  nfs   rw,bg,actimeo=0,nointr,vers=3,timeo=600,rsize=32768,wsize=32768,tcp 1    1
d imr_report_repo

Eine Datei in mount:

$ ls -al
-rw-r--r--  1 502     502      1273 Mar 21  2013 imr1_test.txt

Die UID 502 existiert nicht. Wenn wir diese UID / GID lokal hinzufügen:

$ groupadd -g 502 jimmy
$ useradd -g 502 -u 502 jimmy

Es zeigt sich jetzt:

$ ls -al
-rw-r--r--  1 jimmy     jimmy      1273 Mar 21  2013 imr1_test.txt

Wechseln Sie nun zu root:

$ su -
$ chown oracle:oinstall imr1_test.txt
chown: changing ownership of `imr1_test.txt': Operation not permitted
Stringer
quelle
Ist der NFS-Server eine NetApp? Haben Sie administrativen Zugriff darauf?
Mark Plotnick
Ja, es ist NetApp. Ich habe Admin-Privilegien
Stringer

Antworten:

10

Hat rootnormalerweise keine besonderen Berechtigungen für NFS-Freigaben. Im Gegenteil: rootwird einem normalen Benutzer zugeordnet (dh hat nicht einmal "normalen" Lese- und Schreibzugriff auf rootDateien).

Sie müssen chownauf dem NFS-Server ausgeführt werden.

Hauke ​​Laging
quelle
4

In der Regel ist es dem lokalen Root-Benutzer auf NFS-Clients untersagt, diese Art von Aktivitäten auf von NFS bereitgestellten Freigaben auszuführen. NetApp scheint dies wie folgt zu verändern:

  • Standardmäßig gibt die Option anon eine UID von 65534 an. Wenn Sie also die Optionen root und anon für eine Ressource nicht verwenden, greifen Root-Benutzer auf allen Hosts mithilfe der UID 65534 auf die Ressource zu.
  • Wenn die Option anon eine UID von 65535 angibt, ist der Root-Zugriff deaktiviert.
  • Wenn die Option anon eine UID von 0 angibt, wird allen Hosts Root-Zugriff gewährt.
  • Wenn anstelle einer UID ein Name angegeben wird, wird dieser Name in der in der /etc/nsswitch.confDatei angegebenen Reihenfolge nachgeschlagen , um die entsprechende UID zu ermitteln, die von der Option anon zugewiesen werden soll.

So wie es aussieht, hat die NetApp NFS-Freigabe die Standardoption Nr. 1. Sie können dies bestätigen, indem Sie eine Datei auf der NFS-Freigabe als Root berühren und sehen, welche ID sich daraus ergibt.

Sie sollten in der Lage sein, die exportierten Optionen der NFS-Freigabe mount -vauf Ihrem NFS-Client anzuzeigen.

$ mount -v
...
mulder:/export/raid1/home/sam on /home/sam type nfs (rw,intr,tcp,nfsvers=3,rsize=16384,wsize=16384,addr=192.168.1.1)

Verweise

slm
quelle
2

Ein NetApp NFS-Server ändert standardmäßig die Anmeldeinformationen des Root-Benutzers auf einem Client in uid 65534 auf dem Server, sodass Vorgänge wie chownfehlschlagen. Um dies zu ändern, bearbeiten Sie die Exportliste im Filer so, dass die Zeile für das Dateisystem den Parameter enthält root=clientid, wobei clientid die IP-Adresse oder der Hostname des Clients ist, auf den Sie Root-Zugriff auf dieses Dateisystem haben möchten. Führen exportfs -aSie dann aus, wenn Sie die Befehlszeilenschnittstelle des Filers verwenden.

Mark Plotnick
quelle
0

Wie slm Kommentar oben sagte,

In der Regel ist es dem lokalen Root-Benutzer auf NFS-Clients untersagt, diese Art von Aktivitäten auf von NFS bereitgestellten Freigaben auszuführen

Die verwendete Funktion heißt Rot Squash . Weitere Informationen hier . In meinem Fall bestand die einzige Möglichkeit darin, sich anzumelden, um den Root-Squash für diesen bestimmten Server zu deaktivieren und ihn später wieder zu aktivieren.

Eine ähnliche Situation tritt auf, wenn Sie dockerContainer mit Volumes verwenden und der Container mit einem nicht privilegierten Benutzer (z USER apache. B. ) ausgeführt wird. So ist die Idee der NFS - Mount - Punkte sein r/ wnur durch die owner, und nicht durch rooteine gemeinsame Sicherheitspraxis.

Azbarcea
quelle