スクリプトについて
暗号化ファイルシステムの拡張設定で紹介したスクリプトについてです。「Gnome Encfs Manager」では、暗号化ファイルシステムをマウントする前とした後、アンマウントする前とした後で、ユーザーが指定したスクリプトを実行することができます。
以下の設定が該当します。
設定 | 呼ばれるタイミング | 備考 |
---|---|---|
pre_mount_command | 暗号化ファイルシステムをマウントする前 | マウントを中止させることができる |
post_mount_command | 暗号化ファイルシステムをマウントした後 | |
pre_unmount_command | 暗号化ファイルシステムをアンマウントする前 | アンマウントを中止させることができる |
post_unmount_command | 暗号化ファイルシステムをアンマウントした後 | |
mount_added_command | ボリューム(パーティション)がマウントされた時 | |
mount_removed_command | ボリューム(パーティション)がアンマウントされた時 |
スクリプトはシェルスクリプトでも既存のコマンドでも何でも良いですが、スクリプトの実行が終わるまで待機するため、並行してなにかアプリを起動させたい時は、スクリプト本体は実行が完了するようにする必要があります。
渡される変数について
「Gnome Encfs Manager」からは以下のパラメーターが渡されてきます。パラメーター | 内容 |
---|---|
STASH_DIR | ソースディレクトリーのパス |
MOUNT_DIR | マウント先フォルダーのパス |
GENCFSM_CANCEL | マウント・アンマウントを中止させる戻り値 |
SCRIPT_TYPE | スクリプトが呼ばれたタイミングを表す識別子 |
SCRIPT_TYPEについて
上記にも記述した通り「SCRIPT_TYPE」は、スクリプトが呼ばれたタイミングを表す識別子ですが、この識別子は設定名と同じです。例えば暗号化ファイルシステムがマウントされた時の「SCRIPT_TYPE」の値は、「pre_mount_command」です。
上記の表を参考にしてください。
1つのスクリプトを使いまわす場合、「SCRIPT_TYPE」の値を見て処理を分けると良いでしょう。
スクリプトファイルの置き場について
どこに置いても良いのですが、自分でスクリプトを作成する場合、以下のいずれかのフォルダー内に配置すると良いでしょう。これらのフォルダーのパスは「Gnome Encfs Manager」がデフォルトのパスとして認識するため、スクリプトファイル指定時にパスの入力を省略できます。
ユーザー固有のフォルダー
各ユーザー固有のスクリプトファイルは、「~/.local/share/gnome-encfs-manager/scripts」に配置します。ユーザー固有のフォルダーは自動的に作成されないので、必要に応じて自分で作成してください。
以下のようにフォルダー内にファイルを配置すれば良いです。
全ユーザー共通のフォルダー
全ユーザーで共通して利用するスクリプトファイルは、「/usr/share/gnome-encfs-manager/scripts」に配置します。フォルダーの中身を見ると、シェルスクリプトのサンプルが用意されています。
これらのサンプルを参考にしてスクリプトを作成すると良いでしょう。
マウント・アンマウントを中止する
スクリプトで戻り値に「GENCFSM_CANCEL」を指定すると、マウントやアンマウントを中止します。暗号化ファイルシステムを操作するには
スクリプトから暗号化ファイルシステムを操作する場合、「gnome-encfs-manager」コマンドを利用します。以下のコマンドを実行すれば、操作内容の一覧が表示されます。
gnome-encfs-manager --help
The following commands allow you to control a running instance of GEncfsM.
<directory> can be either the stash directory or the mount directory.
* list_stashes
* mount <directory>
* unmount <directory>
* is_available <directory>
* is_configured <directory>
* is_mounted <directory>
* set variable=value <directory>
* get variable <directory>
* set_pref variable=value
* get_pref variable
* set_var variable=value
* get_var variable
* create_stash <stash_directory> <mount_directory> [config_file]
* import_stash <stash_directory> <mount_directory> [config_file]
* remove_stash <directory>
* delete_stash <directory>
* indicate your_status_message | message_id
* quit
<directory> can be either the stash directory or the mount directory.
* list_stashes
* mount <directory>
* unmount <directory>
* is_available <directory>
* is_configured <directory>
* is_mounted <directory>
* set variable=value <directory>
* get variable <directory>
* set_pref variable=value
* get_pref variable
* set_var variable=value
* get_var variable
* create_stash <stash_directory> <mount_directory> [config_file]
* import_stash <stash_directory> <mount_directory> [config_file]
* remove_stash <directory>
* delete_stash <directory>
* indicate your_status_message | message_id
* quit
上記を組み合わせて暗号化ファイルシステムを操作すると良いでしょう。
デフォルトのパスについて
「Gnome Encfs Manager」が暗号化ファイルシステムを作成する時や、マウント先のフォルダーを作成する時、デフォルトのパスにフォルダーを作成しようとします。もちろんユーザーは任意の場所にそれぞれのフォルダーを作成することができます。
もし操作対象の暗号化ファイルシステムがデフォルトのパス内に存在する場合、以下の省略記号を利用することができます。
:/
この省略記号は以下のパスに展開されます。
~/Encfs/
例えば「:/.myEnc」と指定すると、「~/Encfs/.myEnc」に展開されます。
デフォルトのパスの設定について
デフォルトのパスは、「Gnome Encfs Manager」の設定画面で確認及び変更することができます。パラメーターを表示する
シェルスクリプトを作成し、「Gnome Encfs Manager」から渡されるパラメーターを表示してみます。1.シェルスクリプトの作成
以下のシェルスクリプトを作成しました。#!/bin/bash showText="STASH_DIR=$STASH_DIR\nMOUNT_DIR=$MOUNT_DIR\nSCRIPT_TYPE=$SCRIPT_TYPE\nGENCFSM_CANCEL=$GENCFSM_CANCEL" zenity --info --text=$showText
2.シェルスクリプトの保存
「~/.local/share/gnome-encfs-manager/scripts」フォルダーにこのシェルスクリプトを保存しました。ファイル名は「sample.sh」です。
3.拡張設定
作成したシェルスクリプトを暗号化ファイルシステムの拡張設定で指定します。ここでは「pre_mount_command」にシェルスクリプトを指定しました。
4.暗号化ファイルシステムをマウントする
「pre_mount_command」は、暗号化ファイルシステムをマウントする前に呼ばれます。暗号化ファイルシステムをマウントします。