Windows/Linuxのトラブル追跡実績ノウハウ エンジニア必携

3-4-2-3 /etc/sudoers ログ、設定の調べ方

estis2017/02/20 (月) 09:52 に投稿

/etc/sudoers の記述方法は、man 参照すれば、わかる。

ユーザの設定の基本構造は、「誰が どこで = (誰に変身して) 何を」である (who where = (as_whom) what)。

をまず理解すると、わかりやすかった。

最小の記述は、こんな感じ。
user1 ALL= ALL
*この場合は、root にしかなれない。

3-4-2-2 visudo ログ、設定の調べ方

estis2017/02/20 (月) 09:51 に投稿

/etc/sudoers
を編集する時は、必ず、visudo コマンドを使用する。

#ls -l /etc/sudoers
-r--r-----. 1 root root 3772  2月 20 11:06 2017 /etc/sudoers

vi などでも、無理矢理変更することはできるが、編集ミスがあると最悪、rootユーザーが機能しなくなる。
visudo であれば、編集ミスをチェックしてくれる。

#visudo 
visudo: >>> /etc/sudoers: syntax error (115行付近) 

間違いがあると、コマンド終了時に表示される。
想定されているキー以外を入力すると、

オプション:
  e -- sudoers ファイルを再度編集します
  x -- sudoers ファイルへの変更を保存せずに終了します
  Q -- sudoers ファイルへの変更を保存して終了します (*危険です!*)

次は何でしょうか? 

が、表示され、どう処理するかを確認される。

3-4-2-1 sudo ログ、設定の調べ方

estis2017/02/20 (月) 09:49 に投稿

sudo できないユーザーが、実行した場合

$ whoami
estis
$ sudo ls /root/
[sudo] password for estis:
estis は sudoers ファイル内にありません。この事象は記録・報告されます。

root に、メールが飛ぶ。(設定で、宛先、件名は変更できる)

From root@localhost.localdomain  Mon Feb 20 10:54:11 2017
Return-Path: 
X-Original-To: root
Delivered-To: root@localhost.localdomain
To: root@localhost.localdomain
From: estis@localhost.localdomain
Auto-Submitted: auto-generated
Subject: *** SECURITY information for localhost.localdomain ***
Date: Mon, 20 Feb 2017 10:54:11 +0900 (JST)
Status: R

3-4-2 指定したユーザーとして、コマンドを実行 ログ、設定の調べ方

estis2017/02/20 (月) 03:54 に投稿

sudo コマンドを使用する。

書式
 sudo [-u ユーザー名] コマンド

ユーザーの指定がない場合は、root を指定したと見なされる。

su コマンドで、root になって作業するよりは、安全。

sudo command1 > /my/file とか、
sudo command1 && command2 || command3 とかしたのでは、
sudo は、command1 にのみ有効。

全て(リダイレクト先ファイル、全コマンド)を、sudo で実行したければ、
sudo bash -c 'command1 > /my/file'
sudo bash -c 'command1 && command2 || command3'
のように実行する。

設定は、
/etc/sudoers
で行う。
編集には、専用のコマンド
visudo
を使う。

3-3-12-3 tail ログ、設定の調べ方

estis2017/02/18 (土) 10:50 に投稿
# for i in $(seq 1 20); do echo $i; done | tail -5
16
17
18
19
20
# for i in $(seq 1 20); do echo $i; done | tail -n 5
16
17
18
19
20
# for i in $(seq 1 20); do echo $i; done | tail -n +5
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# for i in $(seq 1 20); do echo $i; done | tail -n -5
16
17
18
19
20
# tail --version
tail (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
ライセンス GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.

3-3-12-2 head ログ、設定の調べ方

estis2017/02/18 (土) 10:49 に投稿
# for i in $(seq 1 20); do echo $i; done | head -5
1
2
3
4
5
# for i in $(seq 1 20); do echo $i; done | head -n 5
1
2
3
4
5
# for i in $(seq 1 20); do echo $i; done | head -n +5
1
2
3
4
5
# for i in $(seq 1 20); do echo $i; done | head -n -5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# head --version
head (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
ライセンス GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.