`Quyền bị từ chối` cho CD vào một thư mục mặc dù quyền là chính xác


13

Điều này là rất khôn ngoan. Đăng nhập vào hộp Linux (RHEL) với tư cách là người dùng 'g', thực hiện một ls -lahchương trình

drwxrwxrwx 6 g    g    4.0K Jun 23 13:27 .
drwxrw-r-x 6 root root 4.0K Jun 23 13:15 ..
-rwxrw---- 1 g    g     678 Jun 23 13:26 .bash_history
-rwxrw---- 1 g    g      33 Jun 23 13:15 .bash_logout
-rwxrw---- 1 g    g     176 Jun 23 13:15 .bash_profile
-rwxrw---- 1 g    g     124 Jun 23 13:15 .bashrc
drw-r----- 2 g    g    4.0K Jun 23 13:25 .ssh

Vì vậy, người dùng 'g' trong nhóm 'g' / nên / có thể đọc và ghi vào thư mục .ssh nhưng nếu tôi làm thì ls -lah .ssh/tôi nhận được ls: .ssh/: Permission denied. Tôi cũng bị từ chối cấp phép nếu tôi thử và catbất kỳ tệp nào trong thư mục

Nếu tôi đi bằng root và thay đổi các điều khoản để 700, 744, 766hoặc bất cứ điều gì miễn là được sự cho phép 'sử dụng' là 7 nó hoạt động và tôi có thể CD và LS thư mục và các tập tin bên trong.

id g trả lại

uid=504(g) gid=506(g) groups=506(g)

Biên tập:

Tôi đã sao chép chính xác các quyền này sang một hộp giống hệt khác và không có vấn đề gì. Tôi có thể cdvào một thư mục mà không cần thực thi quyền.

Câu trả lời:


27

Thư mục sẽ yêu cầu bit thực thi được thiết lập để bạn nhập nó. Tôi không biết những gì bạn đã kiểm tra, nhưng bạn không thể vào một thư mục mà không có bit thực thi hoặc đọc các tệp trong đó:

$ mkdir foo
$ echo "baz" > foo/bar
$ chmod 660 foo
$ cd foo
bash: cd: foo: Permission denied
$ cat foo/bar
cat: foo/bar: Permission denied

Đó là, trừ khi quy trình của bạn có bộ khả năng POSIX CAP_DAC_OVERRIDE (như root có), cho phép bạn nhập các thư mục mà không cần tập bit thực thi, iirc.

Về cơ bản, bạn nên cố gắng giữ cho thư mục .ssh của bạn ở mức 700 và mọi thứ trong đó là 600, để an toàn. Trang ssh man cung cấp cho mỗi hướng dẫn tệp về quyền sở hữu và chế độ cấp phép được yêu cầu cho các tệp trong ~ / .ssh.


17

Một thư mục yêu cầu sự cho phép thực thi để cdvào nó. Đây là hành vi được mong đợi.


Nhưng tôi cũng không thể có catbất kỳ tệp nào trong thư mục có cùng quyền, chúng không cần quyền thực thi để đọc
Smudge

4
Bạn cần thực thi quyền trên thư mục để truy cập bất cứ thứ gì trong thư mục. Câu trả lời này là chính xác.
EightBitTony

1
@samarudge Hãy xem xét xtrên một thư mục để cho phép bạn "ở trong" thư mục đó. Không có nó, bạn không thể cd vào thư mục, bạn không thể thấy những gì trong thư mục, bạn không thể mở những gì trong thư mục. Nếu bạn không được phép vào thư viện, bạn không thể đọc sách ở đó.
DerfK

Nếu tôi thêm quyền thực thi vào thư mục (744 vào thư mục, 644 cho các tệp bên trong), tôi gặp lỗi từ SSHD nói rằng quyền của thư mục .ssh phải là 644 hoặc thấp hơn. Nhưng với các quyền như 644, nó nói rằng nó không thể truy cập .ssh / ủy
quyền_key

* Nó đặc biệt nói '.ssh / thư mục', không phải các tệp
Smudge

2

Để ls hoặc cd vào một thư mục, bạn cần có quyền thực thi. Mặc dù bạn không có chúng, nhưng bạn không thể thực sự kiểm tra nội dung và xem các quyền của các tệp bên trong, vì vậy rất có thể các quyền của tệp bị sai, nếu bạn không thể xử lý chúng.

Quyền truy cập thư mục 700 và quyền truy cập tệp 644 là thiết lập hoàn toàn OK đối với tôi.


Quyền cho các tệp là 644, chủ sở hữu của các tệp là g: g nên quyền của các tệp là chính xác. Nếu tôi thêm quyền thực thi vào thư mục SSHD nói rằng tôi cần giảm quyền xuống 644 trở xuống
Smudge

Nhận xét của Sunny là chính xác - bỏ phiếu hơi gay gắt
AndyM

0

Tôi nhận nó đây là một vấn đề tập tin ssh bây giờ? không phải là một vấn đề chmod chung?

Nếu vậy hãy thử

$chmod go-w ~/
$chmod 700 ~/.ssh
$chmod 600 ~/.ssh/*
$chmod 600 ~/.ssh/.*

một vấn đề khác, có thể là điểm gắn kết, nó được gắn kết từ một nơi khác, CIFS, NFS?
AndyM

0

Các thư mục cần x bit set (đối với thư mục bit được xem là bit tìm kiếm) để mở. Vì vậy, tôi sử dụng cây để tôi chỉ có thể nhận được bộ thư mục và tránh cơn ác mộng có tất cả các tệp được đặt làm tệp thực thi (tùy chọn cho cây là -d List directories only.):

sudo tree -faid here_goes_your_directory xargs -L1 -I{} sudo chmod 755  "{}"

Cảnh báo!!! bạn nên cân nhắc điều này:

  • sử dụng chmod hoặc chown đệ quy trên /thư mục gốc hoặc thư mục hệ thống sẽ phá hủy hệ điều hành của bạn (thực sự mọi thứ đệ quy trên /thư mục hoặc thư mục hệ thống đều nguy hiểm)

  • Đây không phải là một thực tiễn bảo mật tốt để đặt hàng loạt quyền như thế

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.