web-dev-qa-db-ja.com

システム管理者(root)としてコマンドを実行する方法

管理者権限でコマンドを実行する必要があります。 rootとしてコマンドを実行する必要があると誰かが言った。どうすればよいですか?

66
Stefan

suを使用:

$ su -c command

または

$ su
# command
# exit

どちらの場合も、rootパスワードの入力を求められます。詳細は マニュアルページ を参照してください。

8
Steven D

または、いくつかのコマンドに超能力を与えることができます。所有者の許可を得てコマンドが実行される特別な許可について話している。

#which <command>によってコマンドのパスを取得し、そのパスにSUIDまたはSGIDを設定します。

追伸-SUIDおよびSGIDビットは注意して与える必要があります。彼らはあなたのシステムを不安定にする可能性があります。

3
Ayush Goyal

質問はLinux固有のものではなかったため、Solaris 9以降(またはTrusted Solaris 8)で同じ目標を達成する方法を次に示します。

Solarisには、バージョン9以降、RBACまたはRole Based Access Controlと呼ばれる一連のツールが含まれています。

RBACの要点は、ユーザーやロールへの承認と権利の付与、またはユーザーへのロールの付与を通じて、誰がどの特権で何を実行できるかについて、非常に細かいモデルを作成できることです。

基本的に、/ etc/security/auth_attrで承認を識別してから、/ etc/user_attrでユーザーまたはロールに許可を付与します。

/ etc/security/prof_attrでプロファイルを定義します。次に、コマンドを/ etc/security/exec_attr内のそれらのプロファイルに関連付け、続いてそれらのプロファイルを/ etc/user_attrファイル内のユーザーに割り当てます。

これらが完了したら、実際に_pfexec <command>_を実行して、thatユーザーにthatコマンド。

RBACの良い点は、コマンド自体またはユーザーに追加の特権が付与されず、ユーザー+コマンドの組み合わせにのみ付与されることです。したがって、バイナリ+ sを作成したり、Sudoを使用してユーザーがほとんど何でも実行できるようにするよりも安全です。 (私はあなたがSudoをロックダウンできることを知っていますが、私の経験ではほとんどの人がそうではありません)

RBACのもう1つの利点は、rootを役割アカウントにして、「su」コマンドとrootパスワードを使用してrootになることができるユーザーにその役割を割り当てることができることです。 rootユーザーはシングルユーザーモードでログインすることもできます。これは、rootモデルを無効にすることができるLinuxモデルよりも(私の意見では)、_passwd -d root_またはrootアカウントをロックする_passwd -l root_です。 、どちらも問題が発生したときにrootとしてログインすることを非常に困難にします。

Ben RockwoodがRBACに関するすばらしいブログ投稿を公開しています (Open)SolarisでのRBACの使用

3
Tim Kennedy