sudoの設定

sudoを利用すると、そのユーザーはroot権限でコマンドを実行する事ができます。

また、sudo を利用すると一般ユーザーが su で root になるよりも、以下のメリットがあります。

1.root のパスワードを一般ユーザーに公開しなくてもいい

2.sudo を利用した場合、ログにコマンドが記録される

 

sudoの設定

sudo の設定ファイルは /etc/sudoers ですが、直接編集することはせず、編集用のコマンド visudo を利用します。このコマンドで編集することにより書式のチェックも行われます。

visudo

 

 

sudoの基本設定

sudo で最も一般的なユーザーやグループを指定し、全権限でコマンドを実行できるようにします。

 

sudo の書式は、[ユーザーorグロープ]  [接続元] = [権限]  [コマンド] です。

指定ユーザーに すべての権限でコマンドを実行可能にする

UserName ALL=(ALL) ALL

指定グループにすべての権限でコマンドを実行可能にする

%GroupName ALL=(ALL) ALL

 

すべての権限だと、他ユーザーの権限でコマンドを実行できます。root 権限のみでコマンドを実行可能にするには以下のようにします。

UserName ALL=(root) ALL

 

 

sudo の利用方法

sudo が設定されていれば、一般ユーザーは以下のように root などの権限でコマンドを発行できます。

sudo コマンド発行後には自身のパスワードを入力するよう求められます。

sudo /etc/init.d/httpd restart

 

 

エイリアス機能

[ユーザー] [接続元] [権限] [コマンド] をエリアス機能を利用できます。

エリアスを利用することにより、複雑な設定をした場合でも見通しが良くなります。

それぞれのエイリアス定義方法と利用例を示します。

 

ユーザーエリアス

User_Alias ADMIN = User1, User2, User3

 

接続元エリアス

Host_Alias LOCAL = 192.168.1.0/24
Host_Alias ADMINNET = 192.168.100.1, 192.168.100.2

 

権限エリアス

Runas_Alias USER= root ,tomcat

 

コマンドエリアス

Cmnd_Alias ADMINCMD = /etc/init.d/httpd
Cmd_Alias SHOUTDOWN = /sbin/shutdown, /sbin/reboot, /sbin/halt

 

エリアスを利用した設定

ADMIN  ADMINNET = (root) ALL
ADMIN ALL = (USER) ADMINCMD

 

 

例外設定

 実行時にパスワードを求めない

エリアス ADMINCMD のコマンドを実行でき、かつ、パスフレーズを要求しない。

 ADMIN LOCAL = (ALL) NOPASSWORD:ADMINCMD

 

指定のコマンドを実行させない

エリアス SHUTDOWN に設定されたコマンドは、実行不可とする。

ADMIN ALL = (ALL) ALL,!SHUTDOWN

 

 

コマンドオプション

いくつかコマンドオプション表記します。

root シェルを取得

sudo -s

 

sudo の設定情報を確認する

sudo -l

 

 

Quotaの設定

RHELやCentOSでは、標準でディスクのQuotaを設定できます。

Quotaを設定することにより、ユーザーやグループでディスク利用量の制限を設定できます。

これにより、ディスク使用量を制限できディスク空き容量不足

複数のユーザーーが共同で利用するファイルサーバなどには、推奨の機能となります。

 

Quotaにで制限するデバイスと制限方法

Quotaを利用するデバイスは、パーティションタ単位で設定します。例えば、以下のようなパーティション構成のLinuxの場合、/ パーティションにQuotaを設定することが可能となります。

Filesystem Size Used Avail Use% マウント位置
/dev/mapper/vglvroot 36G 990M 33G 3% /
tmpfs 497M 0 497M 0% /dev/shm

 

Quotaの制限

1.ユーザーかグループに対して、ファイルシステム使用量もしくは、inode数で制限します。

2.制限容量に達した場合のロック方法も2種類あります。hard を超える書き込みは即座にエラーになり、soft を超えた場合は、予め決められた猶予期間後に書き込みがエラーになります。

 

 

Quotaの初期設定

Quotaを利用するには、LinuxでQuotaの初期設定を行う必要があります。

以下の手順で、LinuxでQuotaの初期設定をおこなってください。

 

/etc/fstab の設定

Quotaを利用するパーティションに、usrquota,grquota を追加

/dev/sda1 / ext3 defaults,usrquota,grpquota 1 1
tmpfs /dev/shm tmpfs defaults 0 0

 

パーティションのリマウント

設定したパーティションを以下のコマンドでリマウントします。

mount -o remount /

 

Quota の初期ファイルの作成

以下のコマンドでQuota 管理用のファイルを作成します。

/sbin/quotacheck -mcug /

初期化が終了すると、以下2つのファイルが作成されます。

/aquota.user
/aquota.group

 

Quotaの初期化

以下のコマンドでQuotaを初期化します。

/sbin/quotacheck -avugm

