vsftpdでユーザ毎に個別で設定を変えたい場合の設定「user_config_dir」を使う。
基本は、vsftpd.confですが、一部設定を変更したい場合はその項目だけユーザのファイルに記入する。また、なんでもかんでも上書きできるわけではないと思うので、FTPサーバ自身にかかわる部分は当然設定の上書きできません。(ポート番号とか)
/etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/user_config
/etc/vsftpd/user_config のフォルダは作っておく。
たとえば、hogeユーザのみファイルのマスクをデフォルト「022」のところ「002」にしたい場合とか
/etc/vsftpd/user_config/hoge
local_umask=002
最少パッケージのみの1CD版がリリースされたようなのでメモ
従来のnetinstallと違ってネットワークは無しでもとりあえずインストールできるので、とりあえずいれておいて、後で必要なパッケージをネットから取ってくるって感じですね。
個人的にはレスキューモードも使えるようなのでこれ1枚あれば事足りるかと思ったり。
http://wiki.centos.org/Manuals/ReleaseNotes/CentOSMinimalCD6.0
やっとというか出ました(^^;
中の人に感謝しつつダウンロードしてみます。
とりあえず、VMWareにいれてみましたが、最少構成でいれるとかなりシンプルなので、perlすら入ってませんでした(^^;
vmware-tools入れるのにとりえあず「perl gcc kernel-devel」だけいれてインストールしてみた。
起動は早くなったかも。サーバで起動が速くてもあまり意味ないですが(^^;
んで
・mkinitrd が dracut になった
・/etc/modprobe.confはないので、udevを理解する必要あり
・initがUpstartになったので起動シーケンスが別物になっている
ということで、サーバ管理者としては、大幅に仕組み変わったところもあり、緊急時とか仮想サーバへもっていったりファイルを直接編集してごにょごにょするなどの時に今までと同じようにはできないと思われるので、再勉強が必要ですorz
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.0/Japanese(CentOS 6.0 Release Notes)
RHEL6互換ということで、Scientific Linuxもあるので一応メモ
http://centos.org/(CentOS)
http://www.scientificlinux.org/(Scientific Linux)
WindowsからLinuxへrdpでつながったらいいよねっと調査
xrdp(sourceforge)というのがあるのでこれを使うらしい。
クライアントがWindows7の場合は、0.5以上じゃないとつながらないらしい。rpmforgeは、0.4みたいです。EPELリポジトリのは0.5なのでつながるのですが、キーマップがダメな模様なので、先人の方に感謝しつつ以下より対応済みのものを使用させていただきました。
xrdp 0.5.0-5 rpm(Sceneries through the lenses)
#意外と早い、VNCでもいいのですが、rdpならインストールしなくていいよね?ってことで。
LinuxからWindowsのマシンを起動したくなったので調査
wakeonlanというのがあるのでRPMパッケージをインストール
wget http://gsd.di.uminho.pt/jpo/software/wakeonlan/downloads/wakeonlan-0.41-0.fdr.1.noarch.rpm
rpm -ihv wakeonlan-0.41-0.fdr.1.noarch.rpm
WindowsマシンでBIOSなどでWake on LANの準備をして、以下のコマンドでMagic Packetを送信します。
wakeonlan -i 192.168.1.255 00:00:00:00:00:00
Magic Packetはセグメントを超えれないのですが、directed-broadcastが許可されているルータ・スイッチを経由すればセグメントも超えることができるようです。(未確認)
CentOS5.6アップデートネタですが、samba3xパッケージ使っていると5.5→5.6で
samba3x-3.3.8
↓
samba3x-3.5.4
のようにバージョンアップします。
そこで、samba共有しているフォルダにシンボリックリンクがあるとその先に繋がらなくなります。
で、以下の2つをglobalセクションに記入する必要があります。
/etc/samba/smb.conf
unix extensions = no
wide links = yes
ググってみると、シンボリック関係の仕様変更が、3.4.6であったらしい。(セキュリティの関係なので上記対応はあまり望ましくないとは思われます)
Samba 3.4.6 Available for Download(samba.org)
Claimed Zero Day exploit in Samba
何故気が付いたかと言うと、検証用サーバで、自分のホーム以下にApacheのDocumentRoot「/var/www/html/」をシンボリックしてたからだ(笑)
5.6がリリースされました。
基本的にはアップデートですが、大きいところで「php53」と「bind97」が増えました。
bindは9.3.6→9.7.0 ですが、何がちがうんだっけな、そろそろDNSSECとかやらんといかんのだけど。
phpは5.1.6→5.3.3 ですが、こちらは結構大きいです、PHP5.1だと動かせないアプリケーションがちょこちょこ出てきているのでありがたいですね。
CentOS 5.6 リリースノート
RHEL5.6のリリースノートチェックしていなかったので、PHPとかアップグレードされるってことをCentOS5.6が出た今までしらなかったは内緒だ(笑)
CentOS5.5から「postgresql84」のパッケージで「8.4.5」が使えるようになっていますが、DBのエンコードを指定してDBを作成するときのメモ
標準のエンコード(たぶん、UTF8)以外ではtemplate0をを指定して作成しないとうまくいきません。
createdb -E UTF8 -T template0 DB名
createdb -E EUC_JP -T template0 DB名
<追記>
自分用メモ(LC_COLLATE=’C’ LC_CTYPE=’C’が必要)
CREATE USER "Username" PASSWORD 'passwd' NOCREATEDB NOCREATEUSER;
CREATE DATABASE "DBName" WITH OWNER = "Username" TEMPLATE = template0 ENCODING = 'EUC_JP' LC_COLLATE='C' LC_CTYPE='C';
</追記>
前から何回か気が付いていたのですが、見て見ぬふりをしていたのですが(笑)、DNSSECやその他いろいろによりDNSの応答が512バイト超えてqmailから送信できないケースが頻発しそうです。
http://www.ckdhr.com/ckd/qmail-103.patchのパッチを当てれば解決といえば解決なのですが、運用中なやつはどうしようかなぁぁぁぁあぁ(T_T)
と思いつつメモだけしておきます。
qmail/netqmailにおける512バイトを超えるDNS応答の不適切な取り扱いについて(JPRS)
qmailのログを加工するのに、qmailanalogについてるmatchupつかって
1メール1行にしてみる。
ログのレイアウトが不明だったので、適当に検索
忘れないようにメモ。
Devilery Record (Description)
id - always d
birth - Timestamp when message started
start - Timestamp when delivery started
end - Timestamp when deilvery finished
bytes - Size of the message sent (message size, not affected by qmail-remote)
sender - Sender of message
channel.recipient - Delivery Channel (local, remote) + “.” + adddress
qp - messge queue process id (Qmail’s internal id)
uid - The unix UID (user id number) of the sender (or SMTP UID)
reason - response message from delivery (reason)
Message Record (Description)
id - always m
birth - Timestamp when message arrived
done - Timestamp when message processeing finished
bytes - Number of bytes in message
numk - Number of successful deliveries
numd - Number of failed deliveries
numz - Number of deferred deliveries
sender - Sender of message
qp - messge queue process id (Qmail’s internal id)
uid - The unix UID (user id number) of the sender (or SMTP UID)
Qmail Analog(cyberdesk.com)
毎日数千のファイルをtar.gzで固めてデイリーで保管しているのですが、解凍できないと言われたのでメモ。
Cronで処理して固めたときのログはエラーはでてないんだけど、たしかにこの日の分だけ解凍できない。
エラー内容
gzip: stdin: invalid compressed data--format violated
tar: アーカイブ中に予期せぬ EOF があります
tar: エラーを回復できません: 直ちに終了します
gzip: stdin: invalid compressed data--format violated
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
どうもGZIPが壊れてるみたい・・・・
たしか、できるところまでリカバリするやつあったなと思いさがしてみる。
ということで、「gzip Recovery Toolkit」というのがあるのでつかってみる。
まず、インストール
yum install gzrt
壊れたGZIPファイルを修復
gzrecover aaa.tar.gz
そうすると、「aaa.tar.recovered」のようなGZIPをできるだけ解凍したファイルができます。
tar.gzの場合は、さらにtarをほどく必要があるので、cpioを使います。(paxでも可らしい)
cpio -ivdm < aaa.tar.recovered
今回は、必要なファイルが全部もどらなかったのですが、運がよければだいたい戻るかも。
ってか、そもそもの原因が不明てとても気になる。ファイルシステムのバグ?、gzipのバグ?
<参考>
UNIXの部屋 コマンド検索: gzrecover
LinuxでタグVLAN(802.1Q)したくなったのでメモ
vconfigのコマンドでインターフェースを作成したりできますが起動時にUPしないと意味がないので、そのへんの設定をメモ
◆/etc/sysconfig/network
VLAN=yes
VLAN_NAME_TYPE=DEV_PLUS_VID_NO_PAD
「VLAN_NAME_TYPE」は指定しなければCentOS5の場合は「DEV_PLUS_VID_NO_PAD」になるようなのであってもなくてもいいかも。
参考まで「VLAN_NAME_TYPE」
1.VLAN_PLUS_VID → vlan005
2.VLAN_PLUS_VID_NO_PAD → vlan5
3.DEV_PLUS_VID → eth0.0005
4.DEV_PLUS_VID_NO_PAD → eth0.5
1,2の場合は、物理インターフェースがわからないので、各VLANインターフェイスに以下のパラメータも必要
PHYSDEV=eth0
んで、
◆/etc/sysconfig/network-scrpit/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:00:00:00:00:00
親になるeth0はIPADDRなどの設定を削除する。(インターフェースがあることだけ定義しておく)
◆/etc/sysconfig/network-scrpit/ifcfg-eth0.100
DEVICE=eth0.100
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.1
NETMASK=255.255.255.0
各VLANインターフェース、DEVICE名だけ気を付けて、あとは普通にIPADDRなどを定義する。
あとは、再起動するなり、service networkでアップするの確認。
LinuxのKernelのメモリが足りなくなったときにプロセスを強制で落とす、ちょっと嫌なやつ、あまりお目にかかったことがなかったが、最近見かけるようになってきた、しまいには、OracleとかJavaが落ちるし、対処する方法はググるといろいろあるのだけど、どのプロセスが悪いかが分からないのだけど、なんか調べる方法ないかなぁ。
OOM-Killer停止
echo 0 > /proc/sys/vm/oom-kill
指定のプロセスをKillされないようにする(2.6.11以降)
# echo -17 > /proc/〈プロセスID〉/oom_adj
対策
原因となるメモリオーバーコミットを許可しない
sysctl -w vm.overcommit_memory=2
sysctl -w vm.overcommit_ratio=50
起動時に自動設定するには
/etc/sysctl.conf
vm.overcommit_memory = 2
vm.overcommit_ratio = 50
malloc_limit[MB]
= swap領域のサイズ[MB] + (物理メモリ量[MB] * overcommit_ratio / 100)
vm.overcommit_ratio はデフォルト50なので、物理とスワップがたとえば1G+1Gだったら50%のほうがいいのかな?、いろんなサイトは100%近くになっているけど、スワップ無しなら100%確保させてもいいような気がしますが、スワップあると、100%近くになるとスワップしちゃうよね?、物理メモリとスワップとの割合で設定したほうがいいと思われます。
<参考>
http://d.hatena.ne.jp/yupo5656/20040624/p1
PHP4で作ってあったCSVをDBに入れるプログラムをPHP5で動かそうとしたら文字化けしてありゃりゃと調査
CSVをUTF-8にしたりすればたぶん大丈夫なのですが、SJISだと文字化けするのだと思われる。
setlocale(LC_ALL, 'ja_JP');
を宣言すれば、多少改善するみたいなのですが、イマイチのようなので、調べていると。
yossy様がすばらしいコードを、正直、中身はよくわかりませんが(動いたので読みとる元気無しorz)解決です。感謝感謝。
PHP5でfgetcsvが正常に動作しない(::yossy.blog::)
/**
* ファイルポインタから行を取得し、CSVフィールドを処理する
* @param resource handle
* @param int length
* @param string delimiter
* @param string enclosure
* @return ファイルの終端に達した場合を含み、エラー時にFALSEを返します。
*/
function fgetcsv_reg (&$handle, $length = null, $d = ',', $e = '"') {
$d = preg_quote($d);
$e = preg_quote($e);
$_line = "";
while ($eof != true) {
$_line .= (empty($length) ? fgets($handle) : fgets($handle, $length));
$itemcnt = preg_match_all('/'.$e.'/', $_line, $dummy);
if ($itemcnt % 2 == 0) $eof = true;
}
$_csv_line = preg_replace('/(?:\\r\\n|[\\r\\n])?$/', $d, trim($_line));
$_csv_pattern = '/('.$e.'[^'.$e.']*(?:'.$e.$e.'[^'.$e.']*)*'.$e.'|[^'.$d.']*)'.$d.'/';
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for($_csv_i=0;$_csv_i<count($_csv_data);$_csv_i++){
$_csv_data[$_csv_i]=preg_replace('/^'.$e.'(.*)'.$e.'$/s','$1',$_csv_data[$_csv_i]);
$_csv_data[$_csv_i]=str_replace($e.$e, $e, $_csv_data[$_csv_i]);
}
return empty($_line) ? false : $_csv_data;
}
たまたま、探しものしてて見つけたので、いつかのためにメモ
SSL通信の場合は、IPアドレス1個で、ネームベースのバーチャルホストは基本的には使えんわけですが。
目ん玉おやじのグローバルサインのワイルドカードオプションとかであれば、Apacheの起動時にワーニングも出ますが一応できそうかな。あとは、昔Delegate使ってむりやりやったことあったな。
んで、SNI(Server Name Indication)ってのがあって、これを使うとIP1個で、ネームベースのバーチャルホストができそうです、携帯はまだダメな機種が多そうですが、PC向けは結構イケそうです。
ですが、Apacheが「2.2.12」以降対応なので、CentOS5の素のApacheだと未対応です、がっかし。
リバースプロキシ先のアクセスログが全部リバースプロキシのIPになるのでどうにかならんけと言われて、どうにかなるだろうと調べたのでメモ。
ApacheなりPoundなりでリバースプロキシした時、バックエンド側で、実IPを参照して、ログ解析とかIP制限とかできるように。
mod_rpafというのがあるのでこれを使用。
ちなみにリバースプロキシでなく、バックエンドのWebサーバ(Apache)にインストールします。仕組みとしては、設定したプロキシサーバからのアクセスの場合は、X-Forwarded-For をリモートIPに上書きしてくれるモジュールです。
httpd-develは必要なのでインストール
yum install httpd-devel
ダウンロードして解凍
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xvzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
Makefileにapxsのパスをいれる
vi Makefile
>APXS2=/usr/sbin/apxs (編集)
コンパイルとインストール
make rpaf-2.0
make install-2.0
設定ファイル作成
/etc/httpd/conf.d/mod_rpaf.conf (新規作成)
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips <プロキシサーバのIPアドレス>
家サーバで、ダイナミックのIPだと、最近はOP25Bでメール送信ができなくなるので、PostfixでSMTP Authして上位(ISP)サーバへ送信する設定をしてみる。
/etc/postfix/main.cf
relayhost = [smtp.example.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain, login ← 必要に応じて
/etc/postfix/relay_passwordを作成
smtp.example.com:587 Username:Password
relay_password.dbを作成
cd /etc/postfix/
postmap relay_password
<参考>
Postfix でメールリレーの設定 (SMTP クライアント + SMTP Auth)(maruko2 Note.)
Atom330のX27Dが安くなってきたので、サーバにでもしようかと買ってみた。
で、買う前からある程度は調べてあったのですが、CentOSでギ蟹「Realtek 8111C」は問題があるらしく、自動で「r8169」がロードされてしまうがこれじゃちゃんと繋がらないらしい、おまけに「8111C」のモジュールは入ってない様子。で、先人の方々はというと、RealTekのサイトのSoftware: Drivers & Utilitiesあたりからドライバをダウンロードしてインストールする例が多いみたい。
でも、これって、カーネルアップデートしたらダメじゃんってことで、他に策はないかと調べてたら、
Realtek RTL8111B / RTL8168B NIC
ってのがありました。
DKMS (Dynamic Kernel Module Support) って仕組みがあるらしく、これに乗っかればカーネルがアップデートされても起動時に新しく組み込んでくれるものらしい。
作業としては、以下のパッケージをインストールしてあればOKです。設定もないので楽チンです。
Base
binutils gcc glibc-devel glibc-headers kernel-headers kernel-devel make
RPMForge
dkms dkms-r8168
例
DVDよりインストール
rpm -ihv gcc-4.1.2-48.el5.i386.rpm glibc-devel-2.5-49.i386.rpm glibc-headers-2.5-49.i386.rpm kernel-headers-2.6.18-194.el5.i386.rpm kernel-devel-2.6.18-194.el5.i686.rpm cpp-4.1.2-48.el5.i386.rpm libgomp-4.4.0-6.el5.i386.rpm
他のマシンでRPMForgeからファイルをとってきてCDなりUSBなどで持ってきてインストールします。(LANがつながらないので)
yum install yum-utils
yumdownloader dkms-r8168
yumdownloader dkms.noarch
rpm -ihv dkms-r8168 dkms.noarch
ちなみに、X27DでOpenVZ(CentOS5)+CentOS5のゲストを作成する予定
リリースされました。とりあえす、リリースノートも読まずに「yum update」だー(^^)/
Linux xxxx 2.6.18-194.3.1.el5 #1 SMP Thu May 13 13:09:10 EDT 2010 i686 i686 i386 GNU/Linux
ということで、このサーバは生還しました(笑)
[CentOS-announce] Release for CentOS-5.5 i386 and x86_64
リリースノート
x86_64 ってDVD、2枚なん?、と思ってRHELのほうみたらこっちは1枚ですね。CD8枚はもう焼く気はないけど、DVD1枚なら焼いてもいいかと思うけど2枚あるとヤだなぁ、まぁ、最近はnetinstallか、VMならISOマウントだし、たぶん焼かないだろうけど。(それ以前にi386しか使ってないね(笑))
RHEL5.5でも同じなんでしょうが(確認してなかった)、sambaとPostgreSQLとかは別パッケージで新しいバージョンが使えるようになってる様子(samba3xとpostgresql84)
Name : samba3x
Arch : i386
Version : 3.3.8
Release : 0.51.el5
Size : 4.2 M
Repo : base
Summary : Server and Client software to interoperate with Windows machines
URL : http://www.samba.org/
License : GPLv3+ and LGPLv3+
Name : samba
Arch : i386
Version : 3.0.33
Release : 3.28.el5
Size : 16 M
Repo : base
Summary : Samba SMB サーバー
URL : http://www.samba.org/
License : GNU GPL Version 2
Name : postgresql84
Arch : i386
Version : 8.4.2
Release : 5.el5
Size : 3.3 M
Repo : base
Summary : PostgreSQL client programs
URL : http://www.postgresql.org/
License : MIT
Name : postgresql
Arch : i386
Version : 8.1.18
Release : 2.el5_4.1
Size : 11 M
Repo : installed
Summary : PostgreSQL のクライアントプログラムとライブラリ
URL : http://www.postgresql.org/
License : BSD
RX300,RX200(無印)、もう5年前ぐらいの機種ですが余ってきたので、CentOSをインストールしてみようとしてちょっとハマったのでメモ
素性としては、CPUはXeon 2.4GHz で、64ビットでもなく、当然VTも使用できず、おまけにRAIDがI2O(Adaptec-2010S)なので、VMware(ESXi)も使えず、普通にWindowsかLinuxで使うくらいかなと、Windows2003(無印)の機械なのでWindowsで使ってもいいのですがあまり使い道もないので、Linuxにしてみる。
◆RX200
CentOS5のインストーラーのバグなのかI2O(i2o_block)のRAIDのドライバがインストーラーで検出できなくインストール時のディスクが見えないので、
Boot: linux noprobe
で、デバイスの検出しないで起動して、
i2o_block
e1000
を読み込ませてインストール
あとは、普通にインストール、「readahead_early」が悪さをするという人もいるようなので必要であれば停止
◆RX300
こっちがかなり曲者で、linux noprobeすると、画面が固まって(キーボードがきかない?)しまい進まず、noprobeでないと進むが、当然I2Oのドライバがないのでインストールできず・・・・ということで、いい加減面倒になったので、RX300をKnoppixで起動して、RX200でインストールしたサーバのdumpを無理やりrestoreして、initrdのあたりの修正とgrubをインストールして起動して解決、わっはっは!
、もう最初からインストールすることはないだろう(笑)
#RX300のオンボードLANはBroadcomなのでtg3です。
最近のコメント