logrotate(FedoraCore5) 

[/etc/logrotate.conf]

compress #gzipする
#compress #gzipしない


とりあえず。

複数の入力ソースをまとめるパイプ 

シェル(ここでは/bin/sh)の処理の中で、複数の入力ソースを一度に、テンポラリファイルを使わずにパイプしたい。
たとえばローテートしてgzipした古いログファイルと、現在記録中のログファイルの両方を区別せずに集計したい場合などが考えられる。ログファイル一つだけであれば、

COMMAND LOGFILE

とか、

gunzip -c LOGFILE.gz | COMMAND

等と処理できるが、ふたつを合わせてやろうとすると、

gunzip -c LOGFILE.gz > TEMPFILE
cat LOGFILE >> TEMPFILE
COMMAND TEMPFILE

なんてやることが多いかもしれない。ディスクに空きがあればそれでもいいが、必ずあると保証もしにくいのでテンポラリファイルを使うのは避けたい。こんな場合には次のようにやればいいだろう。

for A "cat LOGFILE" "gunzip -c LOGFILE.gz"
do
$A
done | COMMAND

こうすることで複数の入力ソースを区別せずにコマンドへ流し込んでやることができる。

SELinux on FedoraCore5 

[/etc/selinux/config]

SELINUX=enforcing
# enforcing - SELinuxによるアクセス制限を有効にする
# permissive - SELinuxによるアクセス制限違反を記録する
# disabled - SELinux無効

SELINUXTYPE=targeted
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.

SETLOCALDEFS=0
# SETLOCALDEFS= Check local definition changes



マシンのSELinux有効状態の確認
getenforce
{Enforcing|Permissive|Disable}

SELinux管理者権限ロール
newrole -r sysadm_r

setenforce {1|0}
1 : Enforcingモード
0 : Permissiveモード

sestatus

SELinux属性の確認
ls -Z
ps -Z
id -Z

FedoraCore5+Postfix 

FedoraCore5+Postfix-2.2.8-1.2という環境で、「Postfixキューに入った後のコンテンツフィルタの使い方。」に従ったコンテンツフィルタ設定を行ってみた。
が、不可解なエラーに見舞われた。
[/var/log/maillog]

Aug 15 04:02:09 HOST pipe[27864]: fatal: pipe_comand: execvp /var/spool/filter/filter-script: Permission denied


ということで権限がないとのこと。
su - filterしてから実行すれば動くし、ファイル・ディレクトリアクセス権・所有者も確認したけどダメ、ということで色々やってみたが、うまくいかない。
ひょっとして、と思い試したところ、今回もSELinuxが原因だった。
と試しにSELinuxを無効にしてみたところうまく動く。(無効にした後、有効にするのには再起動時に長い時間がかかる) 具体的にどこを開ければうまくいくのかを絞りこまないといけない。
「セキュリティレベルの設定」→「SELinux」→「SELinuxポリシー修正」にて「その他」→「postfix_disable_trans」にチェックを付けることでとにかく動くということを確認。

ポリシの変更後は、/etc/init.d/postfix stop; /etc/init.d/postfix startなどとしてプロセスの再起動をしないと反映されない。
"*_disable_trans"は、"unconfinedなドメインからは遷移しない"という意味らしい。
本当は(たぶん)filterスクリプトをpostfixのためのポリシに組み込んでやることがよいと思う。

Postfix+LDAPでmailqが返ってこない 

FedoraCore5?でPAM+LDAPで認証しているマシンにて、Postfixのmailqが返ってこないということに気がついた。
[/var/log/maillog]


HOST postfix/showq[15836]: nss_ldap: failed to bind to LDAP server ldap://ldap.dom.ain: Can't contact LDAP server
:
:
HOST postfix/showq[15836]: nss_ldap: reconnecting to LDAP server (sleeping 4 seconds)...
HOST postfix/showq[15836]: nss_ldap: failed to bind to LDAP server ldap://ldap.dom.ain: Can't contact LDAP server
:
:
HOST postfix/showq[15836]: nss_ldap: reconnecting to LDAP server (sleeping 8 seconds)...
:
:
HOST postfix/showq[15836]: nss_ldap: reconnecting to LDAP server (sleeping 16 seconds)...
HOST postfix/showq[15836]: nss_ldap: reconnecting to LDAP server (sleeping 32 seconds)...


ということでLDAPサーバに接続できないでいる模様。するとPAMの問題となりそうだが、/etc/pam.d/には取り立てて変更を掛けていないんだけど。
/etc/pam.d/smtp.postfixを見て動いてくれるんじゃないのかしら?
[/etc/pam.d/smtp.postfix]

#%PAM-1.0
auth include system-auth
account include system-auth


ということで取り立ててなぁ?
それともPostfixが自分でLDAPコネクションを張っているのかしら?