web-dev-qa-db-ja.com

Sudoは使用できますが、パスワード認証の失敗によりsuを使用できません。両方を同じパスワードにしないでください。

Sudoを指定してコマンドを使用しようとすると、すべて正常に動作しますが、suを使用してスーパーユーザーとしてログインする場合は許可されません。どうして?

9
Sol33t303

何が起こっている?

suコマンドを使用してユーザーを変更(切り替え)するには、ターゲットユーザーのパスワードを指定する必要があります。ただし、Sudoを使用すると、独自のパスワードを使用できます。

たとえば、su -コマンドを使用してrootユーザーに切り替える場合は、rootのパスワードを使用する必要があります。デフォルトではパスワードがなく、アカウントも無効になっています。

違いは何ですか?

suでは、ターゲットユーザーに切り替える必要があるすべてのユーザーに単一のパスワードを提供しています。Sudoは、この問題を克服するためのものです。

sudoersという名前のファイルを設定し、その中で誰が何をできるかを定義します。したがって、Sudoと彼自身のパスワードを使用するすべての人は、それが本当に彼であることを証明し、特定のコマンドを実行できます。

私に何ができる?

Sudo -iを使用して、デフォルトのシェルをログインシェルとして、またはログインなしのシェルSudo -sまたは古い学校Sudo su -(再度ログインシェル)としてルートに切り替えることができます。


追加情報

Sudo -lを使用して、どの特権を持っているかを確認することもできます。たとえば、rootまたはユーザーbobに切り替える権限があるか、特定のマシンでjohnを使用して特定のコマンドを実行できますか?

ルートアカウントについて明確にするには:
Ubuntuマシンでは、デフォルトでルートアカウントにはパスワードがなく、同時にアカウントは無効になっています。アカウントを無効にすると、感嘆符「!」がパスワードハッシュの前に追加されるため、パスワードの有無にかかわらず、そのアカウントに誰もログインできません。

$ Sudo grep root /etc/shadow
root:!:2020:0:99999:2:::

つまり、rootにはパスワードがなく(2番目のセクション(「:」で区切られる)は空で、感嘆符のみが含まれます)、同時に無効になります。!に注意してください。

22
Ravexina

いいえ、Sudoには独自のパスワードを入力し、suにはルートのパスワードを入力します。これは通常Ubuntuで無効になっています。

4
Soren A