2012年3月28日水曜日

samba最新版バイナリパッケージの作成

パッケージビルド環境
 OS:         CentOS 5.8
 SELinux:      Enforcing
 パッケージ作成環境
  作業:       /usr/src
  ソース展開先:   /usr/src/samba/samba-3.6.3
  パーケージ作成先: /usr/src/redhat/RPMS/i386
 言語:        LANG=ja_JP.UTF-8
 ユーザー:      rootで実行
エラー: 式中で構文解析エラー
エラー: /usr/src/redhat/SPECS/samba.spec:39: parseExpressionBoolean が -1 を返しました。
エラー: パッケージには %description がありません: samba
makerpms.sh: Done.

上記のようにエラーになってしまう。
エラーになった箇所(samba.specの39行目)の %{rhel_ver} のコマンドである lsb_releaseコマンドをインストールしてから再度実施したが、同様のエラーになった。
なので、エラーになった箇所(samba.specの39行目)をコメントアウトして再度実行する。

#%if %{rhel_ver} > 4
BuildRequires:  keyutils-libs-devel
#%else
#BuildRequires:  keyutils-devel
#%endif
CC="$CC" CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
        --prefix=%{_prefix} \
        --localstatedir=/var \
        --with-configdir=%{_sysconfdir}/samba \
        --libdir=%{_libarchdir} \
        --with-modulesdir=%{_libarchdir}/samba \
        --with-pammodulesdir=%{_libarch}/security \
        --with-lockdir=/var/lib/samba \
        --with-logfilebase=/var/log/samba \
        --with-mandir=%{_mandir} \
        --with-piddir=/var/run \
        --with-privatedir=%{_sysconfdir}/samba \
        --with-sambabook=%{_datadir}/swat/using_samba \
        --with-swatdir=%{_datadir}/swat \
        --enable-cups \
        --with-acl-support \
        --with-ads \
        --with-automount \
        --with-fhs \
        --with-pam_smbpass \
        --with-libsmbclient \
        --with-libsmbsharemodes \
        --with-libtalloc \
        --with-libtdb \
        --without-smbwrapper \
        --with-pam \
        --with-quotas \
        --with-shared-modules=idmap_rid,idmap_ad,idmap_hash,idmap_adex \
        --with-syslog \
        --with-utmp \
        --with-dnsupdate \
        --with-ldap \
        --with-ldapsam \
        --with-winbind

上記を修正後に makerpms.sh を再実行する。
作成されたパッケージ

[root@ora02 i386]# pwd
/usr/src/redhat/RPMS/i386
[root@ora02 i386]# ls -il
合計 113496
1049885 -rw-rw-r-- 1 root root 12008925  3月 16 05:47 samba-3.6.3-1.C58.i386.rpm
1049887 -rw-rw-r-- 1 root root 17453135  3月 16 05:48 samba-client-3.6.3-1.C58.i386.rpm
1049888 -rw-rw-r-- 1 root root  8943149  3月 16 05:48 samba-common-3.6.3-1.C58.i386.rpm
1049894 -rw-rw-r-- 1 root root 66944982  3月 16 05:52 samba-debuginfo-3.6.3-1.C58.i386.rpm
1049892 -rw-rw-r-- 1 root root  8578764  3月 16 05:48 samba-doc-3.6.3-1.C58.i386.rpm
1049891 -rw-rw-r-- 1 root root  2106771  3月 16 05:48 samba-swat-3.6.3-1.C58.i386.rpm
[root@ora02 i386]# 

(1). 早速インストール

[root@hoge i386]# rpm -Uvh samba-3.6.3-1.C58.i386.rpm samba-common-3.6.3-1.C58.i386.rpm samba-client-3.6.3-1.C58.i386.rpm samba-swat-3.6.3-1.C58.i386.rpm samba-doc-3.6.3-1.C58.i386.rpm samba-debuginfo-3.6.3-1.C58.i386.rpm
準備中...                ########################################### [100%]
        ファイル /usr/lib/libtdb.so.1.2.9 (パッケージ samba-common-3.6.3-1.C58.i386 から) は、パッケージ libtdb-1.2.9-10.el5_0.wing.i686 からのファイルと競合しています。
        ファイル /usr/lib/libtalloc.so.2 (パッケージ samba-common-3.6.3-1.C58.i386 から) は、パッケージ libtalloc-2.0.1-11.el5.i386 からのファイルと競合しています。
        ファイル /usr/lib/libsmbclient.so.0 (パッケージ samba-common-3.6.3-1.C58.i386 から) は、パッケージ libsmbclient-3.0.33-3.38.el5_8.i386 からのファイルと競合しています。
        ファイル /usr/include/libsmbclient.h (パッケージ samba-common-3.6.3-1.C58.i386 から) は、パッケージ libsmbclient-devel-3.0.33-3.38.el5_8.i386 からのファイルと競合しています。
        ファイル /usr/share/man/man7/libsmbclient.7.gz (パッケージ samba-common-3.6.3-1.C58.i386 から) は、パッケージ libsmbclient-devel-3.0.33-3.38.el5_8.i386 からのファイルと競合しています。
[root@hoge i386]# 

(2). talloc-2.0.7 をインストール

ソース(talloc-2.0.7.tar.gz をダウンロードして展開)からコンパイルしてインストールする。
また、古い

(3). 再度SAMBAをインストール

[root@hoge i386]# rpm -Uvh samba-3.6.3-1.C58.i386.rpm samba-common-3.6.3-1.C58.i386.rpm samba-client-3.6.3-1.C58.i386.rpm samba-swat-3.6.3-1.C58.i386.rpm samba-doc-3.6.3-1.C58.i386.rpm samba-debuginfo-3.6.3-1.C58.i386.rpm
準備中...                ########################################### [100%]
        ファイル /usr/lib/libsmbclient.so.0 (パッケージ samba-common-3.6.3-1.C58.i386 から) は、パッケージ libsmbclient-3.0.33-3.38.el5_8.i386 からのファイルと競合しています。
        ファイル /usr/include/libsmbclient.h (パッケージ samba-common-3.6.3-1.C58.i386 から) は、パッケージ libsmbclient-devel-3.0.33-3.38.el5_8.i386 からのファイルと競合しています。
        ファイル /usr/share/man/man7/libsmbclient.7.gz (パッケージ samba-common-3.6.3-1.C58.i386 から) は、パッケージ libsmbclient-devel-3.0.33-3.38.el5_8.i386 からのファイルと競合しています。

