Ben bir shell_exec (ya da ters tırnak operatörü) temelde işleri çalıştıran olmadığını test etmek çok basit bir komut dosyası var:
#!/usr/bin/php5
<?php
echo "This is a PHP script\n";
echo `ls -l /home/stoysnet/`;
Ben root olarak çalıştırmak sürece, her zaman bana veriyor:
$ ./foo.php
This is a PHP script
Warning: _shell_exec(): Permission Denied in /home/stoysnet/foo.php on line 5
Ben bir kaç farklı şekilde PHP ile bu çalışan denedim, ama her zaman aynı hatayı alıyorum. Ben bir alt dizinine komut koymak Ancak, /etc/
root:root
aittir ve root
çalışır gibi yürütülür.
Ne verir?
Update: Sadece netleştirmek için:
- Ben komut satırı üzerinden
stoysnet
kullanıcı olarak çalıştırmak için çalışıyorum. Ben aynı oturumu aracılığıylashell_exec
geçirilen komutu çalıştırmak mümkün duyuyorum. - I
/etc/somedir/
senaryoyu taşımak ve yürütmek ise beklendiği gibiroot
, çalışıyor gibidir. - Script kendisi, tırnak işleci veya
shell_exec
parçası değil sadece, ishal - Yürütme izinleri ayarlanır, ve
777
ya da çalışmıyor.