はじめに
sudo
およびsu
コマンドは、すべてのLinuxユーザーが遭遇するコマンドのグループに属しています。それらは構文が似ており、機能が重複しているため、多くの新規ユーザーは、どちらをいつ使用するかわからない。
このチュートリアルでは、su
の違いについてすべて学びます およびsudo
。
sudo vs su
両方のsu
およびsudo
現在のユーザーに割り当てられている特権を昇格させます。
2つの主な違いは、 su
sudo
の場合、ターゲットアカウントのパスワードが必要です 現在のユーザーのパスワードが必要です。したがって、 sudo
を使用する方がはるかに安全です。 機密情報の交換が含まれていないためです。
さらに、 sudo
に固執することをお勧めします ルート権限を必要とするタスクを実行する場合。そうすることで、現在のユーザーには、指定されたコマンドに対する特権のみが付与されます。一方、 su
rootユーザーに完全に切り替わり、システム全体が誤って変更される可能性があります。
suコマンドの使用方法
su
コマンドはsubstituteuserの略です 、およびこれは主に、あるユーザーから別のユーザーに切り替えるために使用されます。これは、現在のディレクトリと環境( su
)でログインシェルを開始することによって行われます。 )またはターゲットユーザーの設定に完全に変更する( su -
)。
主な構文は次のとおりです。
su [user_name]
または
su - [user_name]
コマンドを引数なしで使用すると、スーパーユーザー( root )に切り替わります。 )アカウント。
suコマンドはどのように機能しますか?
作業ディレクトリ/ユーザー環境内で別のユーザーのシェルを呼び出すには、 su
を使用します コマンド(ハイフンなし)。
たとえば、 phoenixnapという名前のユーザーとして操作するには 、実行:
su phoenixnap
次に、 phoenixnapのパスワードを入力します アカウントを作成してEnterを押します 。
シェルが変更され、指定されたアカウントへのオペレーターアクセス権があることが表示されます。ただし、下の画像のように、ユーザー環境は同じままです。
su – [ハイフン]コマンドはどのように機能しますか?
別のユーザーに移動してそのターゲットユーザー環境に切り替えるには、 su -
を使用します コマンド。
したがって、フェニックスナップに切り替えるには ユーザーを使用してログインシェルに移動し、次のコマンドを入力します:
su - phoenixnap
phoenixnapのパスワードを入力します アカウントを作成してEnterを押します 確認するために。次の画像のように出力が表示されます。
sudoコマンドの使用方法
sudo
Linuxコマンドのプレフィックスとして使用されます。これにより、ログインしたユーザーはroot権限を必要とするコマンドを実行できます。 su
とは異なり 、 sudo
Linuxのコマンドでは、コマンドを実行するユーザーのパスワードを指定する必要があります。
すべての管理タスクと実行可能タスクには、最大の権限(rootが保持)が必要です。このような場合は、 sudo
を使用することをお勧めします 。
主な構文は次のとおりです。
sudo [command]
システムはコマンドを実行する前に、現在のユーザーのパスワードを要求します。
sudo
このオプションは、 sudoersに属するユーザーのみが使用できます。 グループ。
Sudoersグループへのユーザーの追加
ユーザーがsudo
を必要とするコマンドを実行するため プレフィックス、 sudoersの一部である必要があります グループ。
sudoersにユーザーを追加するには グループで、次のコマンドを実行します(rootまたはsudo権限を既に持っているアカウントとして):
usermod -aG sudo [user_name]
たとえば、アカウントを追加するには phoenixnap 、次のように入力します:
sudo usermod -aG sudo phoenixnap
sudoersグループに属するアカウントのリストを表示するには、次のコマンドを実行します。
sudo getent group sudo
出力には、前の手順で追加されたアカウントが表示されます。
sudoとsuがさまざまなLinuxディストリビューションでどのように機能するか
su
は古いですが、すべてのLinuxディストリビューションに含まれているより完全な機能を備えたコマンドです。これは、rootアカウントに切り替える従来の方法です。
Linuxは、システム全体に不要な変更を加える可能性があるため、rootとして機能することをお勧めしません。また、 sudo
の使用をお勧めします。 代わりは。このため、すべてのUbuntuベース リリースはsudoのみです 、つまり、rootアカウントはデフォルトではアクティブではありません。
Ubuntu OSのインストール中に、sudoersグループの一部として自動的にラベル付けされたユーザーを作成します。ただし、rootアカウントの設定はありません。 rootユーザーを有効にするには、手動でアクティブ化する必要があります。
一方、Fedoraなどの他のLinuxディストリビューションは、インストール時にrootアカウントとユーザーアカウントを作成します。
rootアカウントの有効化
Ubuntuベースのディストリビューションを使用していて、rootユーザーに切り替えようとすると、出力は認証の失敗があることを通知します。 。
rootユーザーをアクティブ化するには、passwdコマンドを実行します。
sudo passwd root
次に、出力はrootユーザーのパスワードを設定するように要求します。安全なパスワードを入力して再入力し、Enterキーを押します。パスワードが正常に更新されたことをシステムが通知する必要があります。
su -
を使用してログインシェルに切り替えることにより、rootユーザーがアクティブであることを確認します 。
追加機能
sudo
主にroot権限でコマンドを実行することにリンクされていますが、rootユーザーを変更するためにも使用できます。 rootユーザーに切り替えて、次のコマンドでroot環境を取得します。
sudo -i
現在使用しているユーザーのパスワードを入力します。これでルートシェルにいるはずです。
同様に、 su
sudo
としても機能します ルートとして単一のコマンドを実行します:
su -c [command]