(4). 競合パッケージをYum Extender からアンインストールする。

libtdb.so.1.2.9をアンインストール
libtalloc-2.0.1-11.el5.i386をアンインストール

libsmbclient-3.0.33-3.38.el5_8.i386をアンインストール
libsmbclient-devel-3.0.33-3.38.el5_8.i386をアンインストール
※上記に依存するファイルが多い
gnome-vfs2-smb-2.16.2-8.el5
mencoder-1.0-0.47.svn.20100803.el5.rf
mplayer-1.0-0.47.svn.20100803.el5.rf
mplayer-skins-1.8-1-nodist.rt
mplayer-tools-1.0-0.47.vn.20100803.el5.rf
mplayerplug-in03.55-1.el5.rf
nautilus-2.16.2-10.el5
nautilus-cd-burner-devel2.16.0-7.el5
nautilus-devel-2.16.2-10.el5

(5). 再度インストール
※競合しているパッケージをアンインストールしたら再度インストールを実施する。

[root@hoge i386]# rpm -Uvh samba-common-3.6.3-1.C58.i386.rpm samba-client-3.6.3-1.C58.i386.rpm samba-3.6.3-1.C58.i386.rpm samba-swat-3.6.3-1.C58.i386.rpm samba-debuginfo-3.6.3-1.C58.i386.rpm samba-doc-3.6.3-1.C58.i386.rpm
準備中...                ########################################### [100%]
   1:samba-common           ########################################### [ 17%]
   2:samba                  ########################################### [ 33%]
   3:samba-client           ########################################### [ 50%]
   4:samba-swat             ########################################### [ 67%]
   5:samba-debuginfo        ########################################### [ 83%]
   6:samba-doc              ########################################### [100%]
[root@hoge i386]# 

(6). libsmbclient、libsmbclient-develをインストール

※(4)で削除したが再度インストールを実施する。
トランザクション確認エラー:   file /usr/include/libsmbclient.h from install of libsmbclient-devel-3.0.33-3.38.el5_8.i386 conflicts with file from package samba-common-3.6.3-1.C58.i386
  file /usr/share/man/man7/libsmbclient.7.gz from install of libsmbclient-devel-3.0.33-3.38.el5_8.i386 conflicts with file from package samba-common-3.6.3-1.C58.i386
  file /usr/lib/libsmbclient.so.0 from install of libsmbclient-3.0.33-3.38.el5_8.i386 conflicts with file from package samba-common-3.6.3-1.C58.i386
上記のようなエラーになったので、インストールしないことにする。
どうやら 3.6.3 では、libsmbclient,libsmbclient-devel は必要ないのかも?

(7). (4)でlibsmbclientに依存していたために削除したパッケージをインストールする。

04:34:55 : Installed:
04:34:55 :  --> gnome-vfs2-smb-2.16.2-8.el5.i386
04:34:55 :  --> mencoder-1.0-0.47.svn20100703.el5.rf.i386
04:34:55 :  --> mplayer-1.0-0.47.svn20100703.el5.rf.i386
04:34:55 :  --> mplayer-skins-1.8-1.nodist.rf.noarch
04:34:55 :  --> mplayer-tools-1.0-0.47.svn20100703.el5.rf.i386
04:34:55 :  --> mplayerplug-in-3.55-1.el5.rf.i386
04:34:55 :  --> nautilus-2.16.2-10.el5.i386
04:34:55 :  --> nautilus-cd-burner-devel-2.16.0-7.el5.i386
04:34:55 :  --> nautilus-devel-2.16.2-10.el5.i386

2012年3月27日火曜日

マルチパートzipの解凍について

マルチパートZIPを解凍する機会があったので明記する。

[hoge@hoge ~]$ ls *.z??
Abcdefghij.z01
Abcdefghij.z02
Abcdefghij.z03
Abcdefghij.z04
Abcdefghij.z05
Abcdefghij.z06
Abcdefghij.z07
Abcdefghij.z08
Abcdefghij.z09
Abcdefghij.zip
[hoge@hoge ~]$ cat *.z?? > avi_cat.zip
できあがったcat.zipを解凍する。
ファイルを上記の順にcatできていることがポイント? かな?

HTMLタグの忘れがちが規則(その1)

P要素には、インライン要素と文字しか入れることが出来ない。

この事を忘れてしまい、ついつい<p></p>を入れ子にしていて思ったように表示されず「なぜだ..(?_?)」となってしまう。

2012年3月26日月曜日

VNCサーバーの再設定

CENTOS上でいろいろなソフトの設定を行っていたら、いつのまにかクライアントPCからCENTOSマシンへのVNCでの接続が出来なくなっていた。

[root@hoge ~]# service vncserver status
Xvnc は停止しています
[root@hoge ~]# service vncserver start
VNC サーバー を起動中: no displays configured              [  OK  ]
[root@hoge ~]# service vncserver status
Xvnc は停止しています
「サービスの設定」で確認してみてもやはり停止している。
しかし、特に設定を変更した訳ではないので今までと同じような感じもするが...
とりあえず、設定を見直し確認することにする。

VNCをxinetd経由で動作させる設定 

改めて設定方法を順に確認していく。
※vnc-serverが既にインストール済み

[root@hoge ~]# yum install vnc-server
xinetdの設定を行う。

/etc/xinetd.d/下に起動ファイルを作る
/etc/xined.d/vncserver

