Câu hỏi Làm thế nào tôi có thể cung cấp cho ghi-truy cập của một thư mục cho tất cả người dùng trong linux?


Tôi đã cài đặt apache2 trên Ubuntu ngay bây giờ, và nhận thấy rằng thư mục / var / www được bảo vệ. Tôi chỉ có thể sudo tất cả mọi thứ nhưng tôi chỉ muốn cung cấp cho nó viết truy cập.

Tôi có thể làm cái này như thế nào?

Tôi đã thử sudo chmod 7777 /var/www nhưng nó không hoạt động.


162
2017-08-06 23:30


gốc


Đây có phải là máy chủ có thể truy cập công khai hay không có kết nối trực tiếp với Internet không? Nếu trước đây điều quan trọng là bạn xem xét các quyết định bảo mật - máy chủ trên internet liên tục bị tấn công (có một cái nhìn trong / var / log / messages hoặc tương đương). - kwutchak
đây chỉ là máy tính xách tay của tôi, nó không thể truy cập từ internet. - Carson Myers


Các câu trả lời:


Chia sẻ tốt nhất với nhiều người dùng có thể viết /var/www, nó nên được chỉ định một nhóm chung. Ví dụ, nhóm mặc định cho nội dung web trên Ubuntu và Debian là www-data. Đảm bảo tất cả người dùng cần quyền truy cập ghi vào /var/www nằm trong nhóm này.

sudo usermod -a -G www-data <some_user>

Sau đó đặt quyền chính xác trên / var / www.

sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www

Ngoài ra, bạn nên tạo thư mục và tất cả các thư mục bên dưới nó "đặt GID", để tất cả Mới các tệp và thư mục được tạo trong /var/www được sở hữu bởi www-data nhóm.

sudo find /var/www -type d -exec chmod 2775 {} \;    

Tìm tất cả các tệp trong /var/www và thêm quyền đọc và ghi cho chủ sở hữu và nhóm:

sudo find /var/www -type f -exec chmod ug+rw {} \;

Bạn có thể phải đăng xuất và đăng nhập lại để có thể thực hiện thay đổi nếu bạn đang chỉnh sửa quyền cho tài khoản của riêng bạn.


285
2017-08-07 00:15



đó là khá tẻ nhạt ... Tôi không thể chỉ cung cấp cho người dùng quyền truy cập vào nó, như thể nó là bất kỳ thư mục nào khác? - Carson Myers
Cái đó Là cách bạn cấp quyền truy cập vào nó. Nhanh hơn để sao chép và dán các lệnh hơn là cố gắng điều hướng qua hộp thoại của trình quản lý tệp GUI để thực hiện tương tự. Dài hạn nó giúp bạn nếu bạn đọc các trang hướng dẫn sử dụng cho chmod và chgrp, ít nhất ("man chmod"). - jtimberman
có lẽ tôi không hiểu các lệnh khi lần đầu tiên tôi đọc nó, và bản chỉnh sửa của bạn làm cho nó rõ ràng hơn nhiều. - Carson Myers
1 cho guid để ép buộc quyền apache. hoạt động tốt với umask của 027. Nếu một cái gì đó cần viết truy cập, nó dễ dàng như chmod g + w dir / - LiraNuna
Tại sao lệnh cho phép nhóm của bạn sudo chmod -R g+w và không g+rw hoặc là g+rwX? - detly


Có một cách đơn giản hơn để thực hiện việc này, hãy thử thực hiện lệnh này.

sudo chmod -R 757 /var/www

Về cơ bản, chmod lệnh thay đổi quyền và -R chuyển đổi ảnh hưởng đến tất cả người dùng. Sau đó, nó chỉ đơn giản là cho phép chính xác để sử dụng.


25
2017-09-22 10:31



