www-data (lighttpd) を sudoer として設定しても機能しない

www-data (lighttpd) を sudoer として設定しても機能しない

Raspberry Pi に fast-cgi 付きの lighttpd をインストールしました。ルート権限を必要とする Python スクリプトを実行すると、次のエラーが発生します。

RuntimeError: /dev/mem にアクセスできません。root として実行してみてください。トレースバック (最新の呼び出しが最後): ファイル "/var/www/index.py"、行 134、GPIO.setup(17, GPIO.OUT);#enable A RuntimeError: /dev/mem にアクセスできません。root として実行してみてください。

visudo と「sudo usermod -a -G sudo www-data」を使用して、www-data を sudoer として追加しましたが、機能しませんでした。lighttpd にルート権限を与えるにはどうすればよいですか? これは個人的なプロジェクトなので、セキュリティは重要ではありません。

答え1

lighttpd は sudo を使用しません。したがって、www-data を sudoers グループに追加しても役に立ちません。

設定ファイル内の Web ユーザーを www-data から root に変更する必要があります。

server.username = "root"

必要に応じて www-data のグループを離れることもできますが、必要に応じてこれを root に変更することもできます。

ただし、代わりに Python スクリプトから www-data として sudo を使用することもできます。必ず NOPASSWD を設定してください。

いずれにせよ、Web サーバーを として実行する(または任意のコマンドに対して任意のサーバーに切り替えるroot機能を持つ) ことは、Web サーバーまたはそれが提供する Web アプリケーションのいずれかに脆弱性があると、システム全体が完全に危険にさらされる可能性があるため、非常に悪い習慣です。su

/dev/memここでは、 で行う必要のある操作は、setuid root である専用ユーティリティ (または 経由で実行されるsudo)、または Web サーバーによって呼び出される別のサービスによって実行されるようにすることが最も望ましいでしょう。

関連情報