Quali sono le autorizzazioni corrette per la cartella che racchiude .gnupg? gpg: ATTENZIONE: non sicuro racchiude le autorizzazioni della directory sul file di configurazione


27

Non voglio solo chmod ed eseguire fino a quando non avrò la risposta giusta, né voglio eseguire GnuPG come root. La soluzione semplice sarebbe semplicemente impostarlo in modo che solo il mio utente possa leggerlo, ma non penso che sia il modo migliore.

Ottengo il seguente errore quando provo ad usare 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

Lo ~/.gnupg/stato attuale di 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: -

La risposta al seguente link avvisa 600 autorizzazioni per il ~/gnupg/gpg.conffile, ma anche la cartella allegata richiede tali autorizzazioni?

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

Risposte:


53

Sì, dovrai anche correggere le autorizzazioni della directory allegata ~/.gnupg

Perché un utente malintenzionato con diritti sufficienti sulla cartella potrebbe manipolare il contenuto della cartella.

Esegui i seguenti comandi:

  1. Assicurati che la cartella + i contenuti ti appartengano:
    chown -R $(whoami) ~/.gnupg/

  2. Diritti di accesso corretti per .gnupge sottocartelle:
    find ~/.gnupg -type f -exec chmod 600 {} \;
    find ~/.gnupg -type d -exec chmod 700 {} \;

Spiegazione per 600, 700:

Partiamo da dietro: '00' significa NESSUNO DIRITTO PER TUTTI quelli che non sono i proprietari dei file / directory.

Ciò significa che il processo di lettura di questi (gnupg) deve essere eseguito come proprietario di questi file / directory.

~/.gnupg/è una cartella, il processo di lettura dei contenuti deve essere in grado di "inserire" (= eseguire) questa cartella. Questo è il bit "x". Ha il valore "1".7 - 6 = 1

Entrambi ~/.gnupg/e ~/.gnupg/*tu vuoi essere in grado di leggere e scrivere, questo è tutto 4 + 2 = 6.

==> Solo il proprietario dei file può leggerli / scriverli ora (= 600). Solo lui può entrare anche nella directory (= 700)

==> Questi diritti sui file non "necessitano" di essere documentati, sono derivabili dall'uso previsto.

Maggiori informazioni sulla notazione di autorizzazione: https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions


1
//, sai se i produttori di GnuPG documentano questi livelli di autorizzazione specifici? Se li documentano, dove potrei trovarlo?
Nathan Basanese,

1
Loro fanno! Hai pubblicato il messaggio di errore;)
Alex Stragies il

1
//, Sì, ma il messaggio di errore non dice quali dovrebbero essere le autorizzazioni. Lo pubblicano ovunque?
Nathan Basanese,

// Inoltre, grazie per aver aggiunto ulteriori spiegazioni a quelli di noi che non hanno familiarità con lo schema di numerazione delle autorizzazioni.
Nathan Basanese,

6

GnuPG per impostazione predefinita applica i privilegi di accesso sicuro, il che significa che nessun altro (tranne te) può accedere alla directory principale di GnuPG ~/.gnupg. Questi privilegi di accesso spesso non sono abbastanza severi dopo aver copiato la home directory di GnuPG da un'altra macchina, e molto spesso la proprietà errata è la ragione di tale messaggio.

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

Se hai (per qualsiasi motivo) creato le tue cartelle all'interno ~/.gnupg, devi anche applicare le autorizzazioni di esecuzione a quella cartella. Le cartelle richiedono l'apertura dei privilegi di esecuzione.


4

Sebbene Jens Erat l'abbia già menzionato nella sua ultima frase, penso che dovrebbe essere sottolineato che anche qualsiasi cartella all'interno di ~ / .gnupg deve essere eseguibile (modalità 700). Questo vale soprattutto per la cartella di chiavi private * creata da gpg stesso. Sono stato bloccato con problemi di autorizzazione per un po 'prima di notare questo.


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

2

Queste due righe imposteranno le autorizzazioni separatamente e correttamente per directory e file:

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

supponendo che la proprietà sia già impostata correttamente.

Si noti che non cambia le autorizzazioni sui socket S.gpg-agent*. (Solo il nuovo gpg v2 riguarda i socket, il vecchio gpg v1 no).


1
Sembra una risposta nata dall'esperienza.
Nathan Basanese,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.