Hướng dẫn do php files need execute permissions? - các tệp php có cần quyền thực thi không?
Trên một trang web, tôi cung cấp cho người dùng tùy chọn để tải lên các tệp (và sau đó tải xuống). Show Tôi đã tải lên một tệp 7 và rất ngạc nhiên khi tôi có thể thực thi nó bằng cách gõ vào URL trong trình duyệt.Quyền của tôi trên tệp rất nghiêm ngặt. Tôi không muốn người dùng thực thi các tập lệnh mà họ tải lên. Đây là đầu ra 8 có liên quan:
Nếu tôi thắt chặt các quyền cho tệp đã tải lên:
Hơn người dùng không thể tải xuống tệp, vì Apache không thể đọc nó. Toàn bộ tình huống có vẻ kỳ quái đối với tôi. Tôi đã cho 7 không có quyền thực thi, nhưng tôi vẫn có thể thực thi mà không có bất kỳ rắc rối nào. Tôi còn thiếu gì ở đây?Nói tóm lại, mục tiêu chính là vô hiệu hóa thực thi bất kỳ tệp nào thuộc bất kỳ loại nào được tải lên máy chủ. Tôi có một thử nghiệm tệp PHP.php
Tệp này thuộc sở hữu của root và các quyền của nó là
Vì vậy, 'những người khác' có thể thực thi, nhưng không thể đọc được. Khi đăng nhập với tư cách là người dùng khác ngoài root và cố gắng chạy tệp này từ dòng lệnh
Có lỗi sau
Nếu cho phép +r, nó hoạt động. Tôi nghĩ rằng chỉ cần thực thi quyền. Có phải một tệp PHP có cần đọc quyền cho 'người khác' để được thực thi trong dòng lệnh không? Lưu ý: Sử dụng Ubuntu 10.04 LTS và PHP 5.3.2 Tôi đọc trong một bài đăng tại lỗi máy chủ rằng PHP-FPM cần thực thi quyền. Tuy nhiên, câu trả lời khi tạo một trang web, những quyền và cấu trúc thư mục nào? Chỉ cấp quyền đọc và viết quyền cho PHP-FPM. Có thể tôi không hiểu làm thế nào những người xử lý PHP (hoặc CGI nói chung) hoạt động, nhưng hai tuyên bố có vẻ mâu thuẫn với tôi.execute permissions. However, the answer in When creating a website, what permissions and directory structure? only grants read and write permissions to PHP-FPM. Maybe I don't quite understand how PHP handlers (or CGI in general) work, but the two claims seem contradictory to me. Theo tôi hiểu, khi Apache / Nginx nhận được yêu cầu 0, nó "chuyển" tệp cho một trình xử lý thích hợp. Nghĩa là, tôi tưởng tượng nó như thể 1 (hoặc 2 hoặc bất cứ ai là máy chủ web đang chạy như) đã chạy một số lệnh,
Trên thực tế, không, đó là ngây thơ, tôi chỉ nhận ra. PHP-FPM phải là một thể hiện đang chạy (nếu nó được thực hiện và bộ đệm, v.v.), vì vậy có lẽ PHP-FPM chỉ được nói, "Này, nhanh chóng, xử lý tệp này cho tôi!" Trong cả hai trường hợp, tôi không hiểu tại sao các quyền thực thi lại cần thiết. Nó không giống như máy chủ web cần thực hiện tệp theo nghĩa đen, tức là.execute permissions are necessary. It's not like the webserver needs to literally execute the file, i.e.
Có phải lỗi của máy chủ có đơn giản là nhầm không? Khi tôi tạo tệp 3, nó không được phép thực thi để tôi không thể chạy tệp PHP.Tôi cần đặt quyền của tệp đó. Tôi muốn tất cả các tệp PHP được tạo đều có quyền thực thi. Loại tệp tạo mới là
Hỏi ngày 11 tháng 4 năm 2014 lúc 9:50Apr 11, 2014 at 9:50
3
Bạn không cần thêm quyền thực thi trên các tệp PHP, cài đặt 4:
Và bây giờ để chạy tệp PHP của bạn, chỉ cần nhập: 0Ngoài ra để thực sự làm cho nó thực thi, thêm PHP Shebang: 1Và thêm quyền thực thi trên tệp của bạn: 2Đã trả lời ngày 11 tháng 4 năm 2014 lúc 9:59Apr 11, 2014 at 9:59
Sylvain dứa PineauSylvain Pineau 60.3K18 Huy hiệu vàng145 Huy hiệu bạc181 Huy hiệu đồng18 gold badges145 silver badges181 bronze badges 2 Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu cách xử lý các quyền của tệp PHP, bao gồm kiểm tra và thay đổi quyền của tệp.: in this tutorial, you will learn how to deal with PHP file permissions, including checking and changing file permissions. Quyền tệp Chỉ định những gì người dùng có thể làm với một tệp, ví dụ: đọc, viết hoặc thực thi nó. Lưu ý rằng PHP tự động & nbsp; cấp các quyền thích hợp đằng sau hậu trường. Ví dụ: nếu bạn & nbsp; tạo một tệp mới để viết, PHP sẽ tự động cấp quyền đọc và ghi. PHP cung cấp một số chức năng hữu ích để kiểm tra và thay đổi quyền của tệp. Kiểm tra quyền tệpPHP có ba chức năng tiện dụng kiểm tra quyền tệp:
Hãy cùng xem ví dụ sau: 3Bên cạnh các chức năng đó, PHP cũng cung cấp chức năng 4 trả về một số nguyên, đại diện cho các quyền được đặt trên một tệp cụ thể. Ví dụ: 4Thay đổi quyền tệpĐể thay đổi quyền hoặc chế độ tệp, bạn sử dụng hàm 5: 5Hàm 5 có hai tham số:
Hàm 5 trả về 6 khi thành công hoặc 7 khi thất bại.Đối số quyền được biểu thị bằng một số bát phân chứa ba chữ số:
Bảng sau đây minh họa giá trị của mỗi chữ số thể hiện quyền truy cập cho người dùng cụ thể (chủ sở hữu, nhóm người dùng hoặc mọi người khác):
Ví dụ sau đây đặt quyền mà chủ sở hữu duy nhất có thể đọc và ghi tệp, mọi người khác chỉ có thể đọc tệp: 6Lưu ý rằng chúng tôi đặt 1 trước 2 để hướng dẫn PHP coi nó là một số bát phân.Bản tóm tắt
Bạn có thấy hướng dẫn này hữu ích không? Các tệp PHP cần quyền nào?PHP để người dùng có thể đọc và viết, nhóm đọc.Thay đổi quyền sở hữu của tập tin ... 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 .. Các tệp PHP có thể thực thi không?Thực thi PHP có thể được sử dụng để chạy các tập lệnh PHP hoàn toàn độc lập với máy chủ web..
Tôi có cần đọc quyền để thực thi một tệp không?Bạn không cần đọc quyền để thực hiện một tệp.Trên thực tế, nếu bạn có quyền đọc, nhưng không thực thi quyền, bạn không thể thực thi tệp.Quyền thực thi cho phép bạn yêu cầu hệ thống thực thi tệp tập lệnh.. In fact, if you have read permission, but not execute permission, you can't execute the file. The execute permission allows you to ask the system to execute the script file.
Làm cách nào để cho phép một tệp trong PHP?Sử dụng chmod () để đặt quyền tệp.. |