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, и это вызывало проблемы.