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
stoysnetkullanıcı olarak çalıştırmak için çalışıyorum. Ben aynı oturumu aracılığıylashell_execgeç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_execparçası değil sadece, ishal - Yürütme izinleri ayarlanır, ve
777ya da çalışmıyor.