私のPythonスクリプトが私のサーバーでどのように実行されているかをクライアントに見せたいので、彼にアクセス権を与えたいと思います。また、私は彼がPythonスクリプトのコードを見ることができないようにし、単に実行することを願っています。 Linuxでこれを行うことはできますか?追加のユーザーを作成できますか?
答え1
したがって、通常、このような質問に対する答えは「いいえ、簡単ではありません」です。しかし、あなたの特定のケースでは、実際に解決策を見つけることができると思います。
クライアントがユーザーとしてサーバーにログインしているとしますalice
。スクリプトを所有する別のbob
ユーザーを作成し、そのユーザーだけがスクリプトを読み取って実行できるようにしますbob
。
# chown bob /path/to/myscript
# chmod 700 /path/to/myscript
これで、スクリプトをユーザーとして実行sudo
できる構成を作成します。たとえば、次の構成で作成します。alice
bob
/etc/sudoers.d/alice
alice ALL=(bob) NOPASSWD:/path/to/myscript
今:
- クライアントがで終了しました
alice
。alice
そのスクリプトを読み取ったり実行したりすることはできません。 alice
を実行してスクリプトを実行できますsudo -u bob /path/to/myscript
。これにより、ユーザーとしてスクリプトが実行されますbob
。
このソリューションには特定の制限があります。たとえば、スクリプトは発信者とは異なるユーザーとして実行されるため、発信者のホームディレクトリにファイルを作成する際に問題が発生する可能性があります。