48 votes

Quelles sont les permissions correctes pour le dossier .gnupg ? gpg : WARNING : unsafe enclosing directory permissions on configuration file

Je ne veux pas me contenter de chmoder et d'exécuter jusqu'à ce que j'obtienne la bonne réponse, et je ne veux pas non plus exécuter GnuPG en tant que root. La solution la plus simple serait de faire en sorte que seul mon utilisateur puisse le lire, mais je ne pense pas que ce soit la meilleure solution.

J'obtiens l'erreur suivante lorsque j'essaie d'utiliser 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

Le système GnuPG ~/.gnupg/ statut actuel :

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

La réponse au lien suivant conseille 600 permissions pour les ~/gnupg/gpg.conf mais le dossier qui l'entoure nécessite-t-il également ces autorisations ?

https://askubuntu.com/questions/330755/unsafe-permissions-on-configuration-file-home-david-gnupg-gpg-conf-what-doe

88voto

rohu2187 Points 109

Oui, vous devrez également modifier les permissions du répertoire qui l'entoure. ~/.gnupg

En effet, un attaquant disposant de droits suffisants sur le dossier pourrait en manipuler le contenu.

Exécutez les commandes suivantes :

  1. Assurez-vous que le dossier et son contenu vous appartiennent :
    chown -R $(whoami) ~/.gnupg/

  2. Droits d'accès corrects pour .gnupg et les sous-dossiers :
    find ~/.gnupg -type f -exec chmod 600 {} \;
    find ~/.gnupg -type d -exec chmod 700 {} \;

Explication pour 600 , 700 :

Commençons par le début : "00" signifie AUCUN droit pour quiconque n'est pas le propriétaire des fichiers/répertoires.

Cela signifie que le processus qui les lit (gnupg) doit s'exécuter en tant que propriétaire de ces fichiers/répertoires.

~/.gnupg/ est un dossier, le processus qui lit le contenu doit pouvoir "entrer" (=exécuter) dans ce dossier. Il s'agit du bit "x". Il a la valeur "1". 7 - 6 = 1

Les deux ~/.gnupg/ y ~/.gnupg/* vous voulez être capable de lire et d'écrire, c'est 4 + 2 = 6 .

\==> Seul le propriétaire des fichiers peut maintenant les lire/écrire (=600). Il est également le seul à pouvoir entrer dans le répertoire (=700).

\==> Ces droits sur les fichiers n'ont pas "besoin" d'être documentés, ils découlent de l'utilisation prévue.

Plus d'informations sur la notation de la permission : https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions

11voto

Jens Erat Points 16432

GnuPG applique par défaut des privilèges d'accès sécurisés, ce qui signifie que personne d'autre que vous ne peut accéder à votre répertoire personnel GnuPG. ~/.gnupg . Ces privilèges d'accès ne sont souvent pas assez stricts après avoir copié le répertoire personnel de GnuPG à partir d'une autre machine, et très souvent, une erreur de propriété est à l'origine de ce message.

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

Si vous avez (pour une raison quelconque) créé vos propres dossiers à l'intérieur de ~/.gnupg vous devez également appliquer les autorisations d'exécution à ce dossier. Les dossiers nécessitent des droits d'exécution pour être ouverts.

4voto

tc88 Points 191

Bien que Jens Erat l'ait déjà mentionné dans sa dernière phrase, je pense qu'il convient de souligner que tous les dossiers contenus dans ~/.gnupg doivent également être exécutables (mode 700). Ceci est particulièrement vrai pour le dossier private-keys* qui est créé par gpg lui-même. J'ai été bloqué avec des problèmes de permission pendant un certain temps avant de remarquer cela.

4voto

Craig Hicks Points 231

Ces deux lignes définissent les autorisations séparément et correctement pour les répertoires et les fichiers :

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

en supposant que la propriété soit déjà correctement définie.

Noter qu'il le fait pas changer les permissions sur les sockets S.gpg-agent* . (Seul le nouveau gpg v2 implique les sockets, l'ancien gpg v1 ne le fait pas).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X