Was sind die richtigen Berechtigungen für den .gnupg einschließenden Ordner? gpg: WARNUNG: Unsichere Verzeichnisberechtigungen für die Konfigurationsdatei

25

Ich möchte nicht nur chmod und run bis ich die richtige Antwort bekomme, noch möchte ich GnuPG als root ausführen. Die einfache Lösung wäre, es so einzustellen, dass nur mein Benutzer es lesen kann, aber ich denke nicht, dass dies der beste Weg ist.

Ich erhalte die folgende Fehlermeldung, wenn ich versuche, gpg zu verwenden:

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

GnuPGs ~/.gnupg/aktueller Status:

% 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: -

Die Antwort unter dem folgenden Link gibt 600 Berechtigungen für die ~/gnupg/gpg.confDatei an. Erfordert der einschließende Ordner diese Berechtigungen auch?

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

Nathan Basanese
quelle

Antworten:

51

Ja, Sie müssen auch die Berechtigungen des umschließenden Verzeichnisses korrigieren ~/.gnupg

Ein Angreifer mit ausreichenden Rechten für den Ordner könnte den Ordnerinhalt manipulieren.

Führen Sie die folgenden Befehle aus:

  1. Stellen Sie sicher, dass der Ordner und der Inhalt Ihnen gehören:
    chown -R $(whoami) ~/.gnupg/

  2. Richtige Zugriffsrechte für .gnupgund Unterordner:
    find ~/.gnupg -type f -exec chmod 600 {} \;
    find ~/.gnupg -type d -exec chmod 700 {} \;

Erklärung 600, 700:

Beginnen wir von hinten: '00' bedeutet KEINE Rechte für alle, die nicht der Eigentümer der Dateien / Verzeichnisse sind.

Das bedeutet, dass der Prozess, der diese (gnupg) liest, als Eigentümer dieser Dateien / Verzeichnisse ausgeführt werden muss.

~/.gnupg/Ist ein Ordner, muss der Prozess, der den Inhalt liest, in der Lage sein, diesen Ordner "einzugeben" (= auszuführen). Dies ist das "x" -Bit. Es hat den Wert "1".7 - 6 = 1

Beides ~/.gnupg/und ~/.gnupg/*du willst lesen und schreiben können, das ist es 4 + 2 = 6.

==> Nur der Eigentümer der Dateien kann sie jetzt lesen / schreiben (= 600). Nur er kann auch in das Verzeichnis eintreten (= 700)

==> Diese Dateirechte müssen nicht "dokumentiert" werden, sie sind vom Verwendungszweck ableitbar.

Weitere Informationen zur Berechtigungsnotation: https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions

Alex Stragies
quelle
1
//, Wissen Sie, ob die Hersteller von GnuPG diese spezifischen Berechtigungsstufen dokumentieren? Wenn sie sie dokumentieren, wo könnte ich das finden?
Nathan Basanese
1
Tun sie! Du hast die Fehlermeldung gepostet;)
Alex Stragies
1
// Ja, aber die Fehlermeldung sagt nichts darüber aus, wie die Berechtigungen lauten sollen. Veröffentlichen sie das irgendwo?
Nathan Basanese
//, Vielen Dank, dass Sie denjenigen von uns, die mit dem Berechtigungsnummerierungsschema nicht so vertraut sind, weitere Erklärungen hinzugefügt haben.
Nathan Basanese
6

GnuPG erzwingt standardmäßig sichere Zugriffsrechte, was bedeutet, dass niemand (außer Ihnen) auf Ihr GnuPG-Ausgangsverzeichnis zugreifen kann ~/.gnupg. Diese Zugriffsrechte sind nach dem Kopieren des GnuPG-Ausgangsverzeichnisses von einem anderen Computer oft nicht streng genug, und sehr oft ist ein falscher Besitz der Grund für eine solche Nachricht.

# 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/*

Wenn Sie (aus irgendeinem Grund) eigene Ordner erstellt haben ~/.gnupg, müssen Sie diesem Ordner zusätzlich Ausführungsberechtigungen zuweisen. Für Ordner müssen Ausführungsberechtigungen geöffnet sein.

Jens Erat
quelle
4

Obwohl Jens Erat es bereits in seinem letzten Satz erwähnt hat, sollte betont werden, dass alle Ordner in ~ / .gnupg auch ausführbar sein müssen (Modus 700). Dies gilt insbesondere für den von gpg selbst erstellten Ordner private-keys *. Ich hatte einige Zeit Probleme mit der Erlaubnis, bevor mir das auffiel.

tc88
quelle
find ~ / .gnupg -type d -exec chmod 700 {} \;
Craig Hicks
2

In diesen beiden Zeilen werden die Berechtigungen für Verzeichnisse und Dateien separat und korrekt festgelegt:

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

vorausgesetzt, das Eigentum ist bereits richtig eingestellt.

Beachten Sie, dass die Berechtigungen für die Sockets nicht geändert werden S.gpg-agent*. (Nur das neue gpg v2 enthält Sockets, das alte gpg v1 nicht).

Craig Hicks
quelle
1
Sieht aus wie eine Antwort aus Erfahrung.
Nathan Basanese