8月 18
ApacheのCGIやPHPをユーザ権限で動かすにはmod_ruid suExec suPHP等色々ありますが今回mod_ruidを使って行ないたいと思います。
※ディフォルトのsuExecは停止させておく必要があります。
下記のパッケージをインストールする
# yum install httpd-devel
# yum install libcap-devel
ソースをダウンロードしてきてコンパイルする
# wget http://www.sourcefiles.org/Internet/WebServers/Modules/Access_Control/mod_ruid-0.6.tar.gz
# tar xvzf mod_ruid-0.6.tar.gz
# cd mod_ruid-0.6
# apxs -a -i -l cap -c mod_ruid.c
再起動するとmod_ruidが有効になる
# service httpd restart
WordPressでのエラーやphpMyAdminでのエラーの対処
※現在他の方法を模索中…
# chmod 777 /tmp/fs_sessions/ (デフォルトは700)
# chmod 777 /var/lib/php/session (デフォルトは770)
このままではapacheユーザによって作られたcgiやphpが削除できなくなったり色々と問題が発生するため現在のユーザディレクトリ内のファイル所有者を変更しpublic_htmlのパーミッションを700にするスクリプトを書いて自動で書き換える。
(色々面倒で適当に書いてるところはありますが当方が急いで書いた為なのでお気になさらずに…)
#!/usr/bin/perl
$homedir = '/home/';
opendir(DIR,$homedir);
@list = readdir(DIR);
closedir(DIR);
foreach $udir (@list) {
$userdir = "$homedir$udir";
if(-d $userdir && $udir !~ /\.|\+/){
print "$userdir : $udir\n";
$chown = `chown -R $udir:$udir $userdir/public_html`;
$chmod = `chmod 700 $userdir/public_html`;
}
}
今後作成されるユーザディレクトリのパーミッションを変える
# chmod 700 /etc/skel/public_html
最後に不正に他のユーザのディレクトリやファイルが閲覧出来ない事を確認する。

