Melaksanakan Perintah daripada PHP sebagai Pengguna Tertentu
Apabila menjalankan skrip PHP pada localhost, anda mungkin menghadapi masalah apabila arahan dilaksanakan dalam skrip tidak boleh mengakses sumber atau kejadian tertentu yang dimiliki oleh pengguna lain. Sebagai contoh, cuba mengawal main balik Rhythmbox daripada skrip PHP yang dijalankan kerana www-user mungkin terbukti sia-sia.
Untuk menangani perkara ini, satu penyelesaian yang berkesan ialah memanfaatkan arahan sudo. Dengan memberi awalan perintah yang ingin anda laksanakan dengan sudo, anda boleh menjalankannya buat sementara waktu sebagai pengguna lain sambil mengekalkan kebenaran pengguna asal. Contohnya:
<code class="php">exec('sudo -u myuser ls /');</code>
Arahan ini akan memanggil sudo dan menjalankan perintah 'ls /' sebagai pengguna 'myuser'. Walau bagaimanapun, untuk pendekatan ini berdaya maju, anda perlu mengubah suai fail sudoers anda menggunakan visudo. Dengan menambahkan entri berikut:
wwwuser ALL=/usr/bin/rhythmbox-client
pada fail sudoers anda, anda mengehadkan keistimewaan sudo Apache kepada arahan 'rhythmbox-client' sahaja, menghalangnya daripada melaksanakan arahan sewenang-wenangnya. Strategi ini memastikan skrip PHP anda boleh berinteraksi dengan Rhythmbox sebagai pengguna yang dimaksudkan sambil mengekalkan keselamatan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Perintah sebagai Pengguna Tertentu daripada PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!