5513


Lighttpd と FastCGI をつかって、 C言語で書いたプログラムの中から、 `system()`
で外部コマンドを実行というのは出来るのでしょうか。

`system("ls")` は実行出来たが、 `system("fswebcam・・・")` はダメです。

実行可能にするために、どこかに設定すべき項目があるのでしょうか。

* * *

**< <<追補です>>>**  
アドバイスありがとうございます。  
下記のようなプログラムでUSBカメラで撮影をしようとしています。  
"TEST ABCDE"、"Request number xx"といった
`printf`でのHTML出力は表示されるのでプログラム自体は実行されてるようです。  
ただ、`system("fswebcam・・・")`で写真が撮れません。  
./test.fcgiをキーインして実行させると、撮れます。  
fcgiから動いてるcのプログラムから、さらに`system(
)`で外部のコマンドを実行するときに、セキュリティ対策などで制限があるのか、あるとすれば解除する方法があるのかがわかりません。  
実行権、オーナー、グループなど試したのですが解決できませんでした。

[code]

    #include <fcgi_stdio.h>
    #include <stdlib.h>
    
    int main(int c, char** argv){
      int count = 0;
      while (FCGI_Accept() >= 0){
        printf("Content-type: text/html\r\n"
               "\r\n"
               "<html>\n"
               "<head>\n"
               "<title>FastCGI Test</title>\n"
               "</head>\n");
        printf("<body>\n");
        printf("<p>TEST ABCDE</p>\n");
        system("fswebcam -S 3 --line-colour \"#0000ff00\" /run/shm/fig/live.jpeg" );
        printf("<p>Request number %d</p>\n"
               "</body>\n"
               "</html>\n", ++count);
      }
      return 0;
    }
    
[/code]


CC BY-SA 3.0
2015-01-16T11:37:18.553
4691
2015-01-28T09:21:43.687
2015-01-17T03:43:58.793
728
7477
question
linux c
Lighttpd 上で FastCGI の C言語のプログラムから `system()` で外部コマンドを実行したい


解決しました。  
USBカメラの実行権の問題でした。  
実行権を777に設定して、lighttpdのユーザIDからも実行可能にしたところFCGIを通しての撮影が出来ました。


CC BY-SA 3.0
2015-01-28T09:21:43.687
5513
2015-01-28T09:21:43.687
7477
4691
answer