私は現在、エンジニアリング会社の Linux ベースのシングル ボード コンピューターに取り組んでおり、ボード内でホストされているローカル構成 Web サイトの更新を担当しています。この構成サーバーのポイントは、ユーザーが Web ブラウザーを介してボードに接続し、ボード内の設定を変更できるようにすることです。
私が作成しようとしている現在の設定には、ボードのハードウェア クロックのタイムゾーンの設定が含まれます。残念ながら、Board がタイム ゾーンを処理する方法は、/usr/share/zoneinfo/ 内のファイルと /etc/localtime の間のシステム リンクを設定することです。
私の問題は、Web サイトから次のコマンドを実行する必要があることです。
ln -s /usr/share/zoneinfo/Etc/GMT$1 /etc/localtime
ここで、$1 は + または - の後に数字が続きます。これらは、Web サイトのドロップダウンによって生成されます。
Web サイトの PHP からこのコマンドを実行しようとすると、大きな問題が発生します。exec コマンドの応答をキャッチすることで、シンボリック リンクを作成/変更するための十分な権限を取得していないことがわかりました。私は bash スクリプトを作成し、それを PHP から実行するというアプローチを試みました。また、PHP から C ベースの実行可能ファイルを実行してみました。
注意事項: ユーザーのパスワードはランダムに生成され、組み込み Linux パッケージには sudo が含まれていません。
私の目標は、セキュリティ上の懸念から、ルートとして Apache サーバーを実行しないようにすることです。コマンドを実行するための個々のスクリプト (おそらく一時的な) アクセス許可を与える方法、またはこれに対する他の種類の回避策はありますか?