Quyền bị từ chối cho chủ sở hữu, mặc dù nó được đặt thành 666 trong thư mục .ssh


12

Gần đây tôi đã làm hỏng thư mục .ssh. Tôi đã thực hiện một số thay đổi về quyền, tôi nghĩ và bây giờ nó sẽ không cho phép tôi truy cập nữa. Tôi có thể truy cập nó với tư cách là người dùng root (sudo -i) nhưng không phải là somesh

Tôi bị từ chối khi liệt kê hoặc trích dẫn vào .ssh mặc dù nó hiển thị các tệp

ls: cannot access /home/somesh/.ssh/amazon.pem: Permission denied
ls: cannot access /home/somesh/.ssh/id_rsa: Permission denied
ls: cannot access /home/somesh/.ssh/known_hosts: Permission denied
ls: cannot access /home/somesh/.ssh/id_rsa.pub: Permission denied
total 0
-????????? ? ? ? ?            ? amazon.pem
-????????? ? ? ? ?            ? id_rsa
-????????? ? ? ? ?            ? id_rsa.pub
-????????? ? ? ? ?            ? known_hosts

Đăng nhập bằng root và ls cho kết quả như sau

# ls -l /home/somesh/ -a |grep ssh
drw-rw-rw-  2 somesh somesh 4096 Aug 27 15:45 .ssh

Ngay cả các tệp bên trong là .ssh được sở hữu bởi somesh: somesh và chm

-rw-rw-rw- 1 somesh somesh 1692 Aug 27 15:45 amazon.pem
-rw-rw-rw- 1 somesh somesh 1675 Aug 25 20:01 id_rsa

5
Xem tại sao chmod 644 làm cho các thư mục không thể truy cập? . AFAIK quyền chính xác cho ~/.sshthư mục là 700( drwx------).
Steeldo

Câu trả lời:


21

Steeldo nói đúng. Trên thư mục bạn cũng cần xtruy cập cờ để có thể liệt kê các tập tin bên trong.

Sửa thư mục bằng cách sử dụng chmod 700 ~/.sshsẽ giúp bạn vào trạng thái (chính xác) này:

$ ls -ld ~/.ssh
drwx------. 2 user user 4096 Aug 26 10:37 /home/user/.ssh

Ngoài ra, bạn nên sửa khóa bằng cách sử dụng chmod 600 ~/.ssh/id_rsachmod 644 ~/.ssh/*.pubđể có được điều này:

$ ls -l ~/.ssh/
-rw-------. 1 user user  1766 Mar  7  2014 id_rsa
-rw-r--r--. 1 user user   415 Mar  7  2014 id_rsa.pub

Tôi đã cố gắng khắc phục điều này trước chính nó, bằng cách sao chép nó ở một nơi khác và sau đó sao chép lại
Somesh Mukherjee

-2

Khi bạn chạy lệnh ls -l trên bất kỳ thư mục nào, cột đầu tiên là cột quyền được hiểu như sau:

1 ------------- 2 3 4 ------- 5 6 7 ------- 8 9 10

(LOẠI) ---- (người dùng) ----- (nhóm) ---- (những người khác)

LOẠI: Nếu '-' , đó là một tệp. Nếu 'd' nó là một thư mục.

Quyền: đọc: 4, viết: 2, thực hiện: 1

Vì vậy, để đọc, viết và thực thi quyền của bạn sẽ là 7 trong nhóm người dùng.

Bạn có thể dùng

sudo chmod 7 6 6 file_name 

hoặc là

sudo chmod -R u+x /home/somesh/.ssh 

-R - điều này sửa đổi sự cho phép của thư mục mẹ và các đối tượng con trong


2
Tôi không hiểu phần TYPE; cũng chmod 700 file_namechmod u+x file_namelàm hai việc hoàn toàn khác nhau. Cái đầu tiên đặt quyền cho rwx/---/---, cái thứ hai chỉ đặt xbit cho chủ sở hữu (và bắt đầu từ 666nó sẽ thay đổi tệp thành 766, không phải 700).
kos

1
@kos, s / he có nghĩa là trường đầu tiên trong chuỗi cho biết loại mục nhập tệp. Một -ký tự có nghĩa là nó là một tập tin "bình thường". A dcó nghĩa là nó là một thư mục. Cũng có những cái khác, như c, l(cho liên kết tượng trưng) s, và thậm chí nhiều hơn cho các hệ điều hành khác.
Josh

@Josh Yep, bố cục làm tôi bối rối.
kos
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.