デバイスファイルのグループをチェックすることができます:
adam@sabayon ~ $ ls -lash /dev/ttyS*
0 crw-rw---- 1 root uucp 4, 64 03-10 13:20 /dev/ttyS0
0 crw-rw---- 1 root uucp 4, 65 03-10 13:20 /dev/ttyS1
0 crw-rw---- 1 root uucp 4, 66 03-10 13:20 /dev/ttyS2
0 crw-rw---- 1 root uucp 4, 67 03-10 13:20 /dev/ttyS3
私にとってはuucpです。そして、cgi スクリプトを開始するユーザーをこのグループに追加します (私のシステム uucp の場合)。ただし、このユーザーが開始した他のすべての cgi スクリプトも UART へのアクセスを許可されることに注意してください。
編集:
Apache Webサーバーの場合、suEXECが解決策になるようです。
suEXEC 機能により、Apache ユーザーは、呼び出し元の Web サーバーのユーザー ID とは異なるユーザー ID で CGI および SSI プログラムを実行できるようになります。通常、CGI または SSI プログラムが実行されるとき、Web サーバーを実行している同じユーザーとして実行されます。
したがって、cgiスクリプト用の新しいユーザーを作成して正しく構成し、apacheでスクリプトで使用できるようです。
suEXEC のドキュメントは次のとおりです:
http://httpd.apache.org/docs/2.0/suexec.html
私はそれを使用したことはありませんが、それが役立つことを願っています。