sudoの役割
sudoとは、Unix系OS(macOSやLinux)で使われるコマンドで、他のユーザ権限でコマンドを実行するための仕組みです。
このsudoコマンドは、一時的に一般ユーザへ管理者権限(root)を付与する際に実行します。
名前は、superuser do(スーパーユーザとして実行する)の略です。
sudoの使い方
Linuxでは、重要な設定変更やソフトウェアのインストールなど、OSに影響を与える操作は、誤った操作によってシステムに影響を与えないよう、通常のユーザ権限では実行できないようになっています。
そのため、普段の作業は一般ユーザ権限で行い、root権限が必要な場合にだけ、sudoを使用して一時的に権限を昇格させる使い方が一般的です。
以下のようなroot権限が必要となる操作を行う際は、コマンドの先頭にsudoを付けて実行します。
- パッケージのインストール・更新・削除
- システム設定ファイルの編集
- ネットワーク設定の変更
- サービスの起動・停止・再起動
- ユーザ/グループの作成・変更・削除
- など
sudoを使用することで、rootができることの大半を実行できるようになります。
※自分のホームディレクトリ内での作業では、基本的にsudoは不要です。
sudoを使うためのグループ
一般ユーザがsudoを使うためには、ユーザが特定のグループに所属しておかないと、sudoが実行することができません。ただし、OSによって、グループ名がデフォルトで異なりますので注意してください。
- Debian系(Ubuntu)では、ユーザが
sudoグループに所属していると、sudoを使えます。 - RHEL系(CentOS)では、ユーザが
wheelグループに所属していれば、sudoが使えます。
ユーザがどのグループに所属しているかはgroupsコマンドで確認できます。
rootとの違い
rootとは、Unix系OSにおける最高権限を持つ特別なユーザで、OS全体を完全に支配できるアカウントです。
root権限を元々持つrootと、sudoによってroot権限に昇格させて操作する一般ユーザとの違いを見ていきます。
root・一般ユーザ における、プロンプトの違い
プロンプトの構成は以下の通りです。
userA@Server01:~$
| ∟___ シェルプロンプト
∟___________________ ユーザ名
シェルプロンプトには、#や$があります。
rootアカウントでは#で表示され、一般ユーザでは$で表示されます。
ユーザ名は、ログインユーザ名が表示されますので、
rootアカウントではrootと表示されます。
root・sudo における、操作性の違い
rootでは、即実行で非常に操作が楽ですが、危険な面もあります。
一方、sudoで作業する場合、ワンクッションがあるので、誤操作防止になります。
rootで作業していると事故を起こしやすいため、冒頭でも記述したよう、普段の作業は一般ユーザ権限で行い、root権限が必要な場合にだけ、sudoを使用して一時的に権限を昇格させる使い方が一般的です。
root@Server01:~#このような状態の時は、「apt xxx」などそのままのコマンド体系で実行することができます。毎回sudoの実行は不要です。
root@Server01:~#
root@Server01:~# apt update
root@Server01:~# userA@Server01:~$このような状態の時は、毎回sudoが必要となります。
sudoを実行しなかった場合は「Permission denied」となりはじかれてしまいます。
userA@Server01:~$
userA@Server01:~$ apt update
Permission denied
userA@Server01:~$そこで、sudoコマンドで実行すると、この1回だけroot権限で実行されるようになります。
userA@Server01:~$
userA@Server01:~$ sudo apt update
[sudo] password for userA:
userA@Server01:~$ここでユーザのログインパスワードを入力すると、そのままコマンドがすぐに実行されます。
このパスワード入力は初回の1回のみで、同一セッション中は、2回目以降のsudo実行時のパスワード入力は不要です。
いかがでしたでしょうか。
最後まで、お読みいただきありがとうございました。
コメント