chmod 777 no cambia los permisos a 777

chmod 777 no cambia los permisos a 777

Estoy intentando cambiar los permisos de temp_dir a 777. ¿Por qué estos comandos no logran eso? Por cierto, estoy usando Linux.

kylefoley@kfoley76:/mnt/disks$ chmod 777 /mnt/disks/temp_dir
kylefoley@kfoley76:/mnt/disks$ stat -c "%a %n" temp_dir
755 temp_dir

También probé el interruptor detallado.

kylefoley@kfoley76:/mnt/disks$ chmod -v 777 /mnt/disks/temp_dir
mode of '/mnt/disks/temp_dir' changed from 0755 (rwxr-xr-x) to 0777 (rwxrwxrwx)
kylefoley@kfoley76:/mnt/disks$ stat -c "%a %n" temp_dir
755 temp_dir

Tampoco entiendo por qué no puedo usarsudo

kylefoley@kfoley76:/mnt/disks/temp_dir$ sudo chmod 777 fix_mistakes
chmod: cannot access 'fix_mistakes': Permission denied

Incluso cuando inicio sesión como usuario root

kylefoley@kfoley76:/mnt/disks/temp_dir$ sudo -i
root@kfoley76:~# sudo chmod 777 /mnt/disks/temp_dir
chmod: cannot access '/mnt/disks/temp_dir': Permission denied

También debo agregar que este error debe tener algo que ver con el hecho de que el directorio en cuestión es un disco montado en gcsfuse, disponible en gcloud. Otros intentos de cambiar los permisos funcionaron bien:

kylefoley@kfoley76:~$ mkdir hey
kylefoley@kfoley76:~$ stat -c "%a %n" hey
755 hey
kylefoley@kfoley76:~$ chmod 777 hey
kylefoley@kfoley76:~$ stat -c "%a %n" hey
777 hey

Respuesta1

gcsfuse establece permisos de archivos y directorios al montar. En concreto, las opciones son:

  • file_mode– Bits de permiso para archivos, en octal
  • dir_mode– Bits de permisos para directorios, en octal.

Fuente:https://github.com/GoogleCloudPlatform/gcsfuse/blob/e0a0e0826897b09581c24065fb6a92912ee79d03/flags.go#L78

Si no especifica las opciones, los valores predeterminados son dir_mode=0755,file_mode=0644.

Fuente:https://github.com/GoogleCloudPlatform/gcsfuse/blob/e0a0e0826897b09581c24065fb6a92912ee79d03/flags.go#L51

Estas opciones se aplican a todos los archivos y directorios del montaje. Este sistema de archivos FUSE no tiene la capacidad de cambiar permisos para archivos o directorios específicos, por lo que chmodno hace nada.


Además, gcsfuse tiene restricciones de acceso adicionales que limitan el acceso al usuario que montó el sistema de archivos. Detalles:

Como medida de seguridad, el propio fusible restringe el acceso al sistema de archivos al usuario que montó el sistema de archivos (cf.fusible.txt). Por este motivo, gcsfuse muestra de forma predeterminada que todos los archivos pertenecen al usuario que los invoca. Por lo tanto, debes invocar a gcsfuse como el usuario que utilizará el sistema de archivos, no como root.

Si sabe lo que está haciendo, puede anular estos comportamientos con elallow_otheropción de montaje compatible con fusible y con banderas --uidy --gidcompatibles con gcsfuse. ¡Cuidado, esto puede tener implicaciones de seguridad!

Fuente:https://github.com/GoogleCloudPlatform/gcsfuse/blob/d25be2491879e3745c3ed3d8e816774defc1cc5c/docs/mounting.md#access-permissions

Es por eso que no puedes acceder al soporte desde otro usuario. Para permitir que otros usuarios accedan al montaje, especifique allow_otheren sus opciones de montaje.

Respuesta2

Pude resolver el problema de la siguiente manera: tuve que ir a Cloud API Access Scopes y verificar en la configuración de la VM que tiene acceso de lectura, escritura o acceso completo para almacenamiento. Esto implicó presionar editar en la consola de gcloud que enumera mis instancias. En la parte inferior de la página, estaba la limitación de almacenamiento que cambié a "completo". Eso fue todo.

información relacionada