rootでシェルコマンドを実行する

rootでシェルコマンドを実行する

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

答え1

主な2つのコマンドラインの可能性は次のとおりです。

  • 使用suメッセージが表示されたら、ルートパスワードを入力してください。
  • 置くsudoコマンドの前にパスワードを入力するように求められたら、パスワードを入力します。

rootでシェルコマンドを実行する

sudo(グラフィック表示を実行していないときに好ましい)

これは、Ubuntu、Linux Mint、(おそらく)Debianなどを含むほとんどのシステムで好ましい方法です。個々のルートパスワードがわからない場合は、この方法を使用してください。

Sudoではパスワードを入力する必要があります。 (目的は、キーボードを放置してロックを解除したときに発生する損傷を制限し、ユーザーが本物sudo通常、複数のコマンドを連続して実行できるように、数分間再入力しないように設定されます。

例:

sudo service apache restart

ルートとして複数のコマンドを実行する必要がある場合は、各コマンドにプレフィックスを追加してくださいsudo。時々、rootとしてインタラクティブシェルを実行する方が便利です。次の目的で使用できますsudo -i

$ sudo -i
# command 1
# command 2
...
# exit

代わりにsudo -i使用できますsudo -s。違いは-i環境を通常のデフォルト値に初期化し、-s構成ファイルをより良くまたは悪くする。

詳細については、次を参照してください。sudoウェブサイトまたは、次のように入力してください。man sudoあなたのシステムから。 Sudoは非常に設定可能です。たとえば、ユーザーがルートとして特定のコマンドのみを実行できるように構成できます。読むsudoersマニュアルページsudo visudosudoersファイルの編集の詳細をご覧ください。

このsuコマンドは、ほとんどのUNIXシリーズシステムに存在します。そのユーザーのパスワードを知っている場合は、他のユーザーとしてコマンドを実行できます。ユーザーを指定せずに実行すると、デフォルトではsurootアカウントが使用されます。

例:

su -c 'service apache restart'

実行するコマンドは-cオプションを使用して渡す必要があります。コマンドがシェルから解析されず、su実行中のルートシェルにそのまま渡されるようにするには、引用符が必要です。

複数のコマンドを root として実行するには、対話型シェルを起動する方が便利です。

$ su
# command 1
# command 2
...
# exit

wheel一部のシステムでは、それを使用するにはグループ番号0(と呼ばれる)に属する必要がありますsu。 (ルートパスワードが誤って誰かに漏洩した場合、ダメージを制限するのがポイントです。)

rootとしてログイン

ルートパスワードが設定されていてそのパスワードがある場合は、rootログインプロンプトでルートパスワードを入力して入力するだけです。意図しない操作を実行する可能性があるため、注意して複雑なアプリケーションをrootとして実行しないでください。ルートとして直接ログインすることは、ディスクエラーやアカウントロックなどの緊急事態で主に役立ちます。

シングルユーザーモード

シングルユーザーモードまたはランレベル1は、root権限も提供します。これは、主にマルチユーザー実行レベルで起動できない緊急メンテナンス状況に使用されます。カーネルコマンドラインにまたはを渡してsingleシングルユーザーモードで起動できます。emergencyシングルユーザーモードでの起動は、システムを正常に起動し、root としてログインすることとは異なります。代わりに、システムはランレベル1で定義されたサービスのみを開始します。通常、これは利用可能なシステムを確保するために必要なサービスの最小数です。

telinitコマンドを使用してシングルユーザーモードに入ることもできますtelinit 1。ただし、このコマンドを実行するには、別の方法でroot権限を取得する必要があります。

多くのシステムでシングルユーザーモードで起動すると、ユーザーはパスワードを入力しなくてもルートシェルにアクセスできます。systemdこのように起動すると、システムがルートパスワードを求めるメッセージが表示されることに注意する価値があります。

その他のプログラム

カリフォルニア生活

カリフォルニア生活権限が付与されている場合は、自分のパスワードを入力して他のユーザーとしてコマンドを実行できます。これは、より広く使用されているsudoに似ています(上記を参照)。 Califeはsudoよりも軽いですが、設定可能性も低くなります。

OP

OPルートを含む他のユーザーとしてコマンドを実行できます。これは任意のコマンドを実行するopための完全なツールではありません。連想記号特定のコマンドを実行するようにシステム管理者が設定します。

素晴らしい

Superを使用すると、rootを含む他のユーザーとしてコマンドを実行できます。このコマンドはシステム管理者の承認を受ける必要があります。

rootでグラフィカルコマンドを実行する

また、見ることができますウィキペディア

PolicyKit(GNOMEを使用する場合に推奨)

必要なコマンドの前にコマンドを追加するだけですpkexec。これはほとんどの場合は機能しますが、普遍的には機能しません。

詳細についてはを参照してくださいman pkexec

KdeSu、KdeSudo(KDEを使用するときに好ましい)

kdesuそしてkdesudosuそれぞれとのグラフィックフロントエンドですsudo。 X Windowプログラムをrootとして簡単に実行できます。彼らケード。タイプ

kdesu -c 'command --option argument'

ルートパスワードを入力するか、次のように入力してください。

kdesudo -c 'command --option argument'

パスワードを入力してください(実行権限がある場合sudo)。 KdeSuで「パスワードを保持」オプションを選択した場合は、ログインセッションごとに一度だけルートパスワードを入力できます。

その他のプログラム

Xus

Xus(「Make su easy, dumb」)はsuのグラフィックバージョンです。

雨水

雨水Red HatベースのオペレーティングシステムでGksuを置き換えるsuコマンドのグラフィカルフロントエンド。主にRHELとFedora用に開発されました。

古い方法

gksuそしてgksudo

gksuとは、それぞれとのgksudoグラフィックフロントエンドです。 X Windowプログラムをrootとして簡単に実行できます。彼らsusudo小人。タイプ

gksu command --option argument

ルートパスワードを入力するか、次のように入力してください。

gksudo command --option argument

パスワードを入力してください(実行権限がある場合sudo)。

gksuそしてgksudoそれは昔ながらです。これはGNOMEのPolicyKitに置き換えられ、多くのディストリビューション(Ubuntuなど)ではデフォルトではインストールされません。これらの機能が利用可能であるか正しく機能していると頼ってはいけません。

シェルベースの方法で手動で

「rootでシェルコマンドを実行する」セクションのいずれかの方法を使用します。ルートへの移行中にDISPLAY環境変数や環境がリセットされないようにする必要があります。XAUTHORITYこの質問の範囲外のこれらの方法の追加の構成が必要な場合があります。

全体的にこれは悪い考えです。主にグラフィカルアプリケーションがrootとして設定ファイルを読み書きするため、通常のユーザーとして再利用しようとすると、これらのアプリケーションに読み取り権限がないためです。独自の構成を取得します。

rootでファイルを編集する

バラよりrootでファイルを編集するにはどうすればよいですか?

答え2

使用su:

$ su -c command

または

$ su
# command
# exit

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

答え3

質問はLinuxに限定されないため、Solaris 9+(またはTrusted Solaris 8)で同じ目標を達成する方法は次のとおりです。

バージョン9以降、Solarisには役割ベースのアクセス制御(RBAC)と呼ばれる愛称として知られている一連のツールが含まれています。

RBACの重要な点は、ユーザーおよび/またはロールに許可と権限を付与すること、またはユーザーにロールを付与することによって、誰がどの権限で何を実行できるかについて非常にきめ細かなモデルを作成できることです。

デフォルトでは、/etc/security/auth_attrで認証を識別し、/etc/user_attrがユーザーまたは役割に付与します。

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

これらのタスクを実行したら、与えられpfexec <command>た権限または権限を使用して実際にコマンドを実行できます。それユーザーはそれ注文する。

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

RBACのもう1つの利点は、rootを役割アカウントに設定し、「su」コマンドとrootパスワードを使用してrootになることができるユーザーにその役割を割り当てることができることです。 rootユーザーはシングルユーザーモードでログインすることもできます。これは、rootパスワードを無効にしたり、rootpasswd -d rootアカウントをロックしたりできるLinuxモードよりも(私の意見では)優れていますpasswd -l root。どちらも root でログインする方が簡単です。とても簡単です。何か間違っていると難しいです。

Ben Rockwoodには、以下で読むことができるRBACに関する素晴らしいブログ記事があります。(オープン)SolarisでRBACを使用する

答え4

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

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

PS - SUIDおよびSGIDビットは慎重に提供する必要があります。システムを安全でないようにすることができます。

関連情報