Как пользователь получает доступную папку sshfs?

Я пытаюсь сделать сетевую резервную копию диска. В этом процессе есть две машины.

PC1:

  • Дистанционная машина с двумя жесткими дисками sda и sdb
  • sdb – это диск, который нуждается в резервном копировании
  • существует два пользователя, root и пользователь

PC2:

  • машина Я нахожусь
  • работающий как пользователь Alan, может при необходимости root

Я делаю следующее на PC2:

sshfs root@PC1:/dev ~/Desktop/netdisk/ 

Крепится хорошо. У меня есть sdb, доступный в ~ / Destkop / netdisk /. Следующий шаг:

 sudo dd if=~/Destkop/netdisk/sdb | gzip -c > ~/Destkop/ddbackup/image.gz 

Выдает ошибку:

 dd: opening `netdisk/sdb': Permission denied 

Когда я проверяю разрешения sdb:

 brw-rw---- 1 root disk 0, 0 Jan 3 10:47 sdb 

Поскольку i ssh-ed для PC1, поскольку root @ PC1 не означает, что у меня есть root-доступ к файлам, установленным как sshfs?

Из этого примера кажется, что нет, есть ли здесь концепция, которой я не хватает?

  • Fusermount монтажный каталог SSHFS работает вручную, но не автоматически?
  • У Apache нет разрешения на копирование файлов из смонтированного каталога
  • создание образа устройства для сетевого расположения
  • Может ли sshfs монтировать локальные диски?
  • Как использовать inotify или именованные каналы через SSHFS?
  • Невозможно использовать -o allow_other с sshfs (опция включена в файле fuse.conf)
  • Принудительное повторное подключение к приводу sshfs, установленному через fstab
  • Выбор файловой системы кластера для чтения / записи большого количества небольших файлов
  • 3 Solutions collect form web for “Как пользователь получает доступную папку sshfs?”

    Удаленные файлы доступны как удаленный пользователь, который вы вошли в систему, например root. На самом деле нет другого пути.

    Ошибка, которую вы получаете, связана с разрешениями на локальную сторону. Это странность в FUSE, на которой основана SSHFS. По умолчанию только пользователь, выполнивший монтаж, может получить доступ к файловой системе FUSE. Даже root не может получить к нему доступ. Предотвращение доступа пользователя root не является ограничением безопасности, так как root может su (1) / setuid (2) до пользователя, который подключил файловую систему, это ограничение внутренней архитектуры FUSE. Поскольку вы сделали монтаж как пользователь без полномочий root, также обращайтесь к файловой системе как к пользователю, не являющемуся пользователем root. Запуск dd под sudo в любом случае не покупает вас здесь, поэтому просто запустите

     dd if=~/Destkop/netdisk/sdb | gzip -c > ~/Destkop/ddbackup/image.gz 

    который ( бесполезное использование dd ) упрощает до

     dd if=~/Destkop/netdisk/sdb | gzip -c > ~/Destkop/ddbackup/image.gz 

    которое бесполезное использование кошки упрощается до

     gzip <~/Destkop/netdisk/sdb >~/Destkop/ddbackup/image.gz 

    Если sdb является блочным устройством, а не обычным файлом на удаленной стороне, он не может работать через удаленную файловую систему (если запись устройства была записью устройства, это было бы локальным устройством, что нежелательно). Используйте ssh для доступа к нему:

     ssh root@PC1 cat /dev/sdb | gzip >~/Destkop/ddbackup/image.gz 

    В любом случае вы бы сэкономили пропускную способность, выполнив сжатие на удаленной стороне:

     ssh root@PC1 'gzip </dev/sdb' >~/Destkop/ddbackup/image.gz 

    sshfs не может обрабатывать блокирующие устройства. Он будет рассматривать все как файл. Вам нужно будет проявить творческий подход с перенаправлением ssh , dd и командной строки:

    PC2 -> PC1:

     dd of=/home/Alan/Desktop/image.iso < ssh root@PC1 "dd if=/dev/sdb" 

    или от PC1 -> PC2:

     dd if=/dev/sdb | ssh root@PC2"dd of=/home/Alan/Desktop/image.iso" 

    Вы можете использовать параметр mount allow_other чтобы разрешить вам доступ к этому устройству в качестве любого пользователя.

     sshfs -o allow_other root@PC1:/dev ~/Desktop/netdisk/ 

    Убедитесь, что вы также установили user_allow_other в /etc/fuse.conf .

    Дополнительную информацию см. В этом ответе на serverfault.com.

    Linux и Unix - лучшая ОС в мире.