CentOS7でsudo権限の設定をする
root権限で作業することが多いサーバーですが、最近のクラウドサーバーではsudo権限が使われることが一般的みたいです。GCPやAWSなどはsudo su -l などのコマンドが用意されていてrootになったりします。
sudo権限って何?
すごくざっくりいうと、一般ユーザーにroot権限を与える事ができるコマンドです
rootでよくない?
rootと同じ権限を与えるなら、rootでよくない?って思うかもしれませんが、rootユーザーの権限を与えるので厳密にはrootユーザーはではありません。
細かい権限設定ができる
rootユーザーは基本的に全ての事ができます。ミドルウェアのインストールや削除、再起動や設定ファイルの変更などができます。sudo権限は一般ユーザーに細かい権限の設定ができます。
shutdownとyumだけ許可したい
sudo権限は細かい権限の設定ができます。rootユーザーとは違い、権限がなければ変更が出来ないと言う事があります。例えばshutdown権限とyum権限だけ与えたいという場合は以下のようにすることで可能です。
[root@localhost]# visudo macan ALL=(ALL) NOPASSWD: /sbin/shutdown, /bin/yum
例ではmacanというユーザーに対し、パスワードなしでshutdownとyumの権限を与えています。それ以外の権限はないため例えばsudo vi などはできません。
一般ユーザーに全ての権限を与える事も出来る
一般ユーザーをroot権限を与えてrootと同じようにすることもできます。ただそれをすると一般ユーザーでコマンド間違えて取り返し付かなくなるとか、なんらかの理由でそのユーザーが外部に漏れてしまったなどを考えると、一般ユーザーにはroot権限全て与えないで一部だけというのが良い気もします。
この方が安全?
rootだとなんでもできますが、例えばsudo権限にrm権限を与えないと、sudoでyumでインストールしたけどrmで消したいというときは消せません。なのでシステムで普段はsudoでここぞというときはrootとか、なんらかの理由から他者にroot権限を与えるときに、sudoをいれれば安全かもしれません。
どんな場面で使う?
ぱっと思いつかないですが、例えばPHPやPythonなどでどうしてもapacheの再起動が必要になった時に、第三者が行うというときにsudo権限で再起動させるなどになります。
※あまりないかもしれません
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS