Sshfs как обычный пользователь через fstab

Я хочу установить удаленный каталог через sshfs на моем компьютере Debian, скажем, в /work. Поэтому я добавил своего пользователя в группу fuse, и я запустил:

sshfs [email protected]:/remote/dir /work

и все работает отлично. Однако было бы очень приятно, чтобы каталог был установлен при загрузке. Поэтому я попробовал запись /etc/fstab, приведенную ниже:

sshfs#[email protected]:/remote/dir /work     fuse      user,_netdev,reconnect,uid=1000,gid=1000,idmap=user  0   0

sshfs запрашивает пароль и монтируется почти правильно. Почти потому, что мой обычный user не имеет доступа к смонтированному каталогу, и когда я запускаю ls -la /, я получаю:

d?????????   ? ?        ?               ?            ? work

Как я могу получить его с правом разрешения через fstab?

Ответ 1

Использование опции allow_other в /etc/fstab позволяет другим пользователям, кроме тех, кто делает фактический монтаж для доступа к смонтированной файловой системе. Когда вы загружаете свою систему и монтируете свои sshf, это делается пользователем root вместо обычного пользователя. Когда вы добавляете allow_other других пользователей, чем root, можно получить доступ к точке монтирования. Разрешения для файлов в точке монтирования остаются такими же, как и раньше, поэтому, если у вас есть каталог с маской 0700, он недоступен никому другому, кроме root и владельца.

Итак, вместо

sshfs#[email protected]:/remote/dir /work     fuse      user,_netdev,reconnect,uid=1000,gid=1000,idmap=user  0   0

использование

sshfs#[email protected]:/remote/dir /work     fuse      user,_netdev,reconnect,uid=1000,gid=1000,idmap=user,allow_other  0   0

Это пошло мне на ум. Я не тестировал это, загрузив систему, но вместо этого просто выпустил команду mount в качестве пользователя root, а затем попытался получить доступ к установленным sshfs в качестве обычного пользователя.

Ответ 2

Также в дополнение к предыдущему ответу:

  • Вам следует предпочесть синтаксис [user] @[host] поверх sshfs # [user] @[host].

  • Убедитесь, что пользователи, не являющиеся root, указали параметр allow_other mount в файле /etc/fuse.conf

  • Убедитесь, что вы используете каждый монтируемый sshfs как минимум один раз вручную, а затем root, так что подпись хоста добавляется в файл .ssh/known_hosts.

    $ sudo sshfs [user] @[host]: [remote_path] [local_path] -o allow_other, IdentityFile = [path_to_id_rsa]

REF: https://wiki.archlinux.org/index.php/SSHFS

Ответ 3

Кроме того, в дополнение к принятому ответу: необходимо, чтобы пользователь на цели имел право на оболочку на целевой машине: sudo chsh username/bin/bash.

У меня был пользователь, который имел /bin/false, и это вызывало проблемы.