私はしばしばgpg
以下のようにファイルを暗号化するコマンドを使用します。
gpg -c file
file.gpg
コマンドラインの側面を削除し、ノーチラスに右クリックボタンを追加したいと思います。私はNautilus用のSeahorse拡張機能をインストールしようとしましたが、うまくいきませんでした。どうすればいいですか?
答え1
私が知っている限り、Nautilusのコンテキストメニューにアイテムを追加する2つの簡単な方法があります。
- Nautilusスクリプト
nautilus-actions
パッケージはディストリビューションによって減価償却される場合があります。
Debian Bullseye/sid で実行していますが、nautilus-actions
使用できないので、次の方法で説明します。Nautilusスクリプト。 Nautilusの機能の詳細については、しばらく時間をかけてください。StackExchangeのUbuntu側、人々はそこにノーチラススクリプトについてたくさん話しています。デフォルトでは、この機能を使用する~/.local/share/nautilus/scripts/
と、ディレクトリ内のBash(またはPython)スクリプトにコンテキストメニュー項目を追加できます。
2 つのスクリプトの使用
私の提案は、暗号化スクリプトと復号化スクリプトの2つを実装することです。ファイルを右クリックすると、コンテキストメニューが次のように表示されます。
暗号化スクリプト
暗号化スクリプトは簡単です
#!/usr/bin/env bash
# Encrypt
# gpg-encrypt Nautilus script
gpg -c --no-symkey-cache "$1" && rm -f "$1"
最初のBashパラメータ$1
は、Nautilusが右クリックしたときに選択するファイルパスです。
これにより、パスワードがキャッシュに保存されるのを--no-symkey-cache
防ぎます。gpg
デフォルトでは、パスワードはファイルを暗号化して復号化してから一定期間保存されますが、個人的にはこの機能が気に入らないため、このオプションを使用します。
暗号化後に元のファイルを削除する機能も追加しておいたので、&& rm -f "$1"
必要でなければ削除しても構いません。
スクリプトの解読
復号化スクリプトは次のとおりです。
#!/usr/bin/env bash
# Decrypt
# gpg-decrypt Nautilus script
ext=`echo "$1" | grep [.]gpg`
if [ "$ext" != "" ]; then
gpg --batch --yes --no-symkey-cache "$1"
else
zenity --error --text "The selected file is not crypted."
fi
このスクリプトの機能について説明します。選択したファイルがファイルでない場合は、ext
空の変数を使用します。.gpg
いいえ選択したファイルが.gpg
ファイルの場合は空です。
選択したファイルが暗号化されている場合、.gpg
スクリプトはこのgpg
コマンドを使用してファイルを復号化します。--batch --yes
出力ファイルがすでに存在する場合は、それらを上書きするためにこれらのオプションを渡しました。たとえば、復号化がある場合はfile.gpg
上書きされます。file
上書きしたくない場合は、output
gpg
sオプションを使用してzenity --file-selection
復号化されたファイル名を指定することをお勧めします。
選択したファイルが暗号化されていない場合、.gpg
スクリプトはzenity --error
エラーウィンドウを表示します。
このスクリプトは拡張子をチェックして、ファイルが暗号化されているかどうかをテストします。より良いアプローチは、選択したファイルのMIMEタイプを確認することです。暗号化されたファイルのMIMEタイプは、次のコマンドを使用して見つけることができます。
$ > file
$ file -b --mime-type file.gpg
application/octet-stream
~からapplication/octet-stream
一般的なバイナリファイルを意味します。ファイルを暗号化する必要はないので、このアプローチはファイル拡張子を確認するよりも優れているとは思わない。一方、Nautilusは暗号化されたファイルをMIMEタイプgpg
にマッピングすることを知っています。たぶん、誰かがコマンド以外のものを使ってファイルからこのMIMEタイプを取得するapplication/pgp-encrypted
方法を知っているかもしれません。この場合、関連性があります。.gpg
file
2つのファイルを使用してください
2つの右クリックメニュー項目を使用したくない場合は、スクリプトを使用できます。
#!/usr/bin/env bash
# Encrypt-Decrypt
# gpg-encrypt/decrypt Nautilus script
ext=`echo "$1" | grep [.]gpg`
if [ "$ext" != "" ]; then
gpg --batch --yes --no-symkey-cache "$1"
else
gpg -c --no-symkey-cache "$1" && rm -f "$1"
fi
.gpg
このスクリプトは、選択したファイルがファイルの場合は復号化し、選択したファイルが別のファイルの場合は暗号化します。
ノーチラスで復号化するには、ダブルクリックしてください。
また、次のデスクトップエントリをディレクトリに追加して、Nautilusがダブル.gpg
クリックして暗号化を復号化できるようにすることもできます。~/.local/share/applications/
# Decrypt.desktop
[Desktop Entry]
Name=GPG Decrypt
Terminal=false
Type=Application
MimeType=application/pgp-encrypted;
Exec=gpg --batch --yes --no-symkey-cache %F
NoDisplay=true
デフォルトでは、他のアプリケーションを使用していない場合は、Nautilusをダブルクリックするとファイルのパスワードが復号化されます。デフォルトのGNOMEを使用している場合は、Seahorseをデフォルトのアプリケーションとして選択することができます。この場合GPG Decrypt
は選択する必要がありますOpen With Other Application Menu
。
インストールする
この小さなBashスクリプトはすべてを正しい場所にインストールします。
chmod +x 'Encrypt' 'Decrypt' # script files must be executable!
cp Encrypt Decrypt ~/.local/share/nautilus/scripts/
cp Decrypt.desktop ~/.local/share/applications/
update-desktop-database ~/.local/share/applications/
nautilus -q
nautilus
デモ
添付:GNOME 3.34.2および2.2.17gpg
でテストされています(checkが利用可能です$ gpg --version
)。
答え2
sudo apt install seahorse-nautilus
その後、次のコマンドを使用してノーチラスを再起動します。
nautilus -q
次に、ファイルを右クリックして選択します。Encrypt