正しい答えが得られるまでchmodして実行したくないだけでなく、GnuPGをrootとして実行したくありません。簡単な修正は、ユーザーだけが読めるように設定することですが、それが最善の方法だとは思いません。
Gpgを使用しようとすると、次のエラーが発生します。
gpg: WARNING: unsafe enclosing directory permissions on configuration file `/home/nb/.gnupg/gpg.conf'
gpg: external program calls are disabled due to unsafe options file permissions
gpg: keyserver communications error: general error
gpg: keyserver receive failed: general error
GnuPGの~/.gnupg/
現在の状態:
% stat .gnupg
File: ‘.gnupg’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 1bh/27d Inode: 20578751 Links: 3
Access: (0775/drwxrwxr-x) Uid: ( 1000/ nb) Gid: ( 1000/ XXXX)
Access: 2015-08-09 18:14:45.937760752 -0700
Modify: 2015-08-05 20:54:32.860883569 -0700
Change: 2015-08-05 20:54:32.860883569 -0700
Birth: -
次のリンクの答えは、~/gnupg/gpg.conf
ファイルですが、含まれているフォルダにもこれらの権限が必要ですか?
はい、含まれているディレクトリの権限も修正する必要があります_~/.gnupg
_
フォルダに対する十分な権限を持つ攻撃者がフォルダの内容を操作できるためです。
次のコマンドを実行します。
フォルダとコンテンツがあなたのものであることを確認してください:chown -R $(whoami) ~/.gnupg/
_.gnupg
_およびサブフォルダーの正しいアクセス権:
_find ~/.gnupg -type f -exec chmod 600 {} \;
_
_find ~/.gnupg -type d -exec chmod 700 {} \;
_
_600
_、_700
_の説明:
後ろから始めましょう: '00'は、ファイル/ディレクトリの所有者ではないすべての人に対して、権利がないことを意味しますAT ALL。
つまり、これら(gnupg)を読み取るプロセスは、これらのファイル/ディレクトリの所有者として実行する必要があります。
_~/.gnupg/
_はフォルダーです。内容を読み取るプロセスは、このフォルダーに "入る"(=実行)できる必要があります。これは「x」ビットです。値は「1」です。 _7 - 6 = 1
_
_~/.gnupg/
_と_~/.gnupg/*
_の両方を読み書きできるようにしたい、それは_4 + 2 = 6
_です。
==>ファイルの所有者のみが読み取り/書き込みできるようになりました(= 600)。彼だけがディレクトリにも入ることができます(= 700)
==>これらのファイルの権利は、文書化する必要はありません。意図した使用法から導き出すことができます。
権限表記の詳細: https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions
GnuPGはデフォルトで安全なアクセス権限を適用します。つまり、他の誰も(あなた以外は)GnuPGホームディレクトリ~/.gnupg
にアクセスできません。多くの場合、これらのアクセス権限は、GnuPGホームディレクトリを別のマシンからコピーした後は十分に厳格ではなく、所有権が間違っていることが、このようなメッセージの原因です。
# Set ownership to your own user and primary group
chown -R "$USER:$(id -gn)" ~/.gnupg
# Set permissions to read, write, execute for only yourself, no others
chmod 700 ~/.gnupg
# Set permissions to read, write for only yourself, no others
chmod 600 ~/.gnupg/*
何らかの理由で~/.gnupg
内に独自のフォルダーを作成した場合は、そのフォルダーに実行権限も追加で適用する必要があります。フォルダーを開くには実行権限が必要です。
Jens Eratが前の文で既にそれを述べましたが、〜/ .gnupg内のすべてのフォルダーも実行可能(モード700)でなければならないことを強調する必要があると思います。これは特に、gpg自体によって作成されたprivate-keys *フォルダーに当てはまります。これに気付く前に、しばらく権限の問題に悩まされていました。
次の2行は、ディレクトリとファイルのアクセス許可を個別に正しく設定します。
find ~/.gnupg -type d -exec chmod 700 {} \;
find ~/.gnupg -type f -exec chmod 600 {} \;
所有権がすでに正しく設定されていると仮定します。
notソケットのアクセス許可を変更することに注意してくださいS.gpg-agent*
。 (新しいgpg v2だけがソケットを含み、古いgpg v1はソケットを含みません)。