Как, какой пользователь sshfs является смонтированной получаемой доступ папкой?

Вы могли разработать пакетный экран, который включает главный-b-n 1 и PS, например:

while (true)
do
  clear
  top -b -n 1
  ps
  sleep 5
done

Это обработает отображение:

  • PID
  • ЦП
  • Неусеченная командная строка
5
03.01.2013, 17:44
3 ответа

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

Ошибка, которую Вы получаете, происходит из-за полномочий на локальной стороне. Это - причуда в FUSE, на основе которого SSHFS. По умолчанию только пользователь, который сделал монтирование, может получить доступ к файловой системе FUSE. Даже корень не может получить доступ к нему. Препятствование пользователю root доступ не является ограничением безопасности, так как корень может su (1)/setuid (2) вниз пользователю, который смонтировал файловую систему, это - ограничение внутренней архитектуры FUSE. Так как Вы сделали монтирование как некорневой пользователь, также получите доступ к файловой системе как к тому некорневому пользователю. Выполнение 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
3
27.01.2020, 20:35
  • 1
    Является там способом восстановить его, не используя dd? –  TheMeaningfulEngineer 06.01.2013, 13:11
  • 2
    @Alan ответа, который Вы имеете в виду, делает передачу в другом направлении? Несомненно, просто инвертируйте перенаправления и замену gzip gunzip: ssh root@PC1 'gunzip >/dev/sdb' <~/Desktop/ddbackup/image.gz –  Gilles 'SO- stop being evil' 06.01.2013, 14:25

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"
4
27.01.2020, 20:35
  • 1
    Это правда, но это не то, что вызывает ошибку, на самом деле — см. мой ответ. Рекомендация находится в правильном направлении, но это - бесполезное использование dd, и это сохранило бы пропускную способность для сжатия перед отправкой. –  Gilles 'SO- stop being evil' 04.01.2013, 02:41

Можно использовать опцию монтирования allow_other позволить Вам получать доступ к этому устройству как любому пользователю. Если Вы используете эту опцию, принимаете во внимание, что ядро Linux имеет неразрешенную ошибку безопасности, которая влияет на FUSE.

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

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

См. этот ответ на serverfault.com для более подробной информации.

3
27.01.2020, 20:35
  • 1
    Если Вы намереваетесь использовать allow_other, монтируют, что опция как ответ выше предлагает, знают, что ядро Linux имеет неразрешенную ошибку безопасности, которая влияет на FUSE. Посмотрите github.com/libfuse/libfuse/issues/15 –  MountainX-for-Monica 12.02.2018, 12:13

Теги

Похожие вопросы