sudo権限をユーザーに付与する

sudo権限の付与

su と sudo の違いを改めて確認していたところ、自分のユーザーがsudo出来ないことを把握したので設定を書きます。

1.su, sudo, の違い

一般的なsuの使い方の場合ユーザはroot権限を一時的に使えるようになる。プロンプトは「#」になりexitするまで持続する。
 → rootを複数で扱う場合は、rootのパスワードを教えないといけなくなるので、その場合はsudoのほうがいい。

su使用時にきかれるパスワードは「rootのパスワード」

■su
rootに変身するが、switch userしたディレクトリのまま。
■su –
rootに変身して、rootのホームディレクトリに勝手に移動する。
———————————————–
つまり、
■su  →rootに変身するが、switch userしたディレクトリのまま。
つまり、変身前(一般ユーザー)の環境設定を引き継いだままrootになるということ。

■su - →rootに変身して、rootのホームディレクトリに勝手に移動する。
つまり、変身後(root)の環境設定に切り替えてrootに変身する、ということ。

■sudo
sudoはコマンド単位で一時的にroot権限を使う方法。
「スーパーユーザでDoするからsudo」
コマンド単位で「誰にどのコマンドをrootで実行させることを許可するか」を指定できる。こうすることでrootパスワードを知られることなく、必要なコマンドをroot権限で実行できるようになる。

2.sudoの設定

なんの設定もしないでsudoをすると、下記のように怒られる。
[tomoya@ip address ~]$ sudo su -
[sudo] tomoya のパスワード:
tomoya は sudoers ファイル内にありません。この事象は記録・報告されます。

sudoの設定は、/etc/sudoers ファイルを編集することで行う。

やり方は2通り

1パターン目

# echo '{ユーザー名} ALL=(ALL) ALL' >> /etc/sudoers
ex.
# echo 'tomoya ALL=(ALL) ALL' >> /etc/sudoers

2パターン目

- 直接ファイルに記述 -
# visudo
{ユーザー名} ALL=(ALL) ALL
ex.
# vi /etc/sudoers
tomoya ALL=(ALL) ALL

※vi /etc/sudoers を編集するのだが、visudoコマンドを入れるのが推奨。

ファイルに追記するtomoya ALL=(ALL) ALLは、
ユーザ名 ホスト = (権限) コマンド 

ユーザ名・・・sudo を利用できるようにするユーザ名を指定
                  グループを指定する場合は % を先頭につける
ホスト・・・ホストに対する許可( /etc/sudoers にホストに対するエイリアスを書かない限りALL)
(権限)・・・sudo されるユーザ名 (ALL ならば全てのユーザ権限, つまりルート権限を使うことができる) 省略可。省略した場合はroot
コマンド・・・利用できるコマンドの制限 (ALL なら権限で指定したユーザの使える全てのコマンドを利用できる)
/sbin/ とすれば /sbin/以下のコマンド。/sbin/shutdown とすれば shutdown コマンドを指定することができる

参考

Leave a Reply

Your email address will not be published. Required fields are marked *