Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Melaksanakan Perintah Root dari PHP pada CentOS?

Bagaimana untuk Melaksanakan Perintah Root dari PHP pada CentOS?

Linda Hamilton
Lepaskan: 2024-11-16 04:24:02
asal
196 orang telah melayarinya

How to Execute Root Commands from PHP on CentOS?

Melaksanakan Perintah Root melalui PHP

Anda telah menyatakan hasrat untuk melaksanakan perintah dengan keistimewaan root daripada kod PHP anda pada pelayan CentOS anda. Mari kita terokai isu dan kemukakan penyelesaian yang berpotensi.

Isu:

Anda telah cuba menggunakan fungsi exec() untuk memulakan semula perkhidmatan sshd, tetapi ia memerlukan akses root, yang tidak diberikan kepada pengguna Apache. Walaupun anda telah mencuba penyelesaian seperti menjalankan Apache dengan keistimewaan root atau mengubah suai fail sudoers anda, mereka tidak menyelesaikan isu tersebut.

Penyelesaian Menggunakan Pembungkus Binari (Dengan Suid Bit):

  1. Buat Skrip Shell: Mulakan dengan mencipta skrip (cth., php_shell.sh) yang mengandungi arahan yang ingin anda laksanakan sebagai root.
  2. Tetapkan Pemilikan dan Kebenaran: Pastikan pengguna root memiliki skrip dan ia mempunyai kebenaran berikut:

    • Pemilik: Baca, Tulis, Laksanakan (rwx)
    • Kumpulan: Baca, Laksanakan (rx)
    • Lain-lain: Baca, Laksanakan (rx)
  3. Buat Pembungkus Binari: Buat pembungkus binari yang akan melaksanakan skrip shell anda dengan keistimewaan root. Berikut ialah contoh pembungkus:

    # cat > wrapper.c <<CONTENT
    #include <stdlib.h>
    #include <sys/types.h>
    #include <unistd.h>
    
    int
    main (int argc, char *argv[])
    {
       setuid (0);
       system ("/bin/sh /path/to/php_shell.sh");
       return 0;
     }
    CONTENT
    Salin selepas log masuk
  4. Kompil dan Tetapkan Kebenaran: Susun pembungkus binari dan tetapkan dengan bit suid:

    • Kompil: gcc wrapper.c -o php_root
    • Tetapkan pemilikan: chown root php_root
    • Tetapkan kebenaran: chmod u=rwx,go=xr, s php_root
  5. Pembungkus php_root ini akan melaksanakan arahan yang dinyatakan dalam php_shell.sh dengan keistimewaan root apabila dipanggil.

Penyelesaian Alternatif:

Daripada menggunakan skrip shell luaran, anda boleh membenamkan arahan terus ke dalam pembungkus binari. Hanya gantikan kandungan dalam langkah 3 dengan arahan yang anda mahu laksanakan dengan keistimewaan akar.

Awas:

Adalah penting untuk menggunakan laluan mutlak kepada skrip yang anda mahu laksanakan menghalang pengguna berniat jahat daripada mengeksploitasi binari untuk melaksanakan arahan sewenang-wenangnya.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Perintah Root dari PHP pada CentOS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan