![独自のコードと実行可能なスクリプトはどこに保存されますか? [閉鎖]](https://linux33.com/image/139818/%E7%8B%AC%E8%87%AA%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A8%E5%AE%9F%E8%A1%8C%E5%8F%AF%E8%83%BD%E3%81%AA%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AF%E3%81%A9%E3%81%93%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
bashスクリプトを使用してPythonコードを実行しています。 sudoを使用していないユーザーがPythonコードを読み取れないようにすることなく実行できることを願っています。推奨パターンは何ですか?
私が考えている2つの方法は次のとおりです。
- すべてのコードをユーザーコードの下に置き、
HOME
必要に応じて読み取れないか実行可能にします。 - 以下にすべてのコードを入力し、
/usr/local
関連するbashスクリプトを追加してください。sudoers
- 以下のすべてのコードを配置し、
/root
関連するbashスクリプトをユーザーPATH
またはbin
フォルダに追加します。
これを構築する方法はいくつかありますので、あなたの考えを聞きたいです。基準または尊敬される方法は次のとおりです。
答え1
ユーザーがソースコードを読み取れないようにする一般的な方法走るなるだろうユーザーに代わって機能するサービスの作成必要な権限があります。その後、ソケットやTCPポートなどのサーバーと通信する方法をユーザーに提供します。この時点で、コードはユーザーが使用できるコンテキストでは実行されなくなります。たとえば、特権の昇格にサービスを使用するユーザーを検討する必要があるため、これを作成するのは簡単ではありません。
答え2
私のために働いた解決策は次のとおりです。
次の行を追加します/etc/sudoers
。
user ALL = (root) NOPASSWD: /path/to/script
ユーザーとして、次のようにスクリプトを実行します。
sudo /path/to/script
これにより、スクリプト自体(およびすべての後続のPythonスクリプト)がルートとして実行されますが、同時にそれらのいずれも読み書きできません。