web-dev-qa-db-ja.com

fstabを介した通常のユーザーとしてのsshfs

Debianマシンのsshfsからリモートディレクトリをマウントしたいのですが、/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を介して適切な権限を取得するにはどうすればよいですか?

14
Sventimir

allow_otherでオプション/etc/fstabを使用すると、実際のマウントを行っているユーザー以外のユーザーが、マウントされたファイルシステムにアクセスできます。システムを起動してsshfsをマウントすると、通常のユーザーではなくユーザー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

これは少なくとも私にとってはトリックでした。私はシステムを起動してこれをテストしませんでしたが、代わりにrootとしてmountコマンドを発行し、マウントされたsshfsに通常のユーザーとしてアクセスしようとしました。

26
Sami Laine

また、前の回答を補足するために:

  1. Sshfs#[user] @ [Host]構文よりも[user] @ [Host]構文を優先する必要があります。

  2. Root以外のユーザーが/etc/Fuse.confでallow_otherマウントオプションを指定できるようにしてください。

  3. ホストのシグネチャが.ssh/known_hostsファイルに追加されるように、各sshfsマウントをrootで少なくとも1回は手動で使用してください。

    $Sudosshfs [user] @ [Host]:[remote_path] [local_path] -o allow_other、IdentityFile = [path_to_id_rsa]

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

2

また、受け入れられた回答を補足します。ターゲットのユーザーは、ターゲットマシンでシェルへの権利を持っている必要があります:Sudo chsh username-> /bin/bash

/ bin/falseを持つユーザーがいて、これが問題を引き起こしました。

0
Marten Sytema