GNU/Linux >> Linux Esercitazione >  >> Linux

Monta con sshfs e scrivi i permessi dei file

Alla domanda è stata data risposta in una mailing list Linux; Inserisco qui una risposta tradotta per completezza.

Soluzione

La soluzione è non usare entrambe le opzioni default_permissions e allow_other (che non ho provato nei miei esperimenti originali).

Spiegazione

Il problema sembra essere abbastanza semplice. Quando dai l'opzione default_permissions in fusermount il controllo dei permessi di fuse per il fuse mount è gestito dal kernel e non per miccia . Ciò significa che l'uid/gid di REMOTE_USER non è mappato su LOCAL_USER (sshfs.c IDMAP_NONE). Funziona allo stesso modo di un semplice nfs fs senza mappatura.

Quindi, ha senso proibire l'accesso, se i numeri uid/gid non corrispondono.

Se hai l'opzione allow_other quindi questa directory è scrivibile solo dall'utente locale con uid 699, se esiste.

Dall'uomo di fusibile:

'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.

Non eseguire sshfs con sudo. Se lo fai, ssh considererà che il file system appartiene a root. Eseguilo come te stesso, quindi sarai in grado di scrivere sui file.

chiarimento

Quando si esegue senza sudo, è necessario montare nella propria directory, poiché probabilmente non è possibile scrivere su /mnt. Quindi ecco un esempio di come utilizzare sshfs dopo aver aggiunto 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 possibile ragione per questo -- quella che ho colpito -- era che non avevo più spazio libero sul disco che avevo montato.


Linux
  1. Permessi e salvataggio dei file?

  2. Permessi dei file in Linux con esempio

  3. Permessi dei file in Linux – Lettura/Scrittura/Esegui

  4. Come scrivere un file con C in Linux?

  5. Mantenimento delle autorizzazioni sui file con Git

Come montare e smontare i file system in Linux

Monta una cartella remota con sshfs

Permessi e proprietà dei file Linux spiegati con esempi

Gestisci le autorizzazioni di directory e file con chmod Recursive

Comando di montaggio Linux con esempi

Mount cifs Network Drive:permessi di scrittura e chown