違いは何ですか
-
su -
-
sudo bash
-
sudo sh
su -
を実行しているときにrootとしてログインできません ルートパスワードを持っていないため– sudo "command"
を使用できるユーザーパスワードを持っていることを意味します ただし、このパスワードはsu -
では機能しません
sudo bash
を使用してrootとしてログインできます ユーザーパスワードを使用すると、sudo sh
を実行しながらログインできます しかし、この形式でコマンドプロンプトが表示されます
#
ベストアンサー
背景
Linux(および一般的なUnix)には、スーパーユーザーがあります。 名前付きルート 。スーパーユーザーは何でも何でもできるので、スーパーユーザーとして日常業務を行うことは危険です。コマンドを誤って入力し、システムを破壊する可能性があります。理想的には、手元のタスクに必要な特権のみを持つユーザーとして実行します。場合によっては、これは必然的にルートですが、ほとんどの場合、通常のユーザーです。
su –
このコマンドは、rootアカウントでログインするために使用されます。
デフォルトでは、rootアカウントのパスワードはUbuntuでロックされています。これは、rootとして直接ログインしたり、suコマンドを使用してrootユーザーになることはできないことを意味します。ただし、rootアカウントは物理的に存在するため、rootレベルの権限でプログラムを実行することは可能です。そこでsudoが登場します。これにより、許可されたユーザー(通常は「管理者」ユーザー)は、rootパスワードを知らなくても、特定のプログラムをRootとして実行できます。
rootアカウントを有効にする方法を参照してください 。
sudo sh
このコマンドは、スーパーユーザーとして「sh」を実行します。
shユーティリティは、コマンドライン文字列、標準入力、または指定されたファイルから読み取られたコマンドを実行するコマンド言語インタープリターです。
sudo bash
このコマンドは、スーパーユーザーとして「bash」を実行します。
Bashは、シェルまたはコマンド言語インタープリターです。 Bashは、Kornシェル(ksh)およびCシェル(csh)の便利な機能を組み込んだsh互換シェルです。これは、IEEE POSIX P1003.2 /ISO9945.2シェルおよびツール標準に準拠することを目的としています。プログラミングとインタラクティブな使用の両方で、shよりも機能が向上しています。さらに、ほとんどのshスクリプトは、変更なしでBashで実行できます。
参照:1、2、3。