PHP shell_exec () ve sudo: setuid root olmalı

4 Cevap php

Ben bunu gerçekleşmesi için "root olarak" sudo kullanmak gerekiyor bu yüzden benim belge kök üstünde bir dizin erişen bir shell_exec () komutu var. (Ben güvenlik sorunları anlamak ve gidermek için önlemler putitng duyuyorum).

Ben shell_exec () Ben olsun çalıştırdığınızda konudur "sudo: setuid root olmalı" benim apache hatalar.log dosyasında hata.

Ben çözüm 4750 chmod benim sheel_exec denir betik oldu () ama bu işi yapmaz düşündüm.

Bana anlatmaya çalışıyor: "setuid root olmalı sudo" ve nasıl bunu çözmek olabilir tam olarak nedir?

4 Cevap

sudo kendisi setuid'dir kökü çalıştırılabilir mi? Sen gerekebilir

chown root: /usr/bin/sudo
chmod u+s /usr/bin/sudo

Alternatif olarak, sudo tamamen atlayın. Script root'tur ve kendi setuid'dir bitine sahiptir, o zaman root haklarını elde etmek için sudo kullanmak gerekmez. Aslında, bu şekilde daha güvenli olabilir; Eğer web kullanıcı sadece sudo düzenlemek zorunda kalmadan, bu komut dosyası kullanmak garanti. Bunu yapmak için, shell_exec() hattından remove sudo:

<?php
    shell_exec('/path/to/your/command');
?>

Eğer script için izinlerini kontrol ettin mi?

Kim senaryoyu sahibi mi?

Web kullanıcı sudo haklara sahip mi?

Eğer aşağıdaki gibi root olarak chown ve chmod sudo dosyasına gerek bu sorunu çözmek için.

chown root:root /usr/bin/sudo
chmod 4111 /usr/bin/sudo
chmod 0440 /etc/sudoers