ラズベリーパイにlighttpdとfast-cgiをインストールしました。 root権限を必要とするPythonスクリプトを実行すると、次のエラーが発生します。
ランタイムエラー:/ dev / memにアクセスできません。ルートで実行してみてください!バックトレース(最後の最後の呼び出し):ファイル "/var/www/index.py"、行134、GPIO.setup(17、GPIO.OUT);#enable A RuntimeError:/ dev / memにアクセスできません。ルートで実行してみてください!
visudoと「sudo usermod -a -G sudo www-data」を使ってwww-dataをsudoerとして追加しましたが、うまくいきません。 lighttpd root権限をどのように付与できますか?個人的なプロジェクトなので、セキュリティは重要ではありません。
ベストアンサー1
lighttpdはsudoを使用しません。したがって、sudoersグループにwww-dataを追加することは役に立ちません。
構成ファイルのWebユーザーをwww-dataからrootに変更する必要があります。
server.username = "root"
必要に応じてグループを www-data に保持できますが、必要に応じてルートに変更することもできます。
しかし、Pythonスクリプトではsudoをwww-dataとして使用できます。 NOPASSWDに設定されていることを確認してください。
Webサーバーを実行すること(またはすべてのサーバーでコマンドを実行root
できること)はとにかく悪い習慣です。 WebサーバーまたはWebアプリケーションの脆弱性は、システム全体が完全に破損する可能性があることを意味するためです。s
u
/dev/mem
ここでは、setuidルートによって実行される(またはそれを実行してsudo
)専用ユーティリティまたはWebサーバーから呼び出される別のサービスによって実行される必要があるすべてのタスクを実行したいと思います。