web-dev-qa-db-ja.com

スクリプトおよびインタープリター言語用のsuidの代替

Unix(Gnu/Linuxを含む)では、suid/sgid(またはファイル機能)が唯一のネイティブ(他のすべての方法でこの方法を使用)の特権昇格方法です。

システム管理者として、私はスクリプトを書くのが好きです。スクリプトは簡単で、タスクによく慣れているからです。 ただし、suidおよびsgidは、スクリプトおよびその他のインタープリター言語では使用されません。

したがって、私はいくつかの選択肢を見つけたいと思います。 (私は一般的な解決策や特別な場合を気にしません)。

1
ctrl-alt-delor

さまざまな方法がありますが、ここにいくつかあります。

  • アドホックな方法でSudoを使用します。これは、管理者(完全なSudo特権を持つ)が使用できます。
  • 構成、設定 /etc/sudoers、特定のスクリプトをSudoとして(パスワードなしで、または任意のユーザーが)実行できるようにします。
  • 番号の小さいポートにバインドするだけの場合は、authbindを使用します。
  • 静的にリンクされた実行可能ファイルにコンパイルされる別の言語で記述します。 goは、使いやすいので静かで良いです。
  • スクリプトを実行するための新しいプロセスをexecする前に、特権を実行するランチャーを作成し、特権を削除します。
2
ctrl-alt-delor