service vnc
{
   socket_type     = stream
   wait            = no
   user            = nobody
   server          = /usr/bin/Xvnc
   server_args     = -inetd -query localhost -once -geometry 1024x640 -depth 16 -SecurityTypes None
   log_on_failure  += USERID
   disable         = no
}
xinetdで待ち受けるポート番号を指定する。

/etc/servicesを編集する

# Local services
vnc             5901/tcp                        # VNC SERVER
XDM認証を有効にする。

/etc/gdm/custom.confを編集します。
[xdmcp]セクションに「Enable=true」を追加します。

[daemon]
RemoteGreeter=/usr/libexec/gdmgreeter

[security]

[xdmcp]
Enable=true

[gui]

[greeter]
DefaultRemoteWelcome=false

[chooser]

[debug]

GnomeデスクトップのGUI画面からだと「システム」→「管理」→「ログイン画面」

ここで設定した内容が/etc/gdm/custom.confと同一。

コマンドからGDM(GnomeDisplayManager)を再起動します。

# kill -HUP `cat /var/run/gdm.pid`

 ↓(下記と同意)

# cat /var/run/gdm.pid
 3350
# kill -HUP 3350

コマンド実行後、数秒するとGDMが再起動します。
※gdmの再起動なので、当然ながら現状のgdmの画面が消失します。(数秒後にログイン画面が表示されます。)

VNCの接続を許可する範囲を設定

/etc/hosts.allow で接続を許可するネットワークを指定する。

#
# hosts.allow   This file describes the names of the hosts which are
#               allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
Xvnc: 127.0.0.1 192.168.1. 192.168.2.
再起動を行い、設定を確認する。

設定変更を行ったので、各デーモンを再起動する。

[root@hoge etc]# service xinetd restart
xinetd を停止中:                                           [  OK  ]
xinetd を起動中:                                           [  OK  ]
[root@hoge etc]# service vncserver restart
VNC サーバー を停止中:                                     [  OK  ]
VNC サーバー を起動中: no displays configured              [  OK  ]

許可されるマシンからリモート接続を実施して確認する。

上記のようにリモート接続確認をする。

2012年3月25日日曜日

GnuPGのコマンド

署名の認証以外ではほとんど使用することはないが、いざという時に備えメモする。

キーサインについてより詳細に理解するには、キーサインパーティに参加するのもよいかも!

鍵の作成とキーサーバへの公開鍵のアップロード。

[hoge@hoge ~]$ gpg --gen-key
[hoge@hoge ~]$ gpg --keyserver pgp.mit.edu --send-keys 鍵のID
鍵の一覧を表示。
[hoge@hoge ~]$ gpg --list-keys
公開鍵のインポート
[hoge@hoge ~]$ gpg --keyserver pgp.mit.edu --recv-keys 鍵のID
公開鍵と秘密鍵をファイルにエクスポート。
[hoge@hoge ~]$ gpg -a --export 鍵のID > pubkey.asc
[hoge@hoge ~]$ gpg -a --export-secret-key 鍵のID > seckey.asc
エクスポートしたファイルからインポートする場合はこんな感じ。
[hoge@hoge ~]$ gpg --import ファイル名
秘密鍵と公開鍵を削除。
[hoge@hoge ~]$ gpg --delete-secret-keys 鍵のID
[hoge@hoge ~]$ gpg --delete-keys 鍵のID
キーサーバーに登録した鍵の削除
[hoge@hoge ~]$ gpg --output revoke.asc --gen-revoke 鍵のID
[hoge@hoge ~]$ gpg --import revoke.asc
[hoge@hoge ~]$ gpg --keyserver pgp.mit.edu --send-keys 鍵のID

主な鍵サーバ一覧

http://pgp.nic.ad.jp/
http://pgp.mit.edu/
※参照サイト
http://d.hatena.ne.jp/takezoe/20100212/p2
http://sites.google.com/site/kspjapanese/create-gpgkey
http://asaasa.tk/wiki/?Zaurus/Apps/GnuPG/Options

2012年3月24日土曜日

PGP署名の確認

パッケージをダウンロードした時に、ダウンロードしてパッケージが改竄などされていないかを確認するためにPGP署名の確認をする。
talloc-2.0.7のパッケージをダウンロードした時の対応を明記します。
ftp://samba.org/pub/ から下記をダウンロードします。

talloc-2.0.7.tar.gz
talloc-2.0.7.tar.asc
ダウンロードした talloc-2.0.7.tar.gz を解凍する。
解凍後にPGP署名をチェックする。
[user@hoge ~]$ gunzip samba-3.0.37.tar.gz
[user@hoge ~]$ gpg --verify talloc-2.0.7.tar.asc
gpg: 2011年09月16日 16時39分36秒 JSTにRSA鍵ID 13084025で施された署名
gpg: 署名を検査できません: 公開鍵が見つかりません
[user@hoge ~]$ 
公開鍵をインポートします。
[user@hoge ~]$ gpg --keyserver pgp.mit.edu --recv-key 13084025
gpg: 鍵13084025をhkpからサーバーpgp.mit.eduに要求
gpg: 鍵13084025: 公開鍵“Samba Library Distribution Key ”を読み込みました
gpg: 絶対的に信用する鍵が見つかりません
gpg:     処理数の合計: 1
gpg:           読込み: 1  (RSA: 1)
[user@hoge ~]$ 
再度署名の認証を行います。
[user@hoge ~]$ gpg --verify talloc-2.0.7.tar.asc
gpg: 2011年09月16日 16時39分36秒 JSTにRSA鍵ID 13084025で施された署名
gpg: “Samba Library Distribution Key ”からの正しい署名
gpg: 警告: この鍵は信用できる署名で証明されていません!
gpg:       この署名が所有者のものかどうかの検証手段がありません。
主鍵の指紋: 9147 A339 7195 18EE 9011  BCB5 4793 9161 1308 4025
[user@hoge ~]$ 
警告が表示されていますが、正しい署名であると認証されました。

鍵の削除について

鍵の削除は簡単に行えます。
下記のコマンドで鍵を削除できます。

