私が見つけたすべての同様の質問のトピックであるSSHFSマウントポイントマウントについて尋ねることはありません。
私のマウントポイント(/path/to/sshfs/mount/
)が正しくマウントされており、私のユーザーとして予想されるすべてのファイルを一覧表示、読み書きできます。
スクリプトをローカルディレクトリにコピーする権限があります。ただし、スクリプトにはライブラリファイルとリソースを含む複数のサブディレクトリが必要なため、ローカルにコピーするのではなく、スクリプトがある場所でスクリプトを実行することをお勧めします。しかもそうではない。必要意図したタスクを実行するためにローカルコンピュータにコピーされます。
残念ながら、SSHFSマウントの場合、スクリプトはシステムディレクトリにいくつかのファイルをインストールし、システムに存在するさまざまなユーザーのファイルを更新する必要があるため、多くのタスクを実行するにはroot権限が必要です。
これは私のせいです:
$ cd /path/to/sshfs/mount/
$ sudo ./myscript.sh
sudo: unable to execute ./myscript.sh: Permission denied
私が行ったチェックは次のとおりです。
$ ls -la
-rwxr-x--- 1 myuser team 8173 Dec 15 06:33 myscript.sh
$ sudo -i
[sudo] password for myuser:
#
$ cat /etc/fstab
myuser@myserver:/path/to/sshfs/mount/ /path/to/sshfs/mount/ fuse.sshfs x-systemd.automount,_netdev,user,follow_symlinks,identityfile=/path/to/.ssh/key_file,allow_other,default_permissions 0 2
これは、必須ヒューズ.confオプションが有効になっていることを示します。
$ cat /etc/fuse.conf
user_allow_other
実行できるSSHFS構成は次のとおりです。
$ sudo /path/to/sshfs/mount/myscript.sh
ベストアンサー1
mount コマンドは、exec
次のnoexec
マウントオプションをサポートします。
exec:バイナリファイルの実行を許可します。
noexec:マウントされたファイルシステムでバイナリファイルを直接実行することはできません。
インストールオプションを指定しなくてもインストールnoexec
オプションを指定すると、インストールオプションが適用されますusers
。
- ユーザー:他の一般ユーザーがファイルシステムをマウントしても、すべてのユーザーがファイルシステムをマウントおよびマウント解除できます。
ユーザーオプションは、noexec、nosuid、およびnodevオプションを意味します。(オプションラインusers、exec、dev、suidなどの後続のオプションに置き換えられない限り)
このコマンドはnoexec
暗黙的に適用されていることを示します。
findmnt /path/to/sshfs/mount
myuser@myserver:/path/to/sshfs/mount/ fuse.sshfs rw,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,default_permissions,allow_other
したがって、この問題に対する解決策は簡単です。exec
マウントオプションを追加するだけです。