Ma Direcotrory est root:
pwd
/
J'ai le directeur suivant:
drwxrwxrwx 4 root root 81920 Jun 4 09:25 imr_report_repo
Remarque :imr_report_repo
est une part NFS.
Voici la liste fstab
inscription pour 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
Un fichier à montage:
$ ls -al
-rw-r--r-- 1 502 502 1273 Mar 21 2013 imr1_test.txt
L'UID 502 n'existe pas. Si nous ajoutons cette UID/GID localement:
$ groupadd -g 502 jimmy
$ useradd -g 502 -u 502 jimmy
Il apparaît maintenant:
$ ls -al
-rw-r--r-- 1 jimmy jimmy 1273 Mar 21 2013 imr1_test.txt
Maintenant, changez à la racine:
$ su -
$ chown Oracle:oinstall imr1_test.txt
chown: changing ownership of `imr1_test.txt': Operation not permitted
Habituellement root
ne dispose pas d'autorisations spéciales sur les actions NFS. Au contraire: root
est mappé sur un utilisateur ordinaire (c'est-à-dire un accès "normal" de lecture et d'écriture à des fichiers root
).
Vous devez exécuter chown
sur le serveur NFS.
C'est généralement le cas que l'utilisateur racine local sur les clients NFS est interdit d'effectuer ces types d'activités sur les actions montées NFS. NetApp semble ajouter un peu de torsion à ce sujet comme suit:
/etc/nsswitch.conf
Fichier Pour déterminer l'UID correspondant à attribuer par l'option Anon.Donc, de l'apparence de celui-ci, la part NetApp NFS a l'option par défaut, n ° 1. Vous pouvez confirmer cela en touchant un fichier sur le partage NFS en tant que root et voyez quel iD résulte de cela.
Vous devriez être capable de voir les options exportées de l'action NFS à l'aide de mount -v
Sur votre client NFS.
$ 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)
Par défaut, un serveur NetApp NFS modifiera, par défaut, les informations d'identification de l'utilisateur root sur un client en UID 65534 sur le serveur, les opérations comme chown
échoueront. Pour modifier cela, modifiez la liste d'exportation sur le filer afin que la ligne du système de fichiers ait le paramètre root=clientid
, où ClientID est l'adresse IP ou le nom d'hôte du client que vous souhaitez avoir un accès root à ce système de fichiers. Puis courez exportfs -a
Si vous utilisez l'interface de ligne de commande sur le déposant.
Comme slm commentaire ci-dessus dit,
Il est généralement essentiel que l'utilisateur racine local des clients NFS soit interdit d'effectuer ces types d'activités sur les actions montées NFS
La fonctionnalité utilisée est appelée Squash pourriture . Plus d'informations ICI . Dans mon cas, le seul moyen était de se connecter à désactiver la courge de racine pour ce serveur particulier et de le permettre plus tard.
Une situation similaire que vous rencontrerez si vous utilisez un conteneur docker
avec des volumes et le conteneur s'exécute avec un utilisateur non privilégié (E.G. USER Apache
). Donc, l'idée des points de chasse NFS doit être r
/w
uniquement par le owner
, et non par root
est une pratique de sécurité commune.