.Gnupg çevre klasörü için doğru izinler nelerdir? gpg: UYARI: yapılandırma dosyasındaki güvenli olmayan dizin izinlerini ekleme


27

Doğru cevabı alana kadar chmod ve koşmak istemiyorum, GnuPG'yi de kök olarak çalıştırmak istemiyorum. Kolay düzeltme, sadece kullanıcımın okuyabileceği şekilde ayarlamaktır, ancak bunun en iyi yol olduğunu düşünmüyorum.

Gpg kullanmaya çalıştığımda aşağıdaki hatayı alıyorum:

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'nin ~/.gnupg/mevcut durumu:

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

Aşağıdaki bağlantıdaki yanıt ~/gnupg/gpg.confdosya için 600 izin önerir , ancak ekteki klasör de bu izinleri gerektirir mi?

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

Yanıtlar:


53

Evet, ayrıca ekli dizinin izinlerini de düzeltmeniz gerekecek ~/.gnupg

Çünkü klasörde yeterli haklara sahip bir saldırgan klasör içeriğini değiştirebilir.

Aşağıdaki komutları yürütün:

  1. Klasörün + içeriğin size ait olduğundan emin olun:
    chown -R $(whoami) ~/.gnupg/

  2. .gnupgAlt klasörler ve alt klasörler için doğru erişim hakları :
    find ~/.gnupg -type f -exec chmod 600 {} \;
    find ~/.gnupg -type d -exec chmod 700 {} \;

İçin açıklama 600, 700:

Arkadan başlayalım: '00', dosyaların / dizinlerin sahibi olmayan herkes için ALL ALL ALL anlamına gelir.

Bu, bunları (gnupg) okuyan işlemin bu dosyaların / dizinlerin sahibi olarak çalışması gerektiği anlamına gelir.

~/.gnupg/bir klasördür, içindekileri okuyan işlemin bu klasörü "girebilmesi" (= yürütmesi) gerekir. Bu "x" Bit. "1" değerine sahiptir.7 - 6 = 1

Her ikisi de ~/.gnupg/ve ~/.gnupg/*sen okumak ve yazmak istiyorsun, bu 4 + 2 = 6.

==> Şimdi yalnızca dosyaların sahibi bunları okuyabilir / yazabilir (= 600). Dizine yalnızca o da girebilir (= 700)

==> Bu dosya haklarının belgelenmesine gerek yoktur, amaçlanan kullanımdan türetilebilirler.

İzin gösterimi hakkında daha fazla bilgi: https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions


1
//, GnuPG yapımcılarının bu belirli izin seviyelerini belgelediğini biliyor musunuz? Onları belgelerse, bunu nereden bulabilirim?
Nathan Basanese

1
Onlar yapar! Hata mesajını gönderdiniz;)
Alex Stragies

1
//, Evet, ancak hata mesajı izinlerin ne olması gerektiğini söylemiyor. Bunu herhangi bir yerde yayınlıyorlar mı?
Nathan Basanese

//, Ayrıca, numaralandırma şemasına aşina olmayanlarımız için daha fazla açıklama eklediğiniz için teşekkür ederiz.
Nathan Basanese

6

GnuPG varsayılan olarak güvenli erişim ayrıcalıklarını zorunlu kılar, bu da GnuPG ana dizininize başka hiç kimsenin (ancak siz) erişemeyeceği anlamına gelir ~/.gnupg. Bu erişim ayrıcalıkları genellikle GnuPG giriş dizinini başka bir makineden kopyaladıktan sonra yeterince katı değildir ve çoğu zaman yanlış sahiplik böyle bir mesajın nedenidir.

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

İçinde kendi klasörlerinizi oluşturduysanız (herhangi bir nedenle) ~/.gnupg, bu klasöre ayrıca yürütme izinleri de uygulamanız gerekir. Klasörler, yürütme ayrıcalıklarının açılmasını gerektirir.


4

Jens Erat son cümlesinde daha önce bahsetmiş olsa da, ~ / .gnupg içindeki klasörlerin de yürütülebilir (mod 700) olması gerektiğini vurgulamak gerektiğini düşünüyorum. Bu, özellikle gpg tarafından oluşturulan private-keys * klasörü için geçerlidir. Bunu fark etmeden bir süre izin sorunları ile sıkışmıştım.


bulmak ~ / .gnupg -tipi d -exec chmod 700 {} \;
Craig Hicks

2

Bu iki satır, dizinler ve dosyalar için izinleri ayrı ve doğru şekilde ayarlar:

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

sahipliğin zaten doğru ayarlandığını varsayarsak.

O Not değil prizleri izinleri değiştirebilir S.gpg-agent*. (Sadece yeni gpg v2 soketler içerir, eski gpg v1 içermez).


1
Deneyimden gelen bir cevap gibi görünüyor.
Nathan Basanese
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.