猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

Linux

sudo

投稿日:2013年2月20日 更新日:

sudoの概要

linuxでのセキュリティの方針として、
いかにroot権限を守るかがあります。

その一つは、sshで直接rootにログインすることを禁止し、
更にrootに昇格できるユーザーを制限するという方法があります。
(linuxのユーザーセキュリティ参照)

そしてもう一つが、一般ユーザーに対して特定のrootの実行権限を付与する方法があります。
一般ユーザーはsudoコマンドを利用して与えられたroot権限のコマンドを実行します。

この方法だと、rootのパスワードは一切ネットワーク上には流れず、
コマンドの実行履歴を残すことができます。

visudoで付与する権限を編集する

与える実行権限は、visudoで編集します。
これにより、構文のエラーのチェック等を行うことができます。

# visudo
>>> sudoers file: syntax error, line 96 <<<
What now?
と出た場合は設定ミスがあります。
この場合はeで再編集します。

設定ファイルの編集方法は以下の通りです。

[ユーザー/グループ] [ホストの指定] = [与えるユーザー権限][許可/不許可するコマンド(,区切り。!で不許可)]
%をつけるとグループ、なければユーザー指定になります。

(例1)
%users ALL=(ALL)ALL
全てのホストからのusersグループ = (全てのユーザー権限で)全てのコマンド

(例2)
%users ALL=(root) /sbin/reboot
ルートとしてのrebootの権限のみ

(例3)
%users ALL=(ALL)ALL, !SHUTDOWN
シャットダウン以外のコマンド

Aliasの使用

以下のAliasが使用できます。
User_Alias ユーザー名の別名を定義する
Runas_Alias 実行ユーザー名の別名を定義する
Host_Alias 接続元ホストの別名を定義する
Cmnd_Alias 実行するコマンドの別名を定義する

(例)
Host_Alias LOCAL = 192.168.0.0/24  //ローカルネットワークに限定する
Host_Alias LOCAL = 192.168.0.2  //あるいは、特定のIPアドレスに限定する
%users LOCAL=(ALL)ALL
指定したhostからのユーザーにのみ権限をあたえる

ログの出力先変更

coentosの場合はデフォルトが/var/log/secureになります。
# visudo
# Logging
Defaults logfile = /var/log/sudo.log 
で変更できます。

sudoの実行例

$ cat /var/log/messages
cat: /var/log/messages: ←一般ユーザーにはmessagesを参照する許可がありません
$ sudo cat /var/log/messages ←sudo に続けてコマンドを入力します。
パスワード: ←rootではなくログイン中のユーザーのパスワードを入力します。これで一般ユーザーでも付与された権限のコマンドが実行できます。
Jan 23 08:58:26 localhost syslogd 1.4.1: restart.
Jan 23 09:18:58 localhost avahi-daemon[2283]: Invalid query packet.
Jan 23 09:19:38 localhost last message repeated 7 times

パスワード

デフォルト5分なので、聞かないようにするには
以下のように設定します。
# visudo
%users ALL=(root)NOPASSWD:ALL

Gooleアドセンス用336

Gooleアドセンス用336

-Linux
-

執筆者:

関連記事

linux

E173: 編集すべきファイルが x 個あります

viでE173: 編集すべきファイルが x 個あります と表示されたことはないでしょうか・・・。 vi file.txt ] とタイプミスのために2つのファイルが開いただけでした・・・ 入門vi 第6 …

linux

viで行を削除する

INDEX1 カーソルのある行から削除する2 指定した行を削除する3 特定の行で、カーソルの前後を削除する カーソルのある行から削除する ノーマルモードで dd でカーソルのある行を削除できます。 数 …

linux

vmware上のCentOSに仮想化ソフトxenをインストールする(4)ネットワークの構築

INDEX1 概要2 libvirtを使用したネットワーク構築方法3 xenbrを使用したネットワークの構築方法 概要 仮想OS用のネットワークの構築方法です。 libvirtを使用する方法とxenb …

linux

samba(共有)の設定手順

INDEX1 (1)smbをyumでインストールする2 (2)linuxユーザーを追加する。3 (3)linxユーザーのパスワード4 (4)linuxユーザーをsmbaのユーザーに追加する5 (5)設 …

WindowsのeclipseからLinuxのPHPをリモートデバッグする(2)WindowsのEclipseの設定

前回の WindowsのeclipseからLinuxのPHPをリモートデバッグする(1)Linuxにxdebuをインストールする で紹介したxdeugのインストールが前提となります。 ここでリモートデ …