Các quyền chính xác cho thư mục kèm theo .gnupg là gì? gpg: CẢNH BÁO: không an toàn kèm theo quyền thư mục trên tệp cấu hình


26

Tôi không muốn chỉ chmod và chạy cho đến khi tôi nhận được câu trả lời đúng, tôi cũng không muốn chạy GnuPG với quyền root. Cách khắc phục dễ dàng là chỉ cài đặt nó để chỉ người dùng của tôi có thể đọc nó, nhưng tôi không nghĩ đó là cách tốt nhất.

Tôi gặp lỗi sau khi thử sử dụng 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/Trạng thái hiện tại của 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: -

Câu trả lời tại liên kết sau đây khuyên 600 quyền cho ~/gnupg/gpg.conftệp, nhưng thư mục kèm theo cũng yêu cầu các quyền đó chứ?

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

Câu trả lời:


52

Có, bạn cũng sẽ cần sửa các quyền của thư mục kèm theo ~/.gnupg

Bởi vì kẻ tấn công có đủ quyền trên thư mục có thể thao túng nội dung thư mục.

Thực hiện các lệnh sau:

  1. Đảm bảo, thư mục + nội dung thuộc về bạn:
    chown -R $(whoami) ~/.gnupg/

  2. Quyền truy cập chính xác cho .gnupgvà thư mục con:
    find ~/.gnupg -type f -exec chmod 600 {} \;
    find ~/.gnupg -type d -exec chmod 700 {} \;

Giải thích cho 600, 700:

Hãy bắt đầu từ phía sau: '00' có nghĩa là KHÔNG có quyền TẤT CẢ đối với mọi người không phải là chủ sở hữu của các tệp / thư mục.

Điều đó có nghĩa là, quá trình đọc những (gnupg) này phải chạy với tư cách là chủ sở hữu của các tệp / thư mục này.

~/.gnupg/là một thư mục, quá trình đọc nội dung phải có khả năng "nhập" (= thực thi) thư mục này. Đây là Bit "x". Nó có giá trị "1".7 - 6 = 1

Cả bạn ~/.gnupg/~/.gnupg/*bạn đều muốn có thể đọc và viết, đó là 4 + 2 = 6.

==> Chỉ chủ sở hữu của các tệp có thể đọc / ghi chúng ngay bây giờ (= 600). Chỉ anh ta mới có thể nhập vào thư mục (= 700)

==> Các quyền tệp này không "cần" được ghi lại, chúng có thể lấy được từ mục đích sử dụng.

Thông tin thêm về ký hiệu cấp phép: https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditable_Unix_permissions


1
//, Bạn có biết nếu các nhà sản xuất GnuPG ghi lại các mức cấp phép cụ thể này không? Nếu họ làm tài liệu cho họ, tôi có thể tìm thấy cái này ở đâu?
Nathan Basan

1
Họ làm! Bạn đã đăng thông báo lỗi;)
Alex Stragies

1
//, Yeah, nhưng thông báo lỗi không cho biết các quyền nên là gì. Họ có công bố rằng bất cứ nơi nào?
Nathan Basan

//, Ngoài ra, cảm ơn vì đã thêm nhiều lời giải thích cho những người trong chúng ta không quen thuộc với sơ đồ đánh số quyền.
Nathan Basan 30/03/2017

6

Theo mặc định, GnuPG thực thi các đặc quyền truy cập an toàn, có nghĩa là không ai khác (nhưng bạn) có thể truy cập vào thư mục chính GnuPG của bạn ~/.gnupg. Các đặc quyền truy cập này thường không đủ nghiêm ngặt sau khi sao chép thư mục chính GnuPG từ một máy khác và quyền sở hữu rất thường xuyên là lý do của một thông báo như vậy.

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

Nếu bạn (vì bất kỳ lý do nào) đã tạo các thư mục của riêng bạn bên trong ~/.gnupg, bạn cũng phải áp dụng thêm quyền thực thi cho thư mục đó. Các thư mục yêu cầu đặc quyền thực thi được mở.


4

Mặc dù Jens Erat đã đề cập đến nó trong câu cuối cùng của mình, tôi nghĩ cần nhấn mạnh rằng bất kỳ thư mục nào bên trong ~ / .gnupg cũng phải được thực thi (chế độ 700). Điều này đặc biệt giữ cho thư mục khóa riêng * được tạo bởi chính gpg. Tôi đã bị mắc kẹt với các vấn đề cấp phép trong một thời gian trước khi tôi nhận thấy điều này.


tìm ~ / .gnupg -type d -exec chmod 700 {} \;
Craig Hicks

2

Hai dòng này sẽ đặt quyền riêng biệt và chính xác cho các thư mục và tệp:

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

giả sử quyền sở hữu đã được đặt chính xác.

Lưu ý rằng nó không thay đổi quyền trên các ổ cắm S.gpg-agent*. (Chỉ gpg v2 mới liên quan đến ổ cắm, gpg v1 cũ không có).


1
Trông giống như một câu trả lời của kinh nghiệm.
Nathan Basan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.