.gnupg 엔 클로징 폴더에 대한 올바른 권한은 무엇입니까? gpg : 경고 : 구성 파일에 대한 안전하지 않은 둘러싸는 디렉토리 권한


27

정답을 얻을 때까지 chmod를 실행하고 싶지 않으며 GnuPG를 루트로 실행하고 싶지도 않습니다. 쉬운 해결 방법은 내 사용자 만 읽을 수 있도록 설정하는 것이지만 이것이 최선의 방법이라고 생각하지 않습니다.

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

GnuPG의 ~/.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: -

다음 링크의 대답은 ~/gnupg/gpg.conf파일에 대한 600 권한을 알려 주지만 둘러싸는 폴더에도 해당 권한이 필요합니까?

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

답변:


53

예, 또한 둘러싸는 디렉토리의 권한을 수정해야합니다 ~/.gnupg

폴더에 대한 충분한 권한이있는 공격자가 폴더 내용을 조작 할 수 있기 때문입니다.

다음 명령을 실행하십시오.

  1. 폴더 + 내용이 본인의 소유인지 확인하십시오.
    chown -R $(whoami) ~/.gnupg/

  2. .gnupg하위 폴더에 대한 올바른 액세스 권한 :
    find ~/.gnupg -type f -exec chmod 600 {} \;
    find ~/.gnupg -type d -exec chmod 700 {} \;

에 대한 설명 600, 700:

'00'은 파일 / 디렉토리의 소유자가 아닌 모든 사람에게 전혀 권한이 없음을 의미합니다.

즉, 이들 (gnupg)을 읽는 프로세스는 이러한 파일 / 디렉토리의 소유자로 실행되어야합니다.

~/.gnupg/폴더 인 경우 내용을 읽는 프로세스가이 폴더를 "입력"(= 실행) 할 수 있어야합니다. 이것은 "x"비트입니다. 값은 "1"입니다.7 - 6 = 1

모두 ~/.gnupg/~/.gnupg/*당신은 그게 전부 읽기 및 쓰기 수 있어야합니다 4 + 2 = 6.

==> 파일 소유자 만 지금 파일을 읽고 쓸 수 있습니다 (= 600). 오직 그만이 디렉토리에 들어갈 수 있습니다 (= 700)

==>이 파일 권한은 문서화 할 필요가 없으며, 의도 된 용도에서 파생 될 수 있습니다.

권한 표기법에 대한 추가 정보 : https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions


1
//, GnuPG 제작자가 이러한 특정 권한 수준을 문서화하는지 알고 있습니까? 그들이 문서화하면 어디서 찾을 수 있습니까?
Nathan Basanese

1
그들이하다! 오류 메시지를 게시했습니다;)
Alex Stragies

1
// 그렇습니다. 그러나 오류 메시지는 권한이 무엇인지 말하지 않습니다. 그들은 어디서나 출판합니까?
Nathan Basanese 2016 년

//, 또한 허가 번호 매기기 체계에 익숙하지 않은 사람들을 위해 더 많은 설명을 추가해 주셔서 감사합니다.
Nathan Basanese 2016 년

6

기본적으로 GnuPG는 보안 액세스 권한을 강제 적용하므로 다른 사람 (그러나 사용자)은 GnuPG 홈 디렉토리에 액세스 할 수 없습니다 ~/.gnupg. 이러한 액세스 권한은 종종 다른 컴퓨터에서 GnuPG 홈 디렉토리를 복사 한 후에 충분히 엄격하지 않으며, 종종 잘못된 소유권이 그러한 메시지의 원인입니다.

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

내부에 자신 만의 폴더를 만든 경우에는 ~/.gnupg해당 폴더에 추가로 실행 권한을 적용해야합니다. 폴더를 열려면 실행 권한이 필요합니다.


4

Jens Erat는 그의 마지막 문장에서 이미 언급했지만 ~ / .gnupg 내의 모든 폴더는 실행 가능해야합니다 (모드 700). 이것은 특히 gpg 자체로 생성 된 개인 키 * 폴더에 적용됩니다. 나는 이것을 알아 차리기 전에 한동안 권한 문제로 고착되었다.


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

2

이 두 줄은 디렉토리와 파일에 대한 권한을 개별적이고 올바르게 설정합니다.

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

소유권이 이미 올바르게 설정되었다고 가정합니다.

소켓에 대한 권한은 변경 되지 않습니다S.gpg-agent* . (새 gpg v2에만 소켓이 포함되고 이전 gpg v1은 소켓과 관련이 없습니다).


1
경험이 풍부한 답변처럼 보입니다.
Nathan Basanese
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.