sudoコマンドとsuコマンドの検証

sudoコマンドとsuコマンドの検証

sudoコマンドとsuコマンドの検証




参照サイト


sudoとは、rootなどの他ユーザーの権限でコマンドを実行するコマンドです。
superuser doという意味です。


検証のために新規ユーザー「user1」を作成します。

[root@centos52 ~]# useradd user1


作成ユーザーの確認をします。

[root@centos52 ~]# id -a user1

uid=501(user1) gid=501(user1) 所属グループ=501(user1)


ホームディレクトリの確認をします。

[root@centos52 ~]# ls -ld /home/user1

drwx------ 2 user1 user1 4096 8月 28 18:19


パスワードを編集します。

[root@centos52 ~]# passwd user1


「user1」でログインします。

centos52 login: user1


/var/log/messagesを見ようと試行します。
権限が有りませんと言われます。

[user1@centos52 ~]$ cat /var/log/messages

cat /var/log/messages: Permission denid


sudoコマンドで再度試行します。

[user1@centos52 ~]$ sudo cat /var/log/messages

user1 is not in the sudoers file. This incident will be reported.


user1にはsudoersファイルが無いと言われたため
rootで再ログインし、sudoersを編集します。


sudoersファイルを見てみます。

[root@centos52 ~]# cat /etc/sudoers


visudoで編集します。viで編集しないこと。
visudoは編集後に文法を解析し文法エラーがあればファイルを変更しない。

[root@centos52 ~]# visudo


下の方に以下の行が有るので、それに倣い設定します。

## Allow root to run any commands anywhere

root ALL=(ALL) ALL


今回は以下の記述を追加しました。

user1 ALL=(ALL) ALL


保存して「user1」で再ログインします。
sudoコマンドで再度試行します。
閲覧可能になりました。


[user1@centos52 ~]$ sudo cat /var/log/messages

※-uオプションを付けるとroot以外のユーザーを指定できます。


ユーザが実行できるコマンドを表示します。
[user1@centos52 ~]$ sudo -l

User user1 may run the following commands on this host:

(ALL) ALL


suでユーザーを切り替えます。

[user1@centos52 ~]$ su


suでユーザーを「user1」へ切り替えます。

[root@centos52 ~]# su user1

※user1の権限でcommandを実行するには su user1 -c [command]