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権限だけ与えたいという場合は以下のようにすることで可能です。

[c]
[root@localhost]# visudo

macan ALL=(ALL) NOPASSWD: /sbin/shutdown, /bin/yum
[/c]

例ではmacanというユーザーに対し、パスワードなしでshutdownとyumの権限を与えています。それ以外の権限はないため例えばsudo vi などはできません。

一般ユーザーに全ての権限を与える事も出来る

一般ユーザーをroot権限を与えてrootと同じようにすることもできます。ただそれをすると一般ユーザーでコマンド間違えて取り返し付かなくなるとか、なんらかの理由でそのユーザーが外部に漏れてしまったなどを考えると、一般ユーザーにはroot権限全て与えないで一部だけというのが良い気もします。

この方が安全?

rootだとなんでもできますが、例えばsudo権限にrm権限を与えないと、sudoでyumでインストールしたけどrmで消したいというときは消せません。なのでシステムで普段はsudoでここぞというときはrootとか、なんらかの理由から他者にroot権限を与えるときに、sudoをいれれば安全かもしれません。

どんな場面で使う?

ぱっと思いつかないですが、例えばPHPやPythonなどでどうしてもapacheの再起動が必要になった時に、第三者が行うというときにsudo権限で再起動させるなどになります。
※あまりないかもしれません

この記事に関する技術サポート・ご相談

「手順通りにいかない」「自社環境への構築を代行してほしい」など、
インフラ・サーバー周りでハマった際はお気軽にご相談ください。

相談・問い合わせフォームを開く

※ Googleフォームへ移動します(初回相談無料)

個人支援・寄付について

サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。

  • ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS