sshfsはsystemdを使用してログインするとマウントされ、最後のログアウト時にマウント解除されます。

sshfsはsystemdを使用してログインするとマウントされ、最後のログアウト時にマウント解除されます。

初めてログインするときは、権限のないユーザーとしてマイドキュメントディレクトリをマウント(sshfsを使用)し、最後のログアウト(もちろんすべてのログアウトではない)にアンマウントしたいと思います。

すでにキーベースの認証を使用できます。

ベストアンサー1

権限のないユーザーはsystemdを使用できませんが、より簡単な解決策があります。考えられる解決策の1つは次のとおりです。

Bashを使用している場合は、〜/ .profileの末尾に次のものを含めます。

if [ $(ps aux|grep "sshfs sshfs_user"|wc -l) -eq 1 ]; then
    # Not mounted thus mount
    sshfs sshfs_user@sshfs_server:/remote_path $HOME/mount_point
fi

logout()
{
if [ $(ps aux|grep your_user|grep bash|wc -l) -eq 1 ]; then
    # Last shell thus umount
    umount $HOME/mount_point
    unset -f logout
    logout
fi
}

その後、ユーザーがsshfsを実行していることを確認し、sshfsを使用してドキュメントのリモートフォルダを一度だけマウントします。

sshfs_user@sshfs_server:/remote_path $HOME/mount_point自分のデータと交換してください。この行もif [ $(ps aux|grep your_user|grep bash|wc -l) -eq 1 ]; then変更してくださいあなたのユーザーbashユーザーに。

別のシェルを使用している場合は、.profileを変更して適切なbashを使用してください。つまり、zshの場合、bashをzshに変更し、.profileを.bashrcに変更します。

説明する:

初めてログインすると、リモートsshfsがマウントされていることを確認します。それ以外の場合はインストールされます。

組み込みlogout コマンドを置き換える関数を作成します。この機能は、実行中のシェルプロセスが1つしかないことを確認し、リモートファイルシステムをアンマウントします。その後、logoutループを避けるために代替項目の設定を解除してください。

おすすめ記事