「su-」、「sudo bash」、「sudo sh」の違いは何ですか?


29

私は何の違いが知りたいです

  • su -
  • sudo bash
  • sudo sh

su -ルートパスワードを持っていないため、ルートとしてログインできません-できるユーザーパスワードがありますがsudo "command" 、このパスワードは機能しません。ユーザーパスワードでsu - ルートとしてsudo bashログインでき、ログイン中にログインできます。やってsudo shいますが、このフォームでコマンドプロンプトが表示されます #

回答:


27

バックグラウンド

Linux(および一般的なUnix)には、Rootという名前のスーパーユーザーがいます。スーパーユーザーは何でもできるので、スーパーユーザーとして日常業務を行うのは危険です。コマンドを誤って入力すると、システムが破壊される可能性があります。理想的には、手元のタスクに必要な特権のみを持つユーザーとして実行します。場合によっては、これは必ずしもルートですが、ほとんどの場合は通常のユーザーです。

su-

このコマンドは、rootアカウントでログインするために使用されます。
デフォルトでは、ルートアカウントのパスワードはUbuntuでロックされています。つまり、ルートとして直接ログインすることも、suコマンドを使用してルートユーザーになることもできません。ただし、ルートアカウントは物理的に存在するため、ルートレベルの特権でプログラムを実行することは可能です。これがsudoの出番です。許可されたユーザー(通常は「管理者」ユーザー)が、ルートパスワードを知らなくてもルートとして特定のプログラムを実行できます。

ルートアカウントを有効にする方法を参照してください。

須藤sh

このコマンドは、スーパーユーザーとして「sh」を実行します。
shユーティリティは、コマンドラインストリング、標準入力、または指定されたファイルから読み取られたコマンドを実行するコマンド言語インタープリターです。

sudo bash

このコマンドは、スーパーユーザーとして「bash」を実行します。
Bashはシェルまたはコマンド言語インタープリターです。Bashは、Kornシェル(ksh)およびCシェル(csh)の便利な機能を組み込んだsh互換シェルです。IEEE POSIX P1003.2 / ISO 9945.2 Shell and Tools標準に準拠することを目的としています。プログラミングとインタラクティブな使用の両方でshよりも機能が改善されています。さらに、ほとんどのshスクリプトは、変更せずにBashで実行できます。

参考文献:123


7
sudo su -rootパスワードなしで実行することにより、スーパーユーザーとしてログインできることに注意してください。sudoはsu -root権限でコマンドを実行するため、ユーザーのパスワードの入力のみが求められます。これには、rootユーザーの環境をセットアップするという利点があります。これは、sudoを使用してシェルを実行するだけでは実行できない場合があります。
アーロンD

6

su -

これにより、ユーザーIDが変更され、そのユーザーでログインしたかのように環境変数が継承されます。通常、この形式su - <userid>を使用してユーザーとしてログインします。「userid」を削除すると、rootとしてログインしようとしていると見なされます-これはできません(rootパスワードを変更しない限り)。

sudo bashsudo sh

sudoの後は実行するプログラムです。したがって、これらの場合、それぞれbashとdashの2つのシェルを実行するように求めています。使用man bashしてman sh別のシェルの詳細については。


関連する質問:


OK、返信ありがとうございますが、rootのデフォルトのパスワードは何ですか?どこで見つけることができますか ?
パトリク

@lordmonkeyのルートにはパスワードがなく、パスワードも必要ありません。sudoがrootではなくパスワードを要求することを除いsudo -iて、ログインシェルsu -が表示されます。
ガイラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.