GNU/Linux >> Belajar Linux >  >> Linux

Pasang dengan sshfs dan tulis izin file

Pertanyaan itu dijawab dalam milis linux; Saya memposting jawaban yang diterjemahkan di sini untuk kelengkapan.

Solusi

Solusinya adalah tidak menggunakan kedua opsi default_permissions dan allow_other (yang tidak saya coba dalam percobaan awal saya).

Penjelasan

Masalahnya tampaknya cukup sederhana. Saat Anda memberikan opsi default_permissions di fusermount maka kontrol izin sekering atas dudukan sekering ditangani oleh kernel dan bukan dengan sekring . Ini berarti bahwa uid/gid REMOTE_USER tidak dipetakan ke LOCAL_USER (sshfs.c IDMAP_NONE). Ini bekerja dengan cara yang sama seperti nfs fs sederhana tanpa pemetaan.

Jadi, masuk akal untuk melarang akses, jika nomor uid/gid tidak cocok.

Jika Anda memiliki opsi allow_other maka dir ini hanya dapat ditulis oleh pengguna lokal dengan uid 699, jika ada.

Dari orang sekering:

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

Jangan jalankan sshfs dengan sudo. Jika Anda melakukannya, ssh akan menganggap bahwa sistem file milik root. Jalankan sebagai diri Anda sendiri, lalu Anda dapat menulis ke file.

klarifikasi

Saat berjalan tanpa sudo, Anda perlu me-mount di direktori Anda sendiri, karena Anda mungkin tidak dapat menulis ke /mnt. Jadi, inilah contoh cara menggunakan sshfs setelah Anda menambahkan user_allow_other ke /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

Satu kemungkinan alasan untuk hal ini -- yang saya temukan -- adalah karena saya tidak memiliki ruang kosong lagi di disk yang saya pasang.


Linux
  1. Bagaimana Mengaktifkan Izin File Unix Di Samba Share Dengan Smb 2.0+?

  2. Linux – Pasang Drive Jaringan Cifs:Izin Menulis Dan Chown?

  3. Izin File di Linux dengan Contoh

  1. Izin File di Linux – Baca/Tulis/Jalankan

  2. Cara membuat dan memasang sistem file Btrfs (dijelaskan dengan contoh)

  3. Bagaimana cara menulis file dengan C di Linux?

  1. Mempertahankan izin file dengan Git

  2. AWK dan nama file dengan spasi di dalamnya.

  3. Mempertahankan izin file dan folder dengan rsync