Mi directorio es root:
pwd
/
Tengo el siguiente directorio:
drwxrwxrwx 4 root root 81920 Jun 4 09:25 imr_report_repo
NOTA: imr_report_repo
es un recurso compartido NFS.
Aquí está la fstab
lista de 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 archivo dentro de mount:
$ ls -al
-rw-r--r-- 1 502 502 1273 Mar 21 2013 imr1_test.txt
El UID 502 no existe. Si agregamos ese UID / GID localmente:
$ groupadd -g 502 jimmy
$ useradd -g 502 -u 502 jimmy
Ahora aparece:
$ ls -al
-rw-r--r-- 1 jimmy jimmy 1273 Mar 21 2013 imr1_test.txt
Ahora cambie a root:
$ su -
$ chown oracle:oinstall imr1_test.txt
chown: changing ownership of `imr1_test.txt': Operation not permitted
Respuestas:
Por
root
lo general , no tiene permisos especiales en recursos compartidos NFS. Por el contrario:root
se asigna a un usuario común (es decir, ni siquiera tiene acceso de lectura y escritura "normal" a losroot
archivos).Debe ejecutar
chown
en el servidor NFS.fuente
Por lo general, el usuario raíz local en clientes NFS no puede realizar este tipo de actividades en recursos compartidos montados en NFS. NetApp parece agregar un poco de giro en esto de la siguiente manera:
/etc/nsswitch.conf
archivo para determinar el UID correspondiente que se asignará mediante la opción anon.Por lo que parece, el recurso compartido NFS de NetApp tiene la opción predeterminada, # 1. Puede confirmar esto tocando un archivo en el recurso compartido NFS como root y viendo qué ID resulta de hacer esto.
Debería poder ver las opciones exportadas del recurso compartido NFS
mount -v
en su cliente NFS.Referencias
fuente
Un servidor NFS de NetApp, por defecto, cambiará las credenciales del usuario raíz en un cliente a uid 65534 en el servidor, por lo que las operaciones como
chown
fallarán. Para cambiar esto, edite la lista de exportación en el archivador para que la línea del sistema de archivos tenga el parámetroroot=clientid
, donde clientid es la dirección IP o el nombre de host del cliente al que desea tener acceso raíz a ese sistema de archivos. Luego, ejecuteexportfs -a
si está utilizando la interfaz de línea de comandos en el archivador.fuente
Como dijo el comentario de slm arriba,
La característica utilizada se llama podredumbre . Más información aquí . En mi caso, la única forma era iniciar sesión para deshabilitar el root squash para este servidor en particular y habilitarlo de nuevo más tarde.
Una situación similar se encontrará si usa un
docker
contenedor con volúmenes y el contenedor se ejecuta con un usuario sin privilegios (por ejemploUSER apache
). Por lo tanto, la idea de que los puntos de montaje NFS seanr
/w
solo por elowner
, y no por,root
es una práctica de seguridad común.fuente