Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Menjalankan Skrip Shell yang Diperlukan Sudo daripada PHP Tanpa Gesaan Kata Laluan?

Bagaimanakah Saya Boleh Menjalankan Skrip Shell yang Diperlukan Sudo daripada PHP Tanpa Gesaan Kata Laluan?

Barbara Streisand
Barbara Streisandasal
2024-11-17 18:24:02331semak imbas

How Can I Run Sudo-Required Shell Scripts from PHP Without Password Prompts?

Cara Melaksanakan Skrip Shell yang Diperlukan SUDO daripada PHP

Melaksanakan skrip shell yang memerlukan keistimewaan yang tinggi dari dalam PHP boleh mencabar, kerana fungsi shell_exec() tidak menyokong gesaan kata laluan. Walau bagaimanapun, terdapat cara untuk mengatasi had ini dan mengautomasikan pelaksanaan skrip.

Penyelesaian: Ubah Suai Fail Sudoers

Satu penyelesaian yang berkesan ialah mengedit fail sudoers (biasanya terletak di /etc/sudoers) dan tambah peraturan yang membenarkan skrip yang ditentukan dilaksanakan tanpa kata laluan. Untuk melakukan ini, ikuti langkah berikut:

  1. Buka fail sudoers dengan keistimewaan root menggunakan arahan berikut:

    sudo visudo
  2. Tambah baris dalam format berikut:

    www-data ALL=NOPASSWD: /path/to/script

    di mana www-data ialah nama pengguna pelayan web dan /path/to/script ialah laluan ke skrip bash yang memerlukan keistimewaan yang tinggi.

  3. Simpan dan tutup fail sudoers.

Dengan membuat pengubahsuaian ini, anda memberi kebenaran secara berkesan kepada pengguna pelayan web untuk melaksanakan skrip yang ditentukan tanpa digesa untuk mendapatkan kata laluan.

Setelah anda melengkapkan langkah ini, anda boleh memanggil skrip bash anda daripada PHP menggunakan fungsi shell_exec() seperti biasa. Skrip akan dijalankan dengan keistimewaan yang tinggi, tanpa sebarang gesaan kata laluan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Skrip Shell yang Diperlukan Sudo daripada PHP Tanpa Gesaan Kata Laluan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn