Jakie są poprawne uprawnienia dla dołączanego folderu .gnupg? gpg: OSTRZEŻENIE: niebezpieczne dołączanie uprawnień do katalogu w pliku konfiguracyjnym

27

Nie chcę po prostu chmod i uruchamiać, dopóki nie otrzymam właściwej odpowiedzi, ani nie chcę uruchamiać GnuPG jako root. Łatwym rozwiązaniem byłoby ustawienie go tak, aby tylko mój użytkownik mógł go przeczytać, ale nie sądzę, że to najlepszy sposób.

Podczas próby użycia gpg pojawia się następujący błąd:

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/Obecny status 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: -

Odpowiedź pod poniższym linkiem sugeruje 600 uprawnień do ~/gnupg/gpg.confpliku, ale czy załączony folder również wymaga tych uprawnień?

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

Nathan Basanese
źródło

Odpowiedzi:

53

Tak, musisz także naprawić uprawnienia do załączającego katalogu ~/.gnupg

Ponieważ osoba atakująca z wystarczającymi prawami do folderu może manipulować zawartością folderu.

Wykonaj następujące polecenia:

  1. Upewnij się, że folder + zawartość należą do Ciebie:
    chown -R $(whoami) ~/.gnupg/

  2. Prawidłowe prawa dostępu .gnupgi podfoldery:
    find ~/.gnupg -type f -exec chmod 600 {} \;
    find ~/.gnupg -type d -exec chmod 700 {} \;

Wyjaśnienie 600, 700:

Zacznijmy od tyłu: „00” oznacza BRAK praw w ogóle dla wszystkich, którzy nie są właścicielami plików / katalogów.

Oznacza to, że proces odczytu tych plików (gnupg) musi działać jako właściciel tych plików / katalogów.

~/.gnupg/jest folderem, proces odczytu zawartości musi mieć możliwość „wejścia” (= wykonania) tego folderu. To jest bit „x”. Ma wartość „1”.7 - 6 = 1

Zarówno ~/.gnupg/i ~/.gnupg/*chcesz być w stanie czytać i pisać, to jest to 4 + 2 = 6.

==> Tylko właściciel plików może teraz je czytać / zapisywać (= 600). Tylko on może również wejść do katalogu (= 700)

==> Te prawa do plików nie muszą być „dokumentowane”, można je uzyskać na podstawie zamierzonego użycia.

Więcej informacji o notacji uprawnień: https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions

Alex Stragies
źródło
1
// Czy wiesz, czy twórcy GnuPG dokumentują te konkretne poziomy uprawnień? Jeśli je udokumentują, gdzie mogę to znaleźć?
Nathan Basanese
1
Oni robią!
Wysłałeś
1
// Tak, ale komunikat o błędzie nie mówi, jakie powinny być uprawnienia. Czy publikują to gdziekolwiek?
Nathan Basanese
//, Dziękujemy również za dodanie wyjaśnienia dla tych z nas, którzy nie są tak obeznani ze schematem numeracji uprawnień.
Nathan Basanese
6

GnuPG domyślnie egzekwuje uprawnienia bezpiecznego dostępu, co oznacza, że ​​nikt inny (oprócz ciebie) nie może uzyskać dostępu do katalogu domowego GnuPG ~/.gnupg. Te uprawnienia dostępu często nie są wystarczająco surowe po skopiowaniu katalogu domowego GnuPG z innego komputera, i bardzo często niewłaściwe prawo własności jest przyczyną takiej wiadomości.

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

Jeśli (z jakiegokolwiek powodu) utworzyłeś własne foldery ~/.gnupg, musisz dodatkowo zastosować uprawnienia do wykonywania tego folderu. Foldery wymagają otwarcia uprawnień do wykonywania.

Jens Erat
źródło
4

Chociaż Jens Erat wspomniał o tym już w swoim ostatnim zdaniu, myślę, że należy podkreślić, że wszelkie foldery wewnątrz ~ / .gnupg muszą być również wykonywalne (tryb 700). Dotyczy to zwłaszcza folderu kluczy prywatnych *, który jest tworzony przez sam gpg. Przez pewien czas miałem problemy z uzyskaniem pozwolenia, zanim to zauważyłem.

tc88
źródło
znajdź ~ / .gnupg -type d -exec chmod 700 {} \;
Craig Hicks,
2

Te dwa wiersze ustawią uprawnienia osobno i poprawnie dla katalogów i plików:

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

zakładając, że własność jest już ustawiona poprawnie.

Uwaga: nie zmienia to uprawnień do gniazd S.gpg-agent*. (Tylko nowy gpg v2 zawiera gniazda, stary gpg v1 nie).

Craig Hicks
źródło
1
Wygląda jak odpowiedź na doświadczenie.
Nathan Basanese