Tại sao tôi không thể cd vào một thư mục?


14

Tôi đang chạy Ubuntu 10.04.2 LTS. Tại sao tôi không thể cdvào /var/wwwthư mục?

david@ubuntu:/var$ pwd
/var

david@ubuntu:/var$ ls -l
drwxrwxr-- 13 root root  4096 2011-02-26 21:53 www

david@ubuntu:/var$ cd www
-bash: cd: www: Permission denied

david@ubuntu:/var$ sudo cd www
sudo: cd: command not found

2
cdlà một vỏ được tích hợp sẵn nên sudokhông thể sử dụng.
Tạm dừng cho đến khi có thông báo mới.

Và ngay cả khi nó có thể được sử dụng, nó sẽ là vô nghĩa. Nói chung không có cách nào để làm cho một quá trình khác thay đổi thư mục làm việc của nó, vì vậy bất cứ điều gì cdcó thể thực thi được, nó không thể thay đổi tiến trình shell 'cwd.
David Schwartz

Câu trả lời:


13

Bạn cần thực thi quyền để cd vào một thư mục.

sudo chmod o+x /var/www

3
Một chút làm rõ: Trong ví dụ trên, cả root (người dùng) và root (nhóm) đều có tập bit thực thi. Vì vậy, các thành viên của nhóm gốc có thể cd vào www. Người dùng không thể cd vì anh ta không được bao gồm trong các thành viên nhóm gốc. Bạn có thể kiểm tra điều đó bằng cách xem nội dung của / etc / group
adamo

1

Có một số lý do để cấm '' người khác '' vào thư mục, phải không? Vì vậy, tôi sẽ đề nghị để có quyền truy cập root để vào thư mục đó, làm một số thứ và để nó, bỏ vỏ sudo.

sudo -i 
cd /var/www
# do your thing
cd -
exit

1

Chỉ cần thêm một chút thông tin, sẽ là khôn ngoan khi tạo một người dùng và nhóm web cho hệ thống của bạn và không có các dịch vụ chạy bằng root. Sau đó, bạn cũng có thể thêm người dùng vào nhóm đó nếu cần và không được cung cấp quyền root.

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.