gpg --delete-key [検索語句]

例:
gpg --delete-key Hoge
gpg --delete-key hogehoge@example.com
検索語句には、鍵ID、ユーザーID、ユーザー名、コメント、メールアドレスやその一部が利用できます。
今回の talloc で試したのが下記の通りです。
※メールアドレスで指定してみました。
[user@hoge ~]$ gpg --delete-key samba-bugs@samba.org
gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.


pub  2048R/13084025 2011-01-12 Samba Library Distribution Key 

この鍵を鍵輪から削除しますか? (y/N) y

上記で鍵が削除されました。

2012年3月22日木曜日

freshclamがエラー

またもや、起動時に下記のエラーが出力されていた。
何度も発生しているのですが、面倒だったのでパッケージを再インストールで面倒を逃れていたが、そろそろ対応しないと...

LibClamAV Warning: **************************************************
LibClamAV Warning: ***  The virus database is older than 7 days.  ***
LibClamAV Warning: ***        Please update it IMMEDIATELY!       ***
LibClamAV Warning: **************************************************

とりあえず、今までも何度か試した事がある方法を記録(実施)します。
ウィルスDBが古いというので、お決まりの freshclma を実行する。
[root@hoge ~]# freshclam
ERROR: Can't open /var/log/clamav/freshclam.log in append mode (check permissions!).
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
ログが追加できない? ログファイルを確認してみる
[root@hoge clamav]# ls -il
合計 352
360450 -rw-r--r-- 1 clamav clamav 29524  3月 22 03:52 clamd.log
360460 -rw-r--r-- 1 clam   clam   48441  3月 17 04:32 clamd.log.1
360458 -rw-r--r-- 1 clam   clam   63309  3月 11 14:17 clamd.log.2
360456 -rw-r--r-- 1 clam   clam   60929  3月  4 05:35 clamd.log.3
360454 -rw-r--r-- 1 clam   clam   63473  2月 26 04:02 clamd.log.4
360452 -rw-r--r-- 1 clamav clamav     0  3月 18 09:47 freshclam.log
360451 -rw-r--r-- 1 clam   clam    5922  3月 18 09:47 freshclam.log.1
360459 -rw-r--r-- 1 clam   clam    6134  3月 11 14:17 freshclam.log.2
360457 -rw-r--r-- 1 clam   clam    6791  3月  4 05:35 freshclam.log.3
360455 -rw-r--r-- 1 clam   clam    5754  2月 26 04:02 freshclam.log.4
[root@hoge clamav]# 
ログがアーカイブされるとユーザーが clamav から clam に変わっている。なんでなの?

ログアーカイブファイルのオーナーとグループを clamav に変更して freshclam を実行してみる。

[root@hoge clamav]# chown clamav:clamav *
[root@hoge clamav]# ls -il
合計 352
360450 -rw-r--r-- 1 clamav clamav 29524  3月 22 03:52 clamd.log
360460 -rw-r--r-- 1 clamav clamav 48441  3月 17 04:32 clamd.log.1
360458 -rw-r--r-- 1 clamav clamav 63309  3月 11 14:17 clamd.log.2
360456 -rw-r--r-- 1 clamav clamav 60929  3月  4 05:35 clamd.log.3
360454 -rw-r--r-- 1 clamav clamav 63473  2月 26 04:02 clamd.log.4
360452 -rw-r--r-- 1 clamav clamav     0  3月 18 09:47 freshclam.log
360451 -rw-r--r-- 1 clamav clamav  5922  3月 18 09:47 freshclam.log.1
360459 -rw-r--r-- 1 clamav clamav  6134  3月 11 14:17 freshclam.log.2
360457 -rw-r--r-- 1 clamav clamav  6791  3月  4 05:35 freshclam.log.3
360455 -rw-r--r-- 1 clamav clamav  5754  2月 26 04:02 freshclam.log.4
[root@hoge ~]# freshclam
ERROR: Can't open /var/log/clamav/freshclam.log in append mode (check permissions!).
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
次に、ログをすべて削除してから freshclam を実行する。
[root@ora02 clamav]# rm -f *
[root@ora02 clamav]# ls
[root@ora02 ~]# freshclam
ClamAV update process started at Thu Mar 22 04:48:54 2012
main.cvd is up to date (version: 54, sigs: 1044387, f-level: 60, builder: sven)
Downloading daily-14651.cdiff [100%]
Downloading daily-14652.cdiff [100%]
Downloading daily-14653.cdiff [100%]
Downloading daily-14654.cdiff [100%]
Downloading daily-14655.cdiff [100%]
Downloading daily-14656.cdiff [100%]
Downloading daily-14657.cdiff [100%]
Downloading daily-14658.cdiff [100%]
Downloading daily-14659.cdiff [100%]
Downloading daily-14660.cdiff [100%]
Downloading daily-14661.cdiff [100%]
Downloading daily-14662.cdiff [100%]
Downloading daily-14663.cdiff [100%]
Downloading daily-14664.cdiff [100%]
Downloading daily-14665.cdiff [100%]
Downloading daily-14666.cdiff [100%]
Downloading daily-14667.cdiff [100%]
Downloading daily-14668.cdiff [100%]
Downloading daily-14669.cdiff [100%]
Downloading daily-14670.cdiff [100%]
Downloading daily-14671.cdiff [100%]
Downloading daily-14672.cdiff [100%]
Downloading daily-14673.cdiff [100%]
Downloading daily-14674.cdiff [100%]
Downloading daily-14675.cdiff [100%]
Downloading daily-14676.cdiff [100%]
Downloading daily-14677.cdiff [100%]
Downloading daily-14678.cdiff [100%]
Downloading daily-14679.cdiff [100%]
Downloading daily-14680.cdiff [100%]
Downloading daily-14681.cdiff [100%]
Downloading daily-14682.cdiff [100%]
daily.cld updated (version: 14682, sigs: 134958, f-level: 63, builder: jesler)
Downloading bytecode-145.cdiff [100%]
Downloading bytecode-146.cdiff [100%]
Downloading bytecode-147.cdiff [100%]
Downloading bytecode-148.cdiff [100%]
Downloading bytecode-149.cdiff [100%]
Downloading bytecode-150.cdiff [100%]
Downloading bytecode-151.cdiff [100%]
Downloading bytecode-152.cdiff [100%]
Downloading bytecode-153.cdiff [100%]
Downloading bytecode-154.cdiff [100%]
Downloading bytecode-155.cdiff [100%]
Downloading bytecode-156.cdiff [100%]
Downloading bytecode-157.cdiff [100%]
Downloading bytecode-158.cdiff [100%]
Downloading bytecode-159.cdiff [100%]
Downloading bytecode-160.cdiff [100%]
Downloading bytecode-161.cdiff [100%]
Downloading bytecode-162.cdiff [100%]
Downloading bytecode-163.cdiff [100%]
Downloading bytecode-164.cdiff [100%]
Downloading bytecode-165.cdiff [100%]
Downloading bytecode-166.cdiff [100%]
Downloading bytecode-167.cdiff [100%]
Downloading bytecode-168.cdiff [100%]
bytecode.cld updated (version: 168, sigs: 38, f-level: 63, builder: edwin)
Database updated (1179383 signatures) from db.jp.clamav.net (IP: 203.178.137.175)
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.sock
connect(): No such file or directory
[root@ora02 ~]# freshclam
ClamAV update process started at Thu Mar 22 04:53:37 2012
main.cvd is up to date (version: 54, sigs: 1044387, f-level: 60, builder: sven)
daily.cld is up to date (version: 14682, sigs: 134958, f-level: 63, builder: jesler)
bytecode.cld is up to date (version: 168, sigs: 38, f-level: 63, builder: edwin)
[root@hoge ~]# 

