Làm cách nào tôi có thể chmod 777 tất cả các thư mục con của / var / www?


54

Tôi đang chạy một máy chủ web và máy chủ FTP, trong đó /var/wwwbị ràng buộc /home/user/www.

Tôi đặt cả hai thư mục thành chmod 777(điều này tốt vì nó chỉ để thử nghiệm).

Tôi có thể tải tệp lên /home/user/www, nhưng bất cứ khi nào tôi tạo thư mục mới, tôi luôn phải chạy chmod 777trên thư mục đó.

Nếu không, khi tôi cố duyệt nó, tôi nhận được thông báo lỗi

Bạn không có quyền truy cập / kiểm tra / trên máy chủ này.

Có cách nào tôi có thể làm cho tất cả các thư mục con bên trong /var/wwwcó thể truy cập được không? Hoặc quyền của họ có thể được tự động thiết lập 777? Thật khó chịu khi tôi phải gõ chmod 777mỗi lần.


12
Chỉ cần để lại ở đây XIN VUI LÒNG KIỂM TRA KHÔNG SỬ DỤNG 777 TRÊN MÁY CHỦ WEB . Một câu hỏi hay hơn để hỏi là "Làm cách nào để máy chủ web của tôi hoạt động mà không cần sử dụng quyền 777?"
Marco Ceppi

12
xin lỗi đó là thực hành tồi và tôi từ chối trả lời điều này :) Hy vọng eveyone đồng ý :)
Rinzwind

Câu trả lời:


89

Đây là thực tế tồi, nhưng hy vọng bạn chỉ sử dụng điều này để phát triển, hoặc bạn có một lý do tốt khác. Bạn có thể chỉ định các quyền khi bạn tạo một thư mục bằng -mtùy chọn:

mkdir -m 777 dirname

Hoặc bạn có thể thiết lập các quyền đệ quy.

sudo chmod -R 777 /var/www

Trước khi sử dụng một trong hai thứ này, hãy thực sự cân nhắc nếu bạn muốn hệ thống tập tin của mình có thể truy cập được như vậy.


Chỉnh sửa: Như Rinzwind đã đề cập ở đây là cách tốt hơn để hoàn thành những gì bạn muốn.

Kiểm tra nhóm nào sở hữu /var/wwwthư mục của bạn và thêm người dùng của bạn vào nhóm đó.

sudo adduser yourusername group

Nhóm có lẽ www-data.

Sau đó, bạn sẽ ổn với việc đặt quyền của mình thành 775.


4
Đây là những gì bạn đã yêu cầu nhưng xin vui lòng đọc phần này trước Tại sao nên / var / www không có chmod 777 . Nó thực sự không được khuyến khích thực hành.
Warren Hill

8
Xin đừng giúp đỡ mọi người với một phương pháp là thực hành xấu. Tôi sẽ thích hơn nếu bạn giải thích cách thực hiện: bằng cách thêm người dùng của anh ấy vào dữ liệu www nhóm hoặc apache;)
Rinzwind

4
Giáo dục đến trước. Giúp mọi người làm hỏng máy của họ không phải là cách của Linux. Vì vậy, tôi rất không đồng ý với bạn.
Rinzwind

2
Người hỏi đã nói điều này chỉ để thử nghiệm. Tôi chắc chắn có thể hiểu muốn phía phát triển của bạn có thể dễ dàng truy cập để bạn có thể làm việc nhanh hơn. Tôi sẽ cho anh ta lợi ích của sự nghi ngờ, rằng anh ta không đủ ngu ngốc để làm điều này với một máy chủ sản xuất.
Dan

1
@ dan08 Có nhiều cách tốt hơn để kiểm tra, bao gồm sử dụng thư mục chính của bạn. Xem Askubfox.com/questions/46331/ trênkimbriggs.com/computers/computer-notes/linux-notes/ trộm . Có nhiều cách an toàn để thực hiện các mục tiêu này;)
Panther

7

Các tệp và thư mục trong Unix có thể có ba loại quyền: read ( r), write ( w) và exec ( x). Mỗi quyền có thể onhoặc offcho mỗi trong ba loại người dùng: chủ sở hữu tệp hoặc thư mục; những người khác trong cùng nhóm với chủ sở hữu; và tất cả những người khác. Để thay đổi chế độ của tệp, sử dụng lệnh chmod. Hình thức chung là chmod X @ Y file1 file2 ...

chmod a-w file (removes all writing permissions)
chmod o+x file (sets execute permissions for other (public permissions))
chmod u=rx file        (Give the owner rx permissions, not w)
chmod go-rwx file      (Deny rwx permission for group, others)
chmod g+w file         (Give write permission to the group)
chmod a+x file1 file2  (Give execute permission to everybody)
chmod g+rx,o+x file    (OK to combine like this with a comma)

u = user that owns the file
g = group that owns the file
o = other (everyone else)
a = all (everybody)

r = read aces to the file
w = write access
x = execute (run) access 


3

Thông báo dịch vụ công cộng:


Đừng bao giờ sử dụng chmod 777 để khắc phục sự cố


  • Đó là một rủi ro bảo mật lớn nếu bạn chạy bất kỳ dịch vụ nào có sẵn cho công chúng, đặc biệt là các ứng dụng web (ví dụ: PHP).

    Mô hình bảo mật của HĐH giả định rằng nhiều dịch vụ (như máy chủ web của bạn) chạy với các đặc quyền bị giảm, để ngăn chúng có thể sửa đổi các tệp. Cài đặt 777 trên các tệp phá vỡ thiết kế này.

    Một người dùng từ xa có thể ghi vào hoặc tải lên các tệp và sau đó lừa máy chủ (hoặc một số quy trình khác trên hệ thống của bạn) để đọc hoặc thực thi chúng. Các tập lệnh hoặc phần mềm có thể có sai sót cho phép điều này. Rất khó để khóa mọi cách điều này có thể xảy ra nếu có các thư mục có thể ghi trên thế giới.

  • Được sử dụng trong một số thư mục hệ thống nhất định (/ usr, / etc, / var, v.v.), nó có thể phá vỡ hệ thống của bạn theo những cách đáng ngạc nhiên.

    Một số tệp hệ thống thiết yếu cần các quyền đặc biệt như quyền setuid / setgid để chạy. Ví dụ, sudo. Tránh thay đổi bất kỳ quyền tập tin trên các thư mục và tập tin được thiết lập bởi chính hệ thống.

  • Không có cách nào để hoàn tác nó và lấy lại tất cả các quyền cũ.

    Đó là, nếu bạn đã có các tệp và thư mục với nhiều quyền khác nhau trước đây, không có cách nào để quay lại các quyền cụ thể đó - chỉ thay đổi tất cả chúng thành cùng một thứ, có thể mất bất kỳ cài đặt quyền cụ thể nào cần thiết trên các tệp cụ thể.

  • Luôn luôn có một cách thích hợp hơn để đạt được những gì bạn muốn đạt được.

Trong trường hợp này, có vẻ như bạn chỉ muốn máy chủ web của mình có thể đọc một thư mục. Cho phép thế giới có thể ghi là cách nhiều hơn bạn cần làm.

Theo dõi lý do tại sao máy chủ web không thể đọc thư mục đó (gợi ý: có thể là do thư mục chính của bạn không thể đọc được trên thế giới. Có thể đọc được trên thế giới an toàn hơn nhiều so với thế giới - đặt thư mục chính của bạn thành thứ gì đó như 755 hoặc di chuyển thư mục www đó bên ngoài nhà của bạn vào một nơi nào đó như / var / www hoặc / srv).


0

Điều này không làm việc với tôi.

sudo chmod -f 777 /path/to/your/file/or/directory

Tôi cũng phải dùng -f.

sudo chmod -R -f 777 /path/to/your/file/or/directory

0

Nếu bạn muốn sao chép quyền và quyền sở hữu từ một tệp khác mà bạn hài lòng, bạn có thể sử dụng sudo chmod --reference = path / to / file / to / Reference path / to / file / you / Want / đến / thay đổi / permissino /

Và bạn cũng có thể làm điều tương tự cho quyền sở hữu tập tin.

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.