Tagged with: Linux (Server) • PC • Perl
8月 18
色々調べたところmakeするインストール方法が殆どでしたのでrpmでインストールする方法を纏めてみました。
ダウンロードしてくる
# wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/csbuild/SLE_10/i586/delegate-9.9.1-1.1.i586.rpm
インストール
# rpm -ivh delegate-9.9.1-1.1.i586.rpm
インストール場所の確認
# rpm -qs delegate-9.9.1-1.1.i586
通常 /etc/delegated.cf
通常 /usr/sbin/delegated
通常 /usr/share/delegate
通常 /usr/share/delegate/docs/howto.html
通常 /usr/share/delegate/docs/manual.html
通常 /usr/share/delegate/docs/tutor-en.html
設定ファイル格納用ディレクトリの作成
# mkdir /etc/delegate
起動スクリプトを書く
# vi /etc/init.d/delegated
#!/bin/sh
#
# chkconfig: 35 90 10
# description: delegated ftp proxy
# processname: delegated
# config: /etc/delegate/*.conf
DELEGATE=/usr/sbin/delegated
CONFDIR=/etc/delegate
DGROOT=/var/delegate
if [ ! -x $DELEGATE ]; then
echo -n $"$DELEGATE does not exist."; warning; echo
exit 0
fi
if [ ! -r $CONFDIR ]; then
echo -n $"$CONFDIR does not exist."; warning; echo
exit 0
fi
RETVAL=0
start() {
echo -n $"Starting up Http DeleGate daemon: "
for CONFIG in $CONFDIR/*.conf ; do
$DELEGATE DGROOT=$DGROOT +=$CONFIG
echo
done
return 0
}
stop() {
echo -n $"Shutting down Http DeleGate daemon: "
for CONFIG in $CONFDIR/*.conf ; do
$DELEGATE DGROOT=$DGROOT +=$CONFIG -Fkill
echo
done
return 0
}
restart() {
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
権限を与える
# chmod 700 /etc/init.d/delegated
ログローテーションを設定する
# vi /etc/logrotate.d/delegate
/var/log/delegate/ftp.log /var/log/delegate/pop.log /var/log/delegate/smtp.log /var/log/delegate/errors.log /var/log/delegate/stdout.log /var/log/delegate/0 {
missingok
rotate 7
compress
delaycompress
notifempty
copytruncate
create 0600 root:root
}
設定ファイルを書く(FTPプロキシ)※サーバのFTPとかぶらないようにする。
# vi /etc/delegate/ftp.conf
-P2100
SERVER=ftp
MOUNT=”/* ftp://192.168.24.4/*”
ADMIN=orbit@mail.orsp.net
起動
# service delegated start
Tagged with: Linux (Server) • PC
8月 13
CPUを取り替えてKVMをインストールしようとしたらCPU Over temperatureとエラーが出たので何事かと調べたところその上にUnknown CPU detected and an updated BIOS is requiredと表示されていた。
BIOSがCPUに対応していない(認識出来ていない)ためCPUの温度が100℃と表示されていたようだ。(modprobe kvm_intelも実行できない)
BIOSのアップデートさえうまく行えば表示は消えるので下記を参考にBIOSのアップデートを行う。
P5KPL-CM 0608 BIOS
1. Release for new ASUS update.
http://support.asus.com/download/download.aspx?SLanguage=ja-jp&product=1&model=P5KPL-CM
P5KPL-VMの日本語説明書が代用できる
http://www.unitycorp.co.jp/support/download/manual/775/j3286_p5kpl-vm.pdf
Tagged with: Linux (Server) • PC
8月 11
別けあって今回新たに構築したサーバは勉強にSELinuxを稼働させてみた。
そこで最初は色々と問題が発生したのでそのひとつであるProftpdのアクセスしたディレクトリ内が見えない事について解決しようと思う。
下記のコマンドで一覧を表示する
# getsebool -a
ftp_home_dir –> off
ftpd_connect_db –> off
ftpd_disable_trans –> off
ftpd_is_daemon –> off
これらの機能が現在無効化されているためこれから下記のように有効化したいと思う。
# setsebool ftp_home_dir on
# setsebool ftpd_connect_db on
# setsebool ftpd_disable_trans on
# setsebool ftpd_is_daemon on
もう一度下記のコマンドで一覧を表示し有効になってるか確認する
# getsebool -a
ftp_home_dir –> on
ftpd_connect_db –> on
ftpd_disable_trans –> on
ftpd_is_daemon –> on
※追記
上記の設定では再起動時にリセットされる為設定を維持させるためにはsetseboolに-Pオプションを追加する必要がある。
Tagged with: CentOS • Linux (Server)
8月 10
ずいぶん前にサンプルページが表示されないように設定していたはずなのに何故か度々表示されるようになったので調べてみたところ、設定ファイルwelcome.confが復活していた。

削除してもバージョンアップすれば自動で作成されるとのこと。
一応表示させない為に下記のコマンドを実行した。
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.backup
Tagged with: Apache • Linux (Server)
8月 07
ソフトの窓様がVisitorsの日本語化をされていらっしゃいましたので、ファイルを元にその日本語化をもっと徹底的に行ないました。
修正内容
・残りの英語表記であった部分を日本語化しました。
・解析結果を表示するページが左寄でしたので中央寄せに修正しました。
visitors-0.7-JPORSP.tar.gz
使い方はソフトの窓様を参考にお願いします。
Tagged with: Linux (Server) • PROGRAM • Tool
7月 26
意外にもあまり紹介されていないのでメモしておきたいと思う。
EUC-JPの文字コード表では次の通りに並んでる。
!”#$%&’()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
よって/[\!-\~]/iこれで全ての半角英数文字をマッチすることが可能である。
Tagged with: Linux (Server) • PC • Perl • PROGRAM
7月 07
ユーザディレクトリにクオータをかけたは良いが解除する方法が紹介されていない為書き込んでおこうと思う。
ユーザ:testのクオータを解除する。
# edquota -u test
Disk quotas for user test (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/cciss/c0d0p6 432 500000 512000 96 0 0
上記をviの方法で下記のように書き換える。
# edquota -u test
Disk quotas for user test (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/cciss/c0d0p6 432 0 0 96 0 0
あとは保存することでクオータが解除される。
Tagged with: CentOS • Linux (Server)
7月 07
Apacheのアクセスログ(/var/log/httpd/access_log)に含まれるIPアドレスを一斉にHOST名に変更したいと思うことがしばしばある。
しかし、あまり方法が紹介されていないようなので今回書いておこうと思った。
Apachjeにはログに含まれるIPアドレスを自動的にHOST名に変換してくれるlogresolveというコマンドがある。今回これを使い一括して変換を行なおうと思う。
コマンドの形式
# logresolve < 生ログのファイル > 変換した出力先ファイル
例:
# logresolve < /var/log/httpd/access_log > ./laccess_log
これにより/var/log/httpd/access_logに含まれるIPアドレスを一括して変換し./laccess_logへ結果を保存することができる。
Tagged with: Apache • CentOS • Linux (Server)
5月 30
/ パーティション肥満化原因が/var/cache関連でしたのでeAcceleratorのディスクキャッシュを止めました。
又、メモリーを大量消費しないように16MBまでに制限しました。
# vi /etc/php.d/eaccelerator.ini
; Enable eAccelerator extension module
zend_extension = /usr/lib/php/modules/eaccelerator.so
; Options for the eAccelerator module
eaccelerator.cache_dir = /var/cache/php-eaccelerator
;eaccelerator.shm_size = 0
eaccelerator.shm_size = 16
eaccelerator.enable = 1
eaccelerator.optimizer = 1
eaccelerator.check_mtime = 1
eaccelerator.filter = ""
eaccelerator.shm_max = 0
eaccelerator.shm_ttl = 3600
eaccelerator.shm_prune_period = 0
;eaccelerator.shm_only = 0
eaccelerator.shm_only = 1
eaccelerator.compress = 1
eaccelerator.compress_level = 9
;eaccelerator.keys = "shm_and_disk"
eaccelerator.keys = "shm_only"
;eaccelerator.sessions = "shm_and_disk"
eaccelerator.sessions = "shm_only"
;eaccelerator.content = "shm_and_disk"
eaccelerator.content = "shm_only"
eaccelerator.debug = 0
eaccelerator.shm_only = 1
CPU使用率を監視しながら使用率が大幅に上がる場合等は考え直そうと思う。
Tagged with: Linux (Server) • PC • PHP
最近のコメント