2012年3月19日月曜日

LinuxのFirefoxでFlashプラグインが使えなくなった時の対応

FirefoxやFlashを更新するとLinuxのFirefoxでFlashプレイヤーが使えなくなる。 どうやら、プラグインの設定が無効化されてしまっているためのようだ。以前にも似たような現象で更新を行ったrootユーザーでは問題なくFlashプラグインが動作するが、他のユーザーではFlashプラグインが使えないということがあった。

今回の現象は、以前とは異なりFirefoxのプラグインの設定ファイルである pluginreg.dat でflashの情報が[INVALID]に記載されていた。

mplayerplug-in-dvx.so:$
/usr/lib/mozilla/plugins/mplayerplug-in-dvx.so:$
:$
1215114783000:1:5:$
mplayerplug-in 3.55

Video Player Plug-in for QuickTime, RealPlayer and Windows Media Player streams using MPlayer
JavaScript Enabled and Using GTK2 Widgets
:$ DivX Browser Plug-In:$ 2 0:video/divx:DivX Media Format:divx:$ 1:video/vnd.divx:DivX Media Format:divx:$ [INVALID] /usr/lib/flash-plugin/libflashplayer.so:$ 1330401423000:$

[INVALID]とその上の空行を削除してからFireFoxを起動するとFlashプラグインが利用できるようになる。各ユーザ毎にこの作業を実施する。 変更後のpluginreg.dat

mplayerplug-in-dvx.so:$
/usr/lib/mozilla/plugins/mplayerplug-in-dvx.so:$
:$
1215114783000:1:5:$
mplayerplug-in 3.55

Video Player Plug-in for QuickTime, RealPlayer and Windows Media Player streams using MPlayer
JavaScript Enabled and Using GTK2 Widgets
:$ DivX Browser Plug-In:$ 2 0:video/divx:DivX Media Format:divx:$ 1:video/vnd.divx:DivX Media Format:divx:$ /usr/lib/flash-plugin/libflashplayer.so:$ 1330401423000:$
しかし、いつもながら手間を掛けさせてくれますね。(←_←)

2012年3月17日土曜日

RPMパッケージの命名規則

(パッケージ名)-(バージョン)-(リリース番号).(アーキテクチャ).rpm
項目名意味
パッケージ名ソフトウェア名の事です。httpd,postgresql,opensslとか。
バージョンそのソフトウェアのバージョン。
リリース番号そのソフトウェアのそのバージョンの管理番号。公開順。
アーキテクチャ コンパイルしたマシンのアーキテクチャ名。同じソフトウェアの同じバージョンでもココを自分のサーバと同じものを選ばないとインストールできない時があります。
アーキテクチャで表示される内容についての解説。
アーキテクチャ名備考
i386i386およびその互換CPU。
i486そのソフトウェアのバージョン。
i586
i686Pentium Pro、Pentium II、Pentium III、Pentium4、Celeronなど。
k6K6、K6-2、K6-III。
athlonAthlon、Athlon MP、Athlon XP。
x86_64Opteron、Athlon64、Xeon(EM64T)。
srcソースパッケージ。自分で rpm パッケージを作ったりする際(rebuild)に必要。
noarch機種(CPU)に依存しないパッケージ。
ppcPower PC。
alphaalphaチップ搭載コンピュータ。
sparcSUN SPARC。
マシン情報を確認するには...
引数説明
-m, --machineマシン (ハードウェア) のタイプを表示する。
-n, --nodenameマシンのネットワークノードのホスト名を表示する。
-r, --releaseOS のリリースを表示する。
-s, --sysnameOS の名称を表示する。
-vOS のバージョンを表示する。
-a, --all以上の情報すべてを表示する。
--help標準出力に使用方法のメッセージを出力して正常終了する。
--version標準出力に「 uname 」コマンドのバージョン情報を出力して正常終了する。
[hoge@localhost ~]$ uname -a
Linux localhost 2.6.18-308.1.1.el5xen #1 SMP Wed Mar 7 05:38:01 EST 2012 i686 i686 i386 GNU/Linux

2012年3月15日木曜日

Windows共有フォルダをマウントする

Windows 共有フォルダーを起動時にマウントする。
※fstabに下記のように記載する。

