.gnupgを含むフォルダーの正しいアクセス許可は何ですか?gpg:警告:構成ファイルの安全でない囲みディレクトリ許可


26

正しい答えが得られるまでchmodして実行したり、GnuPGをルートとして実行したりしたくないのです。簡単な解決策は、自分のユーザーだけが読むことができるように設定することですが、それが最良の方法だとは思いません。

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ファイルの600のアクセス許可をアドバイスしていますが、それを囲むフォルダーにもそれらのアクセス許可が必要ですか?

/ubuntu/330755/unsafe-permissions-on-configuration-file-home-david-gnupg-gpg-conf-what-doe

回答:


52

はい、囲んでいるディレクトリの権限も修正する必要があります ~/.gnupg

フォルダーに対する十分な権限を持つ攻撃者がフォルダーの内容を操作する可能性があるためです。

次のコマンドを実行します。

  1. フォルダーとコンテンツがあなたのものであることを確認してください:
    chown -R $(whoami) ~/.gnupg/

  2. .gnupgおよびサブフォルダーの正しいアクセス権:
    find ~/.gnupg -type f -exec chmod 600 {} \;
    find ~/.gnupg -type d -exec chmod 700 {} \;

以下のための説明600700

後ろから始めましょう。「00」は、ファイル/ディレクトリの所有者ではないすべての人に権利がないことを意味します。

つまり、これらを読み取るプロセス(gnupg)は、これらのファイル/ディレクトリの所有者として実行する必要があります。

~/.gnupg/フォルダーである場合、コンテンツを読み取るプロセスは、このフォルダーを「入力」(=実行)できる必要があります。これが「x」ビットです。値は「1」です。7 - 6 = 1

両方とも~/.gnupg/~/.gnupg/*読み書きできるようにしたい、thats 4 + 2 = 6

==>ファイルの所有者のみが、現在それらを読み書きできます(= 600)。彼だけがディレクトリに入ることもできます(= 700)

==>これらのファイルの権利は文書化する必要はなく、意図した使用法から派生します。

許可表記に関する詳細:https : //en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions


1
//、GnuPGのメーカーがこれらの特定の許可レベルを文書化しているかどうか知っていますか?彼らがそれらを文書化する場合、どこで見つけることができますか?
ネイサンバサニーズ

1
彼らがやる!エラーメッセージを投稿しました;)
アレックスストラージ

1
//、はい、しかし、エラーメッセージは、アクセス許可がどうあるべきかを言っていません。彼らはどこでもそれを公開していますか?
ネイサンバサネーゼ

//、また、許可の番号付けスキームに詳しくない私たちの説明を追加してくれてありがとう。
ネイサンバサネーゼ

6

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に独自のフォルダーを作成している場合は、そのフォルダーに実行権限を追加で適用する必要もあります。フォルダーを開くには実行権限が必要です。


4

Jens Eratは彼の最後の文ですでに言及しましたが、〜/ .gnupg内のフォルダーも実行可能(モード700)でなければならないことを強調すべきだと思います。これは、特にgpg自体によって作成されるprivate-keys *フォルダーに当てはまります。このことに気付く前に、しばらくの間許可の問題に悩まされていました。


find〜/ .gnupg -type d -exec chmod 700 {} \;
クレイグヒックス

2

次の2行は、ディレクトリとファイルのアクセス許可を個別に正しく設定します。

find ~/.gnupg -type d -exec chmod 700 {} \;
find ~/.gnupg -type f -exec chmod 600 {} \;

所有権が既に正しく設定されていることを前提としています。

ソケットの許可変更されないことに注意してくださいS.gpg-agent*。(新しいgpg v2のみがソケットを含み、古いgpg v1は含まれません)。


1
経験から生まれた答えのように見えます。
ネイサンバサニーズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.