Назад | Перейти на главную страницу

sshfs для нескольких пользователей

Я хотел бы использовать sshfs со многими пользователями.

sshfs root@192.168.56.100:/ root/

С помощью этой команды я получаю всю файловую систему в каталоге root /.

Есть ли возможность изменить пользователя файла, когда этот пользователь просто существует на удаленном компьютере?

Я попытался:

chown myuser myfile

Когда я делаю ls -lah на пульте получаю:

-rw-r--r-- 1 otheruser   root       0 Jan 11 11:03 myfile

Ищите файловую систему posixovl.

Предполагая, что ~ / REMOTESITE - это sshfs-монтирование удаленной системы:

/usr/local/sbin/mount.posixovl -F -S ~/REMOTESITE/user-backups /REMOTESITE -- -o allow_other

(Я не уверен, что 'allow_other' строго необходим, но это не повредит.)

Удаленные файлы остаются собственностью того, кто вошел в систему с удаленной учетной записью, но для локальной системы они кажутся принадлежащими локальным пользователям.

(Возможно, вы также захотите наложить на это слои encfs, чтобы не доверять удаленному сайту)

Грэм

Проблема в том, что chown передаст файл пользователю, чей местный UID принадлежит myuser.

Скажем, например, на локальном компьютере у вас есть myuser с UID 1001, но UID 1001 принадлежит otheruser на дистанционной машине.

Если бы ты хотел отдать это myuser в удаленной системе вам необходимо либо:

  • Синхронизировать учетные записи / UID на обеих машинах (может помочь централизованный диспетчер конфигурации);
  • знать дальний UID myuser (используя, например, ssh root@distant id -u myuser) и используйте chown с этим UID.

Используя второй вариант, вы могли бы сделать, например (используя bash):

uid=$(ssh root@distant id -u myuser)
[[ -n $uid ]] && chown $uid. myfile || echo "No uid found. Not chowning"

Нет, ты не можешь этого сделать. Все файлы в удаленной системе доступны как «пользователь», который используется при ее монтировании. В вашем случае это root.