Linuxで一時的に管理者(root)にスイッチする


無料Linux入門マニュアル無料ダウンロード

今だけ2,200円のLinux入門PDFマニュアルが【数量限定】で無料ダウンロードできます。
Linux入門マニュアル無料ダウンロードはこちらをクリック

管理者(root)にスイッチする場合、suコマンドを実行して管理者パスワードを
入力する必要があります。

suコマンド:ユーザーを切り替える

しかし、複数のユーザーがrootを利用する環境だと、パスワード変更の度に
全員に伝えなければなりません。そうなると、第三者にrootパスワードが
漏れる危険性がありますし、運用上とても面倒です。

その為、sudoコマンドを利用して、これらの危険性を防ぐことができます。
sudoコマンドは、root権限を必要とするコマンドを実行する際、
ユーザーパスワードを入力することで、一時的にrootのシェルを
利用してコマンド実行が出来るようになるコマンドです。

また、sudoコマンドには、パスワードキャッシュという仕組みがあり、
一度コマンドを使用して、有効なパスワードを入力すれば
そのユーザーについては、次回以降パスワード入力が
求められなくなります。ただし、これを永久的に許可したのでは
意味が無いので、デフォルトでは5分間だけパスワード入力が不要になります。

sudoコマンドを利用するには、/etc/sudoersファイルの編集が必要になります。
このファイルを編集するには、visudoコマンドを実行します。
visudoは、事前に変数のEDITORに定義されているエディタが起動して
/etc/sudoersファイルの編集が行え、ファイルのロック
(編集中他人が編集できないようにする)や、構文チェックが使用できます。

1.事前準備 /etc/sudoersファイルの編集
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# visudo  ←visudoコマンドで/etc/sudoersファイルを編集します。

編集箇所はCentOS6.3の場合、104~105行目あたりにあります。
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
%pakira ALL=(ALL) ALL  ←sudoコマンドが使用できるようpakiraを追加します。

※行頭のハッシュマーク(#)はコメントアウトを意味し、
 システム的にその行は無効になります。

上記の例では、pakiraグループに属するユーザーはsudoコマンドが
利用できるよう設定を行なっています。
特定のユーザーのみに許可したい場合は、「%」を付けずに
ユーザー名のみを記述します。

「%」はグループを意味しています。

また、下記の箇所を編集すると、
コマンド実行時にユーザーパスワードを求められなくなります。
編集箇所はCentOS6.3の場合、107~108行目あたりにあります。
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
%pakira ALL=(ALL) NOPASSWD: ALL

上記のどちらを設定するかは、
運用ルールやセキュリティ・ポリシーに則り決めることになります。
visudoを実行してviエディタが起動した場合は、
編集後、visudoを「:wq」で保存終了します。

viエディタの詳しい操作方法などは、下記ページで無料配布している
Linux無料マニュアルで習得できます。
Linuxサーバー構築マニュアル

2.sudoコマンド実行テスト
[root@Tiger ~]# logout  ←rootから一般ユーザー「pakira」に戻ります。
[pakira@Tiger ~]$ whoami  ←ユーザー名を表示します。
pakira   ←pakiraユーザーであることを確認します。
[pakira@Tiger ~]$ tail /var/log/messages ←messagesファイルを表示します。
tail: `/var/log/messages' を 読み込み用でオープンできません: 許可がありません
↑権限がないのでエラーになります。(パーミッションエラー)

[pakira@Tiger ~]$ sudo tail /var/log/messages ←sudoコマンドでrootシェル得て実行します。

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for pakira:     ←pakiraユーザーのコマンドを入力します。
Dec 19 03:14:24 Tiger kernel: EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts:
Dec 19 03:14:24 Tiger kernel: Adding 2064376k swap on /dev/mapper/vg_tiger-lv_swap. Priority:-1 extents:1 across:2064376k
Dec 19 03:14:24 Tiger kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Dec 19 03:14:24 Tiger kernel: NET: Registered protocol family 10
Dec 19 03:14:24 Tiger kernel: lo: Disabled Privacy Extensions
Dec 19 03:14:24 Tiger kernel: eth0: link up
Dec 19 03:14:29 Tiger abrtd: Init complete, entering main loop
Dec 19 03:14:31 Tiger kernel: warning: `proftpd' uses 32-bit capabilities (legacy support in use)
Dec 19 03:14:31 Tiger proftpd[1395]: 127.0.0.1 - ProFTPD 1.3.4b (maint) (built 火 8月 21 2012 17:12:41 JST) standalone mode STARTUP
Dec 19 03:14:31 Tiger kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
↑messagesファイルの内容が表示されます。



無料Linux入門マニュアル無料ダウンロード

今だけ2,200円のLinux入門PDFマニュアルが【数量限定】で無料ダウンロードできます。
Linux入門マニュアル無料ダウンロードはこちらをクリック


<<関連記事>>
・MIMEでエンコードされたテキストを読めるように変換する
・viエディタで文字をコピーする
・ハードディスクの使用状況を調べるには
・tar.bz2ファイルを解凍して展開するには
・tar.gz形式のファイルを解凍、展開するには

Linux入門マニュアル無料ダウンロード