はじめに
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]