sshfsマウント、sudo権限が拒否されました。

sshfsマウント、sudo権限が拒否されました。

sshfs私はSSHを介していくつかのPythonプロジェクトを含むフォルダを私の~/ディレクトリにインストールしました。

$ mkdir -p ~/mount/my-projects
$ sshfs [email protected]:/home/user/my-projects ~/mount/my-projects

予想通り、ほとんどのコマンドを実行できます。

$ ls ~/mount/my-projects
some-python-project

しかし、これで何でもしようとすると、sudo許可が拒否され失敗します。

$ sudo ls ~/mount/my-projects
ls: cannot access /home/user/mount/my-projects: Permission denied

私が実際に達成したいのは、ローカルコンピュータでPythonパッケージのインストールスクリプトをテストすることです。

$ cd ~/mount/my-projects/some-python-project
$ sudo python setup.py install

答え1

allow_othersshfsオプションを使用する必要があると思います。これを行うには、次のようにsudoを使用して呼び出す必要があります。

sudo sshfs -o allow_other user@myserver:/home/user/myprojects ~/mount/myprojects

このオプションがないと、sshfsを実行しているユーザーだけがマウントにアクセスできます。これはヒューズの限界です。詳細については、入力してくださいman fuse

/etc/fuse.confまた、(少なくともUbuntuでは)「fuse」グループのメンバーである必要があります。それ以外の場合は、上記のコマンドが「sudo」なしで実行されたときにアクセスできないことを示すメッセージが表示されます。

答え2

sshfsユーザーモードプロセスなので、使用する必要はありませんsudo

/root/.sshsudo で実行し、SSH 鍵認証を使用する場合、および以下から鍵を検索します。いいえユーザーの/home/myuser/.ssh

利用可能な~/.ssh/configファイルにも同様に適用されます。sshfs

あなたが好きなら~/.ssh/config

Host remotehost
    HostName 111.22.33.44
    User root
    Port 1234
    IdentityFile ~/.ssh/id_rsa

その後、次のコマンドを使用して一般ユーザーとしてリモートホストをマウントできます。

sshfs remotehost: local_dir

ルートで実行するには、-o IdentityFile /home/myuser/.ssh/id_rsa「raw」コマンドに追加するか、ユーザーのSSHキーへのフルパスを使用して生成できますsshfs/root/.ssh/config

Host remotehost
    HostName 111.22.33.44
    User root
    Port 1234
    IdentityFile /home/myuser/.ssh/id_rsa

これでsshfs remotehost: local_dirルートでも動作します。

インストールすると.ssh/config(リモートからローカルに)または(ローカルからリモートに)を使用してホスト間でフォルダ全体をコピーできるため、単一のワンタイムタスクの場合は必要ありません。scp -r remotehost:remotedir localdirscp -r localdir remotehost:remotedirsshfs

相対リモートパスを使用している場合、これはユーザーのホームフォルダに基づいており、remotehost:remotedir次のようになります。remotedirremotehost:remotedirremotehost:/home/myuser/remotedir

答え3

allow_other私にとって問題を解決したのは、次のようにコマンドにオプションを追加することでした。

$ sshfs -o allow_other [email protected]:/home/user/my-projects ~/mount/my-projects

これによりエラーが発生する可能性があります。

オプションallow_otherは、/etc/fuse.confに "user_allow_other"が設定されている場合にのみ許可されます。お気に入りのテキストエディタを使用してこのヘッダを解決するには、/etc/fuse.confに移動してコメントを外します(次の#削除)。user_allow_other

問題が解決し、sshfs正常に実行できる場合は本当に良いです!それ以外の場合は、次のコマンドを使用してサーキットブロックグループにユーザーを追加する必要があります。

$ sudo usermod -a -G fuse mark

ヒューズグループが存在しないというエラーが発生した場合は、次の方法で簡単にグループを作成できます。

$ sudo groupadd fuse

関連情報