//マウント相手のIPアドレス/マウントしたいフォルダ名 /mnt/samba/ smbfs username=相手先のユーザー名(sambaユーザ名),password=相手先ユーザーのパスワード,gid=相手先ユーザーのグループID,uid=相手先ユーザーのユーザーID,codepage=cp932,iocharset=utf8,rw,defaults 0 0
※username と password は,マウント先が,Windowsの場合は「Windowsのログインユーザ」,マウント先がLinuxの時は「Sambaのユーザ」のものです。

※接続先がLinuxで,UTF8の場合は,「codepage=cp932,iocharset=utf8,」不要です。

【接続先がWindows】
//192.168.0.5/share /mnt/samba/ smbfs username=winuser,password=hoge,codepage=cp932,iocharset=utf8,rw,defaults 0 0
【接続先がLinux】
//192.168.0.5/share /mnt/samba/ smbfs username=smbuser,password=hoge,uid=1000,gid=1000,rw,defaults 0 0
mountコマンドでマウントする。
mount -t cifs -o user=******,password=****** //example.com/backup /mnt/backup

ソースRPMパッケージからバイナリRPMパッケージを作成

RPMパッケージには、コンパイル前のソースコードが格納されているソースRPMパッケージと、アーキテクチャごとにコンパイル済みで、インストール後すぐに利用できるバイナリRPMパッケージがあります。

ソースRPMパッケージのファイル名は「~.src.rpm」となっています。
バイナリRPMパッケージのファイル名は「~.i686.rpm」「~.x86_64.rpm」のように、アーキテクチャを表す表記が含まれる。

ソースパッケージからバイナリパッケージの作成方法。
treeパッケージで実施してみる。
下記のようなフォルダ構成を作成して、SOURCEフォルダに取得したソースRPMパッケージを配置します。

.
├─ BUILD
├─ BUILDROOT
├─ RPMS
├─ SOURCES
│  └─ tree-1.6.0-4.fc17.src.rpm
├─ SPECS
└─ SRPMS
次に rpmbuild --rebuild コマンドを使ってソースRPMパッケージからバイナリRPMパッケージを作成します。すると、RPMS/<アーキテクチャ>ディレクトリ以下に、バイナリRPMパッケージが作成されます。
$ cd SOURCES
$ rpmbuild --rebuild tree-1.6.0-4.fc17.src.rpm

 (中略)

 $ ls ../RPMS/i686/ tree-1.6.0-4.el6.i686.rpm tree-debuginfo-1.6.0-4.el6.i686.rpm 
※RPMのビルドはrpmbuildコマンドが使用できなければなりません. rpmbuildはパッケージ「rpm-build」をインストールします。

CENTOS5にapt-getをインストールする。

apt-getでのパッケージインストールを取得するために、CENTOS5にapt-getをインストールする。

  1. apt-getをインストールする。
    [root@hoge ~]# yum -y install apt
    yum -y install apt
    [root@hoge ~]# yum -y install apt
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: ftp.riken.jp
     * extras: ftp.riken.jp
     * rpmforge: fr2.rpmfind.net
     * updates: ftp.riken.jp
    adobe-linux-i386                                         |  951 B     00:00     
    base                                                     | 1.1 kB     00:00     
    dag                                                      | 1.1 kB     00:00     
    extras                                                   | 2.1 kB     00:00     
    rpmforge                                                 | 1.1 kB     00:00     
    updates                                                  | 1.9 kB     00:00     
    Setting up Install Process
    Resolving Dependencies
    There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
    --> Running transaction check
    ---> Package apt.i386 0:0.5.15lorg3.94a-5.el5.rf set to be updated
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ================================================================================
     Package     Arch         Version                             Repository   Size
    ================================================================================
    Installing:
     apt         i386         0.5.15lorg3.94a-5.el5.rf            dag         2.8 M
    
    Transaction Summary
    ================================================================================
    Install       1 Package(s)
    Upgrade       0 Package(s)
    
    Total download size: 2.8 M
    Downloading Packages:
    apt-0.5.15lorg3.94a-5.el5.rf.i386.rpm                    | 2.8 MB     00:04     
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     : apt                                                      1/1 
    
    Installed:
      apt.i386 0:0.5.15lorg3.94a-5.el5.rf                                           
    
    Complete!
    [root@hoge ~]# 
    
  2. apt-getを最新版に更新する
    [root@hoge ~]# apt-get update
    [root@hoge ~]# apt-get update
    取得:1 http://apt.sw.be redhat/el5/en/i386/rpmforge repomd.xml [1095B]
    1095B を 1s 秒で取得しました (729B/s)
    取得:1 http://apt.sw.be redhat/el5/en/i386/rpmforge/ primary.xml [4291kB]
    取得:2 http://apt.sw.be redhat/el5/en/i386/rpmforge/ filelists.xml [5083kB]    
    9374kB を 35s 秒で取得しました (267kB/s)                                       
    パッケージリストを読みこんでいます... 完了
    依存情報ツリーを作成しています... 完了        
    [root@hoge ~]# 
    

2012年3月8日木曜日

