Hướng dẫn how do i give permission to a folder in php? - làm cách nào để cấp quyền cho một thư mục trong php?

Giải pháp 3 bước đơn giản

Tóm tắt: Bạn cần đặt chủ sở hữu của thư mục cho người dùng mà PHP sử dụng (người dùng máy chủ web).


Bước 1: Xác định người dùng PHP

Tạo một tệp PHP chứa như sau:


Tải nó lên máy chủ web của bạn. Đầu ra phải tương tự như sau:

www-data

Do đó, người dùng PHP là

www-data
4.


Bước 2: Xác định chủ sở hữu thư mục

Tiếp theo, kiểm tra chi tiết của thư mục web thông qua dòng lệnh:

ls -dl /var/www/example.com/public_html/example-folder

Kết quả phải tương tự như sau:

drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder

Do đó, chủ sở hữu của thư mục là

www-data
5.


Bước 3: Thay đổi chủ sở hữu thư mục thành người dùng PHP

Sau đó, thay đổi chủ sở hữu của thư mục web thành người dùng PHP:

sudo chown -R www-data /var/www/example.com/public_html/example-folder

Xác minh rằng chủ sở hữu của thư mục web đã được thay đổi:

ls -dl /var/www/example.com/public_html/example-folder

Kết quả phải tương tự như sau:

drwxrwxr-x 2 www-data exampleuser2 4096 Mar 29 16:34 example-folder

Do đó, chủ sở hữu của thư mục là

www-data
5.


Bước 3: Thay đổi chủ sở hữu thư mục thành người dùng PHP

Tôi sẽ hoàn thành câu trả lời của Rahmu và MV với một giải pháp kỹ thuật. Tất cả mọi thứ sau đó chỉ có giá trị cho các hệ thống giống như Unix.

Cuộn qua phần Chmod/Chown cho một ví dụ sử dụng ACLS - một công cụ mạnh hơn so với các chế độ tệp Unix.

Tìm tên người dùng máy chủ web của bạn

Đầu tiên, bạn sẽ cần biết tên người dùng mà máy chủ web của bạn chạy. Nếu bạn đang sử dụng Apache, nó có thể là

www-data
8 hoặc
www-data
9,
www-data
4, v.v. trên hầu hết các hệ thống giống như Debian, Apache là
www-data
4. Đối với Nginx, nói chung, nó cũng là
www-data
4.

Để kiểm tra nó, hãy thử:

ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1

Đảm bảo rằng tên người dùng này trả về lệnh này là kết hợp (ví dụ: tôi sử dụng nginx 99% thời gian, nhưng lệnh này trả về

ls -dl /var/www/example.com/public_html/example-folder
3, một máy chủ web Java tôi đã cài đặt một lần).


Cấp quyền cho máy chủ web: Sử dụng ls -dl /var/www/example.com/public_html/example-folder 4 và ls -dl /var/www/example.com/public_html/example-folder 5

Thực hiện

ls -dl /var/www/example.com/public_html/example-folder
4 của 666 hoặc 777 (giải pháp đi đến cho loại vấn đề đó trong các tài liệu/hướng dẫn xấu) có thể làm cho mọi thứ hoạt động một cách kỳ diệu, nhưng không an toàn. Cung cấp 666 hoặc 777 quyền sẽ cho phép truy cập vào "những người khác". Vì vậy, không chỉ Apache, mà cả
ls -dl /var/www/example.com/public_html/example-folder
7 và
ls -dl /var/www/example.com/public_html/example-folder
8 (với điều kiện là các tài khoản người dùng đó tồn tại trên máy của bạn - nhưng không thực sự, xin vui lòng tránh làm điều này trừ khi nó chỉ để kiểm tra/khắc phục sự cố).

Tốt hơn là nên cụ thể hơn và cấp quyền cho bạn và Apache. Thay đổi nhóm các tệp của bạn để cung cấp toàn bộ điều khiển trên các tệp của bạn sang máy chủ web. Để làm điều này, thay đổi chủ sở hữu đệ quy:

________số 8

Nhưng rất có thể, bạn có thể muốn giữ quyền truy cập đầy đủ trên các tệp của mình bằng cách chỉ thay đổi nhóm:

chown -R yourusername:www-data your/folder/

Sau đó, thực hiện

ls -dl /var/www/example.com/public_html/example-folder
4 thích hợp để cung cấp cho nhóm
www-data
4 các quyền giống như bạn. Ví dụ: nếu chế độ hiện tại là 640 (6 đối với bạn, 4 đối với www-data, 0 đối với những người khác, dịch sang -rw-r -----), đặt nó thành 660 (6 cho bạn, 6 cho www- Dữ liệu, 0 cho những người khác, dịch sang -RW-RW ----). Xem câu trả lời của Rahmu để tìm hiểu thêm về các chế độ tệp, đó là một cơ chế cũ, tuy nhiên thanh lịch.

Để tránh thao túng các số Arcane với

ls -dl /var/www/example.com/public_html/example-folder
4, bạn cũng có thể sử dụng cú pháp này:

www-data
0

Nó có nghĩa là "đối với nhóm (

drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder
2), thêm (
drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder
3) đọc và ghi (
drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder
4) các quyền trên thư mục
drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder
5, đệ quy (
drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder
6)".

Trong 90% trường hợp, điều này là đủ.


Phương pháp ưa thích của tôi: Sử dụng ACLS (Danh sách kiểm soát truy cập)

Đôi khi giải pháp đầu tiên là không đủ. Tôi sẽ lấy ví dụ về Khung Symfony đăng nhập và lưu trữ rất nhiều dữ liệu. Vì vậy, nó cần viết quyền truy cập vào thư mục thích hợp.

Và phương thức ________ 24/________ 25 có thể không đủ, khi bạn đang sử dụng song song với bảng điều khiển Symfony trong CLI (trong tài khoản người dùng của tôi) và người dùng web (người dùng máy chủ web). Điều này gây ra rất nhiều vấn đề vì Symfony liên tục sửa đổi quyền.

Trong trường hợp này, chúng tôi sẽ sử dụng ACL (Danh sách kiểm soát truy cập), đây là một cách tiên tiến hơn để quản lý quyền trên nhiều hệ thống Unix.

Ở đây các lệnh được đưa ra bởi tài liệu Symfony chính thức (vui lòng thay đổi

drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder
9 và
sudo chown -R www-data /var/www/example.com/public_html/example-folder
0 theo nhu cầu của bạn):please change
drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder
9 and
sudo chown -R www-data /var/www/example.com/public_html/example-folder
0 to your needs
):

Trên một hệ thống hỗ trợ sudo chown -R www-data /var/www/example.com/public_html/example-folder 1 (nghĩa là không phải Debian/Ubuntu)

www-data
1

Trên một hệ thống không hỗ trợ sudo chown -R www-data /var/www/example.com/public_html/example-folder 1 (phổ biến nhất)

Bạn sẽ cần công cụ

sudo chown -R www-data /var/www/example.com/public_html/example-folder
3; Có thể nó được cài đặt trên hệ thống của bạn theo mặc định, vì vậy hãy thử
sudo chown -R www-data /var/www/example.com/public_html/example-folder
4 để xem lệnh có khả dụng không.

Nếu lệnh không khả dụng và bạn đang sử dụng Ubuntu 14.04+, bạn sẽ phải cài đặt công cụ:

www-data
2

Nếu không, hãy làm theo tài liệu HĐH của bạn, vì bạn có thể cần thay đổi cách thức phân vùng của bạn được gắn (tài liệu Ubuntu tại đây).

Và chúng tôi ở đó:

www-data
3

Tôi chưa bao giờ có bất kỳ vấn đề nào với phương pháp này, hài lòng hoặc tiền của bạn trở lại.

Làm thế nào tôi có thể cho phép một thư mục trong PHP?

Giải pháp 3 bước đơn giản..
Bước 1: Xác định người dùng PHP. Tạo một tệp PHP có chứa như sau: ....
Bước 2: Xác định chủ sở hữu thư mục. Tiếp theo, kiểm tra chi tiết của thư mục web thông qua dòng lệnh: ls -dl /var/www/example.com/public_html/example-folder. ....
Bước 3: Thay đổi chủ sở hữu thư mục thành người dùng PHP ..

Làm cách nào để cấp phép cho một thư mục?

Cấp quyền truy cập vào một tập tin hoặc thư mục..
Truy cập hộp thoại Thuộc tính ..
Chọn tab Bảo mật ..
Nhấp vào Chỉnh sửa.....
Nhấp vào Thêm ... ....
Trong nhập tên đối tượng để chọn văn bản, nhập tên của người dùng hoặc nhóm sẽ có quyền truy cập vào thư mục (ví dụ: 2125. ....
Bấm OK.....
Bấm OK trên cửa sổ bảo mật ..

Các tệp PHP nên có quyền nào?

Để bảo mật tối đa, bạn nên đặt các quyền tối thiểu, là 640 ...
Chủ sở hữu 6 sẽ là người tải lên các tệp ..
Nhóm 4 sẽ là người phục vụ tập tin.Biến Apache thành một thành viên nhóm ..
Không ai 0 có nghĩa là không người dùng nào khác có thể đọc tệp này ..

Làm cách nào để cho phép một thư mục cho 777?

Cách dễ nhất để đặt quyền thành 777 là kết nối với máy chủ của bạn thông qua ứng dụng FTP như Filezilla, nhấp chuột phải vào thư mục, module_installation và nhấp vào quyền thay đổi - sau đó viết 777 hoặc kiểm tra tất cả các quyền.Lưu câu trả lời này.Hiển thị hoạt động trên bài viết này.Nhấp chuột phải vào thư mục, nhấp vào thuộc tính.connect to Your server through FTP Application like FileZilla, right click on folder, module_installation, and click Change Permissions - then write 777 or check all permissions. Save this answer. Show activity on this post. Right click the folder, click on Properties.