MENU

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]