Bạn có thể cung cấp cho một số cái nhìn sâu sắc về những gì lệnh cho OP? - n0pe
-1 vì thiếu lời giải thích. Ngoài ra, chmod $permissions -R $file không hợp lệ… - Blacklight Shining
nó là tùy chọn thì quyền không theo cách khác xung quanh - Moataz Elmasry
sudo chmod -R 757 /var/www - Bwyss
xin vui lòng một người nào đó có kinh nghiệm đề xuất một chỉnh sửa với lời giải thích ngắn gọn về điều này. - Adi Prasetyo


Đọc + Viết:

sudo chmod -R a+rw /var/www

Đọc + Viết + Thực hiện:

sudo chmod -R a+rwx /var/www

23
2017-08-09 19:22





Bạn cũng có thể sao chép những gì jtimberman đề xuất sử dụng danh sách kiểm soát truy cập. Các setfacl lệnh chấp nhận -s để thay thế một ACL hoặc -m hiện có để sửa đổi nó; -R để làm cho thư mục ACL đệ quy; và -d để đặt các cài đặt được chỉ định làm mặc định, điều này hữu ích nếu bạn đang dự đoán tài khoản người dùng sắp tới.

Chúng chỉ thiết lập các quyền như bạn muốn cho người dùng, nhóm, khác và mặt nạ bằng cách sử dụng chmod:

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

Và điều này có thể là cách bạn sẽ làm điều đó cho một người dùng được chỉ định hoặc nhóm của họ:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

Và tất nhiên, sức mạnh là bạn có thể chỉ định bất kỳ người dùng cụ thể nào, nhiều người dùng, v.v., tất cả mà không phải sửa đổi cài đặt nhóm của bạn. Và không giống như chmod, nếu bạn muốn một số groupies có quyền truy cập vào một thư mục và các nhóm khác để có quyền truy cập chỉ với một thư mục khác, nó thực sự có thể với setfacl. Cuối cùng, để xem ACL của thư mục, hãy chạy getfacl:

getfacl DIRECTORY

Và bạn có thể chỉ định -R để xem các ACL cho các thư mục con hoặc -d để xem các giá trị mặc định.


6
2017-08-08 12:29



Đây là câu trả lời hay nhất! Ước gì tôi có thể bỏ phiếu nhiều hơn một lần. - Tim Duncklee


Câu trả lời nhanh chóng và dễ dàng - -

a. Thêm vào (-a) người dùng của bạn (user_name) cho nhóm (-G) dữ liệu www.

sudo usermod -a -G www-data user_name

b. Cung cấp cho nhóm (g) giống nhau (=) quyền như người dùng sở hữu (bạn) của / var / www Đệ quy (-R).

sudo chmod -R g=u /var/www

Giải thích: Apache 2 trên Debian / Ubuntu đặt User & Group dữ liệu www là chủ sở hữu của / var / www. Các quyền mặc định cho Người dùng là "Xem & Sửa đổi Nội dung", tuy nhiên Nhóm chỉ có thể "Xem Nội dung". Vì vậy, hãy thêm chính mình vào Nhóm dữ liệu www và cấp cho nó quyền tương tự như Người dùng wwww-data, là một cách nhanh chóng và dễ dàng để phát triển. Tôi làm điều này cho tất cả môi trường phát triển web cục bộ (PC / Laptop) của tôi.


2
2018-02-20 02:20





Tôi sử dụng typicall

chmod g+w /folder/ -R

Nó gần như tự giải thích.

Nó thêm mọi người vào group của /folder/ có wtruy cập nhanh (+w), -R là để đệ quy cho các thư mục con.


1
2018-03-19 21:13





Bạn có thể thử chmod 0777 /var/www ?

Một lời cảnh báo: nếu bạn cho phép mọi người truy cập thư mục này, điều đó có nghĩa là tin tặc có thể truy cập vào thư mục này nếu họ có quyền truy cập vào hệ thống của bạn. Đó là lý do tại sao tốt hơn nên tạo một nhóm người dùng được phép và cho phép nhóm đó viết quyền truy cập.


-3
2017-08-07 02:01



vậy tại sao đưa ra điều này như một giải pháp, và sau đó ngay lập tức mất uy tín? -1 phiếu bầu - Tisch