移行、aquota.useraquota.group ファイルにQuota情報が更新されていきます。

 

Quotaの起動

最後に、Quota を有効にします。

/sbin/quotaon -vaug

 

 

Quota設定

OS側の準備が出来ましたので、実際に、ユーザーやグループに対してQuotaを設定していきます。

soft と hard  でリミットを使い分ける場合は、それぞれの設定を行う前に猶予期間の設定を行います。

 

猶予期間の設定

猶予期間を設定するには、以下のコマンドを実行します。

/usr/sbin/edquota -t

 

コマンドを実行すると以下設定内容が表示されますので、適時設定を行います。設定は、ファイルサイズがオーバーした場合と、Inodeがオーバーした場合とで別々に設定する必要があります。

なお、デフォルト設定は、7days になっていると思います。

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
 Filesystem       Block grace period       Inode grace period
 /dev/sda1        7days                    7days

期間指定では、日[days] , 時間[hours] , 分[minutes] , 秒[seconds] が利用可能です。

 

 Quota設定で利用する主なコマンド

ユーザーのQuotaを設定する

/usr/sbin/edquota -u UserID

 

グロープのQuotaを設定する

/usr/sbin/edquota -g GourpID

 

 Quotaの状況一覧を表示する

/usr/sbin/repquota -auvg

 

自分のQuota状況を確認する

/usr/bin/quota

 

指定ユーザーのQuota状況を確認する

/usr/bin/quota -u UserID

 

指定グループのQuota状況を確認する

/usr/bin/quota -g GroupID

 

 

設定例

実際に、ユーザー:hoge にQuotaを設定する例を示します。

/usr/sbin/edquota -u hoge

 

表示された設定画面で、ディスク利用量でのsoft or hard とInodeでのsoftとhardを設定します。

ここでは、ディスク利用量に、soft と hard のリミットを設定します。なお、設定値 0 は無制限です。

Disk quotas for user hoge (uid 1000):
 Filesystem blocks  soft     hard      inodes soft hard
 /dev/sda1  19374   1000000  2000000   172    0    0

 

設定値は1blockで1KBですので、ここでは、softに1GBのリミットを、hardに2GBを設定しました。

PHPのインストールと初期設定

CentOS-6を利用したPHPのインストールと初期設定です。

PHPは、CentOS-6のPHP-5.3.3を利用しています。

 

 

インストール

PHPをyumからインストールします。

yum install php php-mbstring

 


初期設定

yumからPHPをインストールした場合には、デフォルトの初期設定が既にされています。

PHPの設定は/etc/php.iniに、Apacheの設定は/etc/httpd/conf.d/php.confになります。

 

動作確認

PHPをインストールしたら、デフォルトの設定ファイルでPHPが動作しているか確認してみましょう。

確認用ファイルinfo.phpを、Apacheのドキュメントルートに以下の内容で配置します。

<?php
phpinfo();
?>

ファイルの配置が終わったら、ブラウザからアクセスしてみましょう。PHPの設定情報が表示されるはずです。

 

日本語環境用の設定

日本語環境で利用するにあたり必要な基本設定とmbstringの設定を行います。

設定は/etc/php.iniで行います。設定項目と内容を以下に示します。

; PHP's default character set is set to empty.
; http://www.php.net/manual/en/ini.core.php#ini.default-charset
default_charset = "UTF-8"

date.timezone = "Asia/Tokyo"

[mbstring]
; language for internal character representation.
; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.language
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
mbstring.strict_detection = Off
mbstring.http_output_conv_mimetype=

default_charset

デフォルトの文字コードを指定します。ここではUTF-8を指定します。

date.timezone

タイムゾーンの設定です。ここでは、日本の標準時間を利用するように指定します。

mbstring.language

mbstringで利用するLanguageを指定します。日本語環境で利用しますので、Japaneseを指定します。

mbstring.internal_encoding

マルチバイト文字列関数(mbstring)のデフォルトエンコードを指定します。

mbstring.http_input & mbstring.http_output & mbstring.encoding_translation

HTTP通信の時のインプットとアウトプットの文字コード変換の指定です。自動で変換の場合トラブルになることがあるので、今回はpassを指定し自動変換もoffとします。

mbstring.detect_order

文字コード自動判別に優先する文字コードを指定します。autoでもかまいませんしが、以下のように指定することもできます。今回はautoに指定します。

mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

mbstring.substitute_character

変換に失敗した場合に表示する文字を指定します。今回は文字を出力しないnoneを指定します。

mbstring.func_overload

説明が長引くので省きますが、今回は0を指定します。

mbstring.strict_detection

文字コードの自動判別を厳密に行うか設定します。今回はoffに指定します。

mbstring.http_output_conv_mimetype

ここでは空白のままにしておきます。

ここまで設定できたらApacheを再起動して設定を読み込ませ、先ほど作成したinfo.phpにアクセスし設定内容を確認してください。