Pythonスクリプトの実行を許可しますが、その内容を読み取らない

Pythonスクリプトの実行を許可しますが、その内容を読み取らない

私のPythonスクリプトが私のサーバーでどのように実行されているかをクライアントに見せたいので、彼にアクセス権を与えたいと思います。また、私は彼がPythonスクリプトのコードを見ることができないようにし、単に実行することを願っています。 Linuxでこれを行うことはできますか?追加のユーザーを作成できますか?

答え1

したがって、通常、このような質問に対する答えは「いいえ、簡単ではありません」です。しかし、あなたの特定のケースでは、実際に解決策を見つけることができると思います。

クライアントがユーザーとしてサーバーにログインしているとしますalice。スクリプトを所有する別のbobユーザーを作成し、そのユーザーだけがスクリプトを読み取って実行できるようにしますbob

# chown bob /path/to/myscript
# chmod 700 /path/to/myscript

これで、スクリプトをユーザーとして実行sudoできる構成を作成します。たとえば、次の構成で作成します。alicebob/etc/sudoers.d/alice

alice ALL=(bob) NOPASSWD:/path/to/myscript

今:

  • クライアントがで終了しましたalicealiceそのスクリプトを読み取ったり実行したりすることはできません。
  • aliceを実行してスクリプトを実行できますsudo -u bob /path/to/myscript。これにより、ユーザーとしてスクリプトが実行されますbob

このソリューションには特定の制限があります。たとえば、スクリプトは発信者とは異なるユーザーとして実行されるため、発信者のホームディレクトリにファイルを作成する際に問題が発生する可能性があります。

関連情報