LDAPの初期化(再設定)

  1. ldap(slapd)を停止する。
  2. [root@hoge ~]# service ldap stop
    slapd を停止中:                        [ OK ]
    [root@hoge ~]#
    (レプリケーションの場合は、スレーブを先に停止させる。)

  3. slapd.conf等の必要編集を行う。slaptestも実施しておく

  4. ldapデータベースを物理的に削除する。
  5. /var/lib/ldap フォルダの中の DB_CONFIG 以外を削除する。
    ※こちらの設定では、/var/lib/ldap にldapデータベースが登録される設定のため。
      /etc/openldap/slapd.conf で指定

    [root@hoge ldap]# ls -il
    合計 1208
    131133 -rw-r----- 1 root root      921  1月 24 08:14 DB_CONFIG
    131116 -rw------- 1 ldap ldap    24576  3月  7 10:21 __db.001
    131117 -rw------- 1 ldap ldap   278528  3月  7 10:21 __db.002
    131118 -rw------- 1 ldap ldap   270336  3月  7 10:21 __db.003
    131119 -rw------- 1 ldap ldap    98304  3月  7 10:21 __db.004
    131120 -rw------- 1 ldap ldap   352256  3月  7 10:21 __db.005
    131121 -rw------- 1 ldap ldap    24576  3月  7 10:21 __db.006
    131082 -rw-r--r-- 1 ldap ldap     4096  3月  7 10:21 alock
    131126 -rw------- 1 ldap ldap     8192  1月 28 20:48 cn.bdb
    131124 -rw------- 1 ldap ldap     8192  1月 28 20:48 dn2id.bdb
    131132 -rw------- 1 ldap ldap     8192  1月 28 20:48 gidNumber.bdb
    131123 -rw------- 1 ldap ldap    32768  1月 31 20:54 id2entry.bdb
    131122 -rw------- 1 ldap ldap 10485760  3月  7 10:21 log.0000000001
    131130 -rw------- 1 ldap ldap     8192  1月 22 20:00 loginShell.bdb
    131129 -rw------- 1 ldap ldap     8192  1月 28 20:48 memberUid.bdb
    131125 -rw------- 1 ldap ldap     8192  1月 28 20:48 objectClass.bdb
    131127 -rw------- 1 ldap ldap     8192  1月 24 21:44 ou.bdb
    131128 -rw------- 1 ldap ldap     8192  1月 22 20:00 uid.bdb
    131131 -rw------- 1 ldap ldap     8192  1月 22 20:00 uidNumber.bdb
    
    削除後の内容
    [root@hoge ldap]# ls -il
    合計 8
    131133 -rw-r----- 1 root root 921  1月 24 08:14 DB_CONFIG
    [root@hoge ldap]# 
    

  6. ldap(slapd)を起動する。
  7. [root@hoge ~]# service ldap start
    slapd の設定ファイルをチェック中:  config file testing succeeded
                                                           [  OK  ]
    slapd を起動中:                                            [  OK  ]
    [root@hoge ~]# 
    
  8. 初期情報を登録
  9. 基本データ(base.ldif)
    dn: dc=example,dc=com
    objectClass: dcObject
    objectClass: organization
    dc: example
    o: example
    
    dn: ou=People,dc=example,dc=com
    objectClass: organizationalUnit
    ou: People
    
    dn: ou=Group,dc=example,dc=com
    objectClass: organizationalUnit
    ou: Group
    
    dn: ou=Hosts,dc=example,dc=com
    objectClass: organizationalUnit
    ou: Hosts
    ldapaddコマンドでLDIFファイルの内容を登録します。
    
    # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f base.ldif 
    Enter LDAP Password:
    adding new entry "dc=horisawa,dc=info"
    
    adding new entry "cn=Manager,dc=horisawa,dc=info"
    
    adding new entry "ou=People,dc=horisawa,dc=info"
    
    adding new entry "ou=Group,dc=horisawa,dc=info"
    
    adding new entry "ou=Hosts,dc=horisawa,dc=info"
    
    
    ユーザ/グループの登録(既存unixアカウントをそのまま移行する)
    • /etc/passwdのアカウントをLDAPへ登録する。
    • /etc/passwdから一般ユーザのみを抽出するようuidが500番台を抽出。
      [root@hoge openldap]# grep :5[0-9][0-9] /etc/passwd > users-list.txt
      
      /migrate_passwd.pl を利用してLDIFファイルを作成。
      [root@hoge openldap]# /usr/share/openldap/migration/migrate_passwd.pl users-list.txt > users.ldif
      
      ldapaddコマンドでLDIFファイルの内容を登録します。
      
      # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f user.ldif 
      Enter LDAP Password:
      adding new entry "uid=hoge01,ou=People,dc=example,dc=com"
      
      adding new entry "uid=hoge02,ou=People,dc=example,dc=com"
      
      
    • /etc/groupのグループをLDAPへ登録する
    • /etc/groupから一般グループのみを抽出するようgidが500番台を抽出。
      [root@hoge openldap]# grep :5[0-9][0-9] /etc/group > groups-list.txt
      
      /migrate_passwd.pl を利用してLDIFファイルを作成。
      [root@hoge openldap]# /usr/share/openldap/migration/migrate_group.pl groups-list.txt > groups.ldif
      
      ldapaddコマンドでLDIFファイルの内容を登録します。
      
      # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f user.ldif 
      Enter LDAP Password:
      adding new entry "cn=hoge01,ou=Group,dc=example,dc=com"
      
      adding new entry "cn=hoge02,ou=Group,dc=example,dc=com"
      
      adding new entry "cn=hoge03,ou=Group,dc=example,dc=com"
      
      adding new entry "cn=hoge04,ou=Group,dc=example,dc=com"
      
      

smbldap-toolsを利用して登録を行う。

基本データ(base.ldif)を登録した後に、smbldap-toolsを利用してユーザ・グループおよび管理者情報の登録を行う。
事前にsambaが正しく設定されているものとして下記にコマンドを実行する。

基本データ(base.ldif)の登録
[root@hoge ldif]# ldapadd -x -D "cn=Manager,dc=horisawa,dc=info" -W -f base.ldif
Enter LDAP Password: 
adding new entry "dc=horisawa,dc=info"

adding new entry "cn=Manager,dc=example,dc=com"

adding new entry "ou=Users,dc=example,dc=com"

adding new entry "ou=Groups,dc=example,dc=com"

adding new entry "ou=Computers,dc=example,dc=com"

[root@hoge ldif]# 

グループ(groups.ldif)の登録
[root@hoge ldif]# ldapadd -x -D "cn=Manager,dc=horisawa,dc=info" -W -f groups.ldif

ユーザー(users.ldif)の登録
[root@hoge ldif]# ldapadd -x -D "cn=Manager,dc=horisawa,dc=info" -W -f users.ldif
smbldap-toolsでデータを登録する。
[root@hoge ~]# smbldap-populate -a Administrator -b Guest
Populating LDAP directory for domain EXAMPLE (S-1-5-21-2725434548-1602857623-2035637331)
(using builtin directory structure)

entry dc=example,dc=com already exist. 
entry ou=Users,dc=example,dc=com already exist. 
entry ou=Groups,dc=example,dc=com already exist. 
entry ou=Computers,dc=example,dc=com already exist. 
adding new entry: ou=Idmap,dc=example,dc=com
adding new entry: uid=Administrator,ou=Users,dc=example,dc=com
adding new entry: uid=Guest,ou=Users,dc=example,dc=com
adding new entry: cn=Domain Admins,ou=Groups,dc=example,dc=com
adding new entry: cn=Domain Users,ou=Groups,dc=example,dc=com
adding new entry: cn=Domain Guests,ou=Groups,dc=example,dc=com
adding new entry: cn=Domain Computers,ou=Groups,dc=example,dc=com
adding new entry: cn=Administrators,ou=Groups,dc=example,dc=com
adding new entry: cn=Account Operators,ou=Groups,dc=example,dc=com
adding new entry: cn=Print Operators,ou=Groups,dc=example,dc=com
adding new entry: cn=Backup Operators,ou=Groups,dc=example,dc=com
adding new entry: cn=Replicators,ou=Groups,dc=example,dc=com
adding new entry: sambaDomainName=example,dc=example,dc=com

Please provide a password for the domain Administrator: 
Changing UNIX and samba passwords for Administrator
New password: 
Retype new password: 
[root@hoge ~]# 

初期データ投入がうまくいったら、ドメイン管理者アカウント(Administrator)のパスワードを設定する。PDCマシン上でrootになり、以下を1度だけ実行すればよい。

[root@hoge ~]# smbldap-passwd Administrator
Changing UNIX and samba passwords for Administrator
New password: 
Retype new password: 
[root@hoge ~]# 

一般ユーザーを追加する。

[root@hoge samba]# smbldap-passwd testuser
Changing UNIX password for testuser
New password: 
Retype new password: 
[root@hoge samba]# 

SASL認証設定ファイル編集

smbldap-useraddで追加したユーザがSMTP-Authが行えるようにする

# vi /etc/sysconfig/saslauthd
MECH=shadow
↓
MECH=pam
確認事項およびエラー等の注意事項

ログを確認したら下記のようにエラーが発生していた。(/var/log/samba/log.smbd)

[2012/04/26 18:41:59.611756,  2] lib/smbldap.c:1018(smbldap_open_connection)
  smbldap_open_connection: connection opened
[2012/04/26 18:41:59.611978,  0] passdb/secrets.c:350(fetch_ldap_pw)
  fetch_ldap_pw: neither ldap secret retrieved!
[2012/04/26 18:41:59.612175,  0] lib/smbldap.c:1180(smbldap_connect_system)
  ldap_connect_system: Failed to retrieve password from secrets.tdb
[2012/04/26 18:41:59.612359,  1] lib/smbldap.c:1409(another_ldap_try)
  Connection to LDAP server failed for the 5 try!
[root@ora02 samba]# 

というエラーが出されていました.secrets.tdb はそれぞれのローカルマシンで作成されるもので,そこに,LDAP のパスワードを登録しないと LDAP サーバにて認証が通りません.そこで,secrets.tdb に LDAP の管理者パスワードを登録する必要があります.次のコマンドを実行します.

[root@hoge ~]# smbpasswd -W
Setting stored password for "cn=Administrator,ou=Users,dc=example,dc=com" in secrets.tdb
New SMB password:        (LDAPの管理用パスワードを入力)
Retype new SMB password: (LDAPの管理用パスワードをもう一度入力)
[root@hoge ~]# 
今回の設定で関連するファイルは下記の通りです。
・/etc/openldap/slapd.conf (ldapの基本設定)
・/etc/openldap/ldif/base.ldif (作成した基本情報)
・/etc/samba/smb.conf (sambaの基本設定)
・/etc/smbldap-tools/smbldap.conf (変換を行うための基本情報が設定)
・/etc/smbldap-tools/smbldap_bind.conf (masterDNとmasterPwを設定)

2012年3月7日水曜日

Adobe Flash Playerが更新されると手間が...

いつからなのか、CentOSでAdobe Flash Playerが自動更新されるとrootユーザー以外のfirefoxでAdobe Flash Playerプラグインが利用できなくなるという現象がが発生する。参るよね。(ーー;)

root以外のユーザーでもAdobe Flash Playerのプラグインが使用できるように、rootユーザーの設定情報を確認して同じ内容に変更する。(面倒だな。)

■ rootユーザーのfirefox プラグイン設定を確認する

[root@hogehode ~]# cd .mozilla/firefox
[root@ora02 firefox]# ls
Crash Reports abcd98yz.default profiles.ini
※プラグインの設定ファイルが格納されているフォルダへ移動する
[root@ora02 firefox]# cd abcd98yz.default
[root@ora02 abcd98yz.default]# # cat pluginreg.dat
Generated File. Do not edit.

[HEADER]
Version:0.15:$
Arch:x86-gcc3:$

[PLUGINS]
libflashplayer.so:$
/usr/lib/flash-plugin/libflashplayer.so:$
:$
1330401424000:1:1:$
Shockwave Flash 11.1 r102:$
Shockwave Flash:$
2 0:application/x-shockwave-flash:Shockwave Flash:swf:$
1:application/futuresplash:FutureSplash Player:spl:$

[INVALID]


[PLUGINS]の内容をそれぞれのユーザー(一般ユーザー)のfirefoxの設定フォルダの上記の値を変更する。 私の場合は、それぞれのユーザー(一般ユーザー)の[PLUGINS]が空になっていたり、rootとは異なる内容(更新されない)になっていたが、rootユーザと同じ設定にしてログオンし直すと無事にAdobe Flash Playerのプラグインが使用できるようになった。