Không thể cd vào thư mục của riêng tôi?


10

Trong một ví dụ EC2, tôi đã thay đổi vị trí nhật ký của Apache thành một thư mục khác với mặc định. Điều này là để tôi có thể giữ các bản ghi trên một EBS (không khởi động, chỉ dữ liệu).

Tuy nhiên, tôi không thể cdvào thư mục nhật ký. Nó thuộc về người dùng của tôi và có quyền đọc cho mọi người. Tôi cũng không thể catghi nhật ký (mặc dù với sudo, nó hoạt động và tôi có thể thấy rằng Apache đang đăng nhập tốt).

$ ls -lh
total 4.0K
drw-rw-rw- 2 ubuntu ubuntu 4.0K 2011-05-15 14:52 apache
$ ls -lh apache/
ls: cannot access apache/error.log: Permission denied
ls: cannot access apache/access.log: Permission denied
total 0
-????????? ? ? ? ?                ? access.log
-????????? ? ? ? ?                ? error.log
$ cd apache
-bash: cd: apache: Permission denied
$ sudo ls -lh apache/
total 2.4M
-rw-r--r-- 1 ubuntu ubuntu 2.4M 2011-05-15 15:04 access.log
-rw-r--r-- 1 ubuntu ubuntu  27K 2011-05-15 15:00 error.log

Điều này không có ý nghĩa gì với tôi. Cứu giúp?

Chỉnh sửa: hệ thống tập tin là ext4.

Câu trả lời:


13

Bạn cần bit thực thi được đặt trên các thư mục nếu bạn muốn có thể chuyển sang đó. (Kiểu hệ thống tập tin không thực sự quan trọng.)

chmod u+x ./apache

7

http://www.albany.edu/facemony/gms/homepage101/unix_permissions.html nói

BẢNG 1. Quyền của GIÁM ĐỐC UNIX

AI CHO PHÉP CHO PHÉP
NGƯỜI DÙNG Đọc (r) Chủ tài khoản có thể liệt kê các tệp trong thư mục.
       Viết (w) Chủ tài khoản có thể tạo hoặc xóa các tệp trong 
                        danh mục.
       Thực thi (x) các tệp truy cập trong thư mục đó theo tên (chẳng hạn như Web 
                        tập tin trang).

NHÓM Đọc (r) Mọi người trong nhóm được chỉ định có thể liệt kê các tệp trong 
                        cac thu mục.
       Viết (w) Mọi người trong nhóm có thể tạo hoặc xóa các tệp trong 
                        danh mục.
       Thực thi (x) Mọi người trong nhóm có thể thay đổi (cd) thành 
                        thư mục và truy cập các tập tin trong thư mục đó theo tên 
                        (chẳng hạn như các tập tin trang web).

KHÁC Đọc (r) Bất cứ ai cũng có thể liệt kê các tập tin trong thư mục.
       Viết (w) Bất cứ ai cũng có thể tạo hoặc xóa các tập tin trong thư mục.
       Thực thi (x) Bất cứ ai cũng có thể thay đổi (cd) vào thư mục và truy cập 
                        tập tin trong thư mục đó theo tên 
                        (chẳng hạn như các tập tin trang web).

Các bài viết trên Wikipedia rất đáng đọc và nói

Hiệu quả của việc thiết lập các quyền trên một thư mục (chứ không phải là một tệp) là "một trong những vấn đề về quyền truy cập tệp thường bị hiểu lầm nhất" (Hatch 2003).


Vì vậy, bạn phải có executequyền để cd vào một thư mục? @RedGrittyBrick
AJP

Có, bạn cần có sự cho phép thực thi trên một thư mục để chuyển đổi qua đó, đó là, để làm bất cứ điều gì với nội dung của nó. Nếu bạn không có quyền thực thi, bạn vẫn có thể xem thư mục và bạn có thể làm statđiều đó, nhưng bạn không thể lshoặc truy cập nội dung của nó.
Blacklight Shining
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.