GNU/Linux >> Tutoriales Linux >  >> Linux

Montar con sshfs y escribir permisos de archivo

La pregunta fue respondida en una lista de correo de Linux; Publico una respuesta traducida aquí para completar.

Solución

La solución es no usar ambas opciones default_permissions y allow_other (que no probé en mis experimentos originales).

Explicación

El problema parece ser bastante simple. Cuando le das a la opción default_permissions en fusermount, el kernel maneja el control de permisos de fuse del fuse mount y no por fusible . Esto significa que el uid/gid de REMOTE_USER no está asignado al LOCAL_USER (sshfs.c IDMAP_NONE). Funciona de la misma manera que un nfs fs simple sin asignación.

Por lo tanto, tiene sentido prohibir el acceso si los números uid/gid no coinciden.

Si tienes la opción allow_other entonces este directorio solo puede escribirlo el usuario local con uid 699, si existe.

Del hombre de fusibles:

'default_permissions'

   By default FUSE doesn't check file access permissions, the
   filesystem is free to implement its access policy or leave it to
   the underlying file access mechanism (e.g. in case of network
   filesystems).  This option enables permission checking, restricting
   access based on file mode.  It is usually useful together with the
   'allow_other' mount option.

'allow_other'

   This option overrides the security measure restricting file access
   to the user mounting the filesystem.  This option is by default only
   allowed to root, but this restriction can be removed with a
   (userspace) configuration option.

No ejecute sshfs con sudo. Si lo hace, ssh considerará que el sistema de archivos pertenece a la raíz. Ejecútelo como usted mismo, luego podrá escribir en los archivos.

aclaración

Cuando se ejecuta sin sudo, debe realizar el montaje en su propio directorio, ya que probablemente no pueda escribir en /mnt. Aquí hay un ejemplo de cómo usar sshfs una vez que haya agregado user_allow_other a /etc/fuse.conf:

$ cd                      # make sure you are in home directory
$ mkdir mnt               # create empty directory
$ sshfs server.com: mnt   # mount my home directory on server.com on ./mnt
$ ls mnt
[contents of home directory on server]
$ touch mnt/new_file      # no problem creating a new file
$ fusermount -u mnt       # unmount file system
$ rmdir mnt

Una posible razón para esto, una que encontré, fue que no tenía más espacio libre en el disco que monté.


Linux
  1. ¿Permisos de archivo y ahorro?

  2. Linux – Unidad de red Mount Cifs:¿Permisos de escritura y Chown?

  3. Cómo cambiar los permisos de archivos y directorios con el Administrador de archivos

  4. ¿Cómo escribir un archivo con C en Linux?

  5. Retención de permisos de archivo con Git

Cómo montar y desmontar sistemas de archivos en Linux

Montar una carpeta remota con sshfs

Permisos y propiedad de archivos de Linux explicados con ejemplos

Administre directorios y permisos de archivos con chmod Recursive

Comando de montaje de Linux con ejemplos

Monte cifs Network Drive:permisos de escritura y chown