Chạy lệnh với quyền root trên PHP

Trong quá trình phát triển các ứng dụng với PHP, đôi lúc chúng ta cần sử dụng PHP để thực thi các câu lệnh trên server. Một số câu lệnh cần quyền root để thực hiện nhưng các câu lệnh PHP (chạy dưới user Apache, Nghix,...) không thể thực hiện được. Khó khăn này tôi đã từng gặp phải và đã tìm ra được một giải pháp rất hay, trong bài này tôi sẽ chia sẻ cho các bạn.

Sửa file /etc/sudoers:

Các bạn mở file /etc/sudoers và thêm dòng sau vào cuối file:

apache ALL=NOPASSWD: path-to-your-command

Với dòng này, sudo sẽ không đòi mật khẩu root đối với user apache (user thực thi PHP, thay các user khác nếu bạn cần) khi thực thi path-to-your-command. Và trong câu lệnh chạy tại PHP, bạn chỉ cần thêm sudo đẳng trước là PHP đã có thể chạy được câu lệnh với quyền root rồi đấy.

Vấn đề bảo mật:

Vì những thiết lập trên cho phép user chạy với quyền rootkhông cần mật khẩu, bạn cần lưu ý về các vấn đề bảo mật khi sử dụng. Hãy đảm bảo rẳng câu lệnh và user bạn cho phép thực thi với quyền root không có bất cứ lỗ hỗng nào cho phép hacker có thể lợi dụng và leo thang đặc quyền.

Dây rút nhựa tp hcm