SSブログ

CentOS 6.8の不具合への対応 [CentOS]

下記の CentOS 6.8 の不具合への対応を行った。

http://dan-project.blog.so-net.ne.jp/2016-05-27-1

1. ノード名を付けて指定したディスプレイをオープンできない件

1-1. 発生事象


ノード名を付けて指定したディスプレイをオープンできない。

・localhost:0、`hostname`:0、`hostname -i`:0 の指定時に発生する。
・Xt error: Can't open display と出力される。


1-2. 対処方法


下記のパッケージを CentOS 6.7 のパッケージにバージョンダウンする。

(1) 該当する CentOS 6.8 のパッケージ

xorg-x11-drv-acecad-1.5.0-8.el6.i686
xorg-x11-drv-aiptek-1.4.1-6.el6.i686
xorg-x11-drv-apm-1.2.5-11.el6.i686
xorg-x11-drv-ast-1.1.5-1.el6.i686
xorg-x11-drv-ati-7.6.1-2.el6.i686
xorg-x11-drv-ati-firmware-7.6.1-2.el6.noarch
xorg-x11-drv-cirrus-1.5.3-1.el6.i686
xorg-x11-drv-dummy-0.3.6-16.el6.i686
xorg-x11-drv-elographics-1.4.1-4.el6.i686
xorg-x11-drv-evdev-2.9.2-1.el6.i686
xorg-x11-drv-fbdev-0.4.3-17.el6.i686
xorg-x11-drv-fpit-1.4.0-7.el6.i686
xorg-x11-drv-geode-2.11.17-1.el6.i686
xorg-x11-drv-glint-1.2.8-11.el6.i686
xorg-x11-drv-hyperpen-1.4.1-6.el6.i686
xorg-x11-drv-i128-1.3.6-11.el6.i686
xorg-x11-drv-i740-1.3.4-12.el6.i686
xorg-x11-drv-intel-2.99.917-0.4.20151111.el6.i686
xorg-x11-drv-keyboard-1.8.1-1.el6.i686
xorg-x11-drv-mach64-6.9.4-10.el6.i686
xorg-x11-drv-mga-1.6.3-9.el6.i686
xorg-x11-drv-mouse-1.9.1-1.el6.i686
xorg-x11-drv-mutouch-1.3.0-6.el6.i686
xorg-x11-drv-neomagic-1.2.9-1.el6.i686
xorg-x11-drv-nouveau-1.0.12-1.el6.i686
xorg-x11-drv-nv-2.1.20-6.el6.i686
xorg-x11-drv-openchrome-0.3.3-7.el6.i686
xorg-x11-drv-penmount-1.5.0-6.el6.i686
xorg-x11-drv-qxl-0.1.1-19.el6.i686
xorg-x11-drv-r128-6.10.0-1.el6.i686
xorg-x11-drv-rendition-4.2.6-1.el6.i686
xorg-x11-drv-s3virge-1.10.7-1.el6.i686
xorg-x11-drv-savage-2.3.7-3.el6.i686
xorg-x11-drv-siliconmotion-1.7.8-1.el6.i686
xorg-x11-drv-sis-0.10.8-1.el6.i686
xorg-x11-drv-sisusb-0.9.6-11.el6.i686
xorg-x11-drv-synaptics-1.8.3-1.el6.i686
xorg-x11-drv-tdfx-1.4.6-1.el6.i686
xorg-x11-drv-trident-1.3.6-11.el6.i686
xorg-x11-drv-v4l-0.2.0-37.el6.i686
xorg-x11-drv-vesa-2.3.4-1.el6.i686
xorg-x11-drv-vmmouse-13.1.0-1.el6.i686
xorg-x11-drv-vmware-13.1.0-2.el6.i686
xorg-x11-drv-void-1.4.1-1.el6.i686
xorg-x11-drv-voodoo-1.2.5-11.el6.i686
xorg-x11-drv-wacom-0.32.0-1.el6.i686
xorg-x11-drv-xgi-1.6.1-1.el6.i686
xorg-x11-server-Xorg-1.17.4-9.el6.centos.i686
xorg-x11-server-common-1.17.4-9.el6.centos.i686


(2) 使用した CentOS 6.7 のパッケージ

xorg-x11-drv-acecad-1.5.0-7.el6.i686.rpm
xorg-x11-drv-aiptek-1.4.1-5.el6.i686.rpm
xorg-x11-drv-apm-1.2.5-10.el6.i686.rpm
xorg-x11-drv-ast-0.98.0-1.el6.i686.rpm
xorg-x11-drv-ati-7.5.99-3.el6.i686.rpm
xorg-x11-drv-ati-firmware-7.5.99-3.el6.noarch.rpm
xorg-x11-drv-cirrus-1.5.2-2.el6.i686.rpm
xorg-x11-drv-dummy-0.3.6-15.el6.i686.rpm
xorg-x11-drv-elographics-1.4.1-3.el6.i686.rpm
xorg-x11-drv-evdev-2.8.2-4.el6.i686.rpm
xorg-x11-drv-fbdev-0.4.3-16.el6.i686.rpm
xorg-x11-drv-fpit-1.4.0-6.el6.i686.rpm
xorg-x11-drv-geode-2.11.15-1.el6.i686.rpm
xorg-x11-drv-glint-1.2.8-10.el6.i686.rpm
xorg-x11-drv-hyperpen-1.4.1-5.el6.i686.rpm
xorg-x11-drv-i128-1.3.6-10.el6.i686.rpm
xorg-x11-drv-i740-1.3.4-11.el6.i686.rpm
xorg-x11-drv-intel-2.99.911-8.el6.i686.rpm
xorg-x11-drv-keyboard-1.8.0-1.el6.i686.rpm
xorg-x11-drv-mach64-6.9.4-9.el6.i686.rpm
xorg-x11-drv-mga-1.6.3-6.el6.i686.rpm
xorg-x11-drv-modesetting-0.8.0-14.el6.i686.rpm    … (注1)
xorg-x11-drv-mouse-1.9.0-1.el6.i686.rpm
xorg-x11-drv-mutouch-1.3.0-5.el6.i686.rpm
xorg-x11-drv-neomagic-1.2.7-7.el6.i686.rpm
xorg-x11-drv-nouveau-1.0.10-1.el6.i686.rpm
xorg-x11-drv-nv-2.1.20-5.el6.i686.rpm
xorg-x11-drv-openchrome-0.3.3-6.el6.i686.rpm
xorg-x11-drv-penmount-1.5.0-5.el6.i686.rpm
xorg-x11-drv-qxl-0.1.1-17.el6.i686.rpm
xorg-x11-drv-r128-6.9.1-8.el6.i686.rpm
xorg-x11-drv-rendition-4.2.5-10.el6.i686.rpm
xorg-x11-drv-s3virge-1.10.6-10.el6.i686.rpm
xorg-x11-drv-savage-2.3.7-2.el6.i686.rpm
xorg-x11-drv-siliconmotion-1.7.7-9.el6.i686.rpm
xorg-x11-drv-sis-0.10.7-10.el6.i686.rpm
xorg-x11-drv-sisusb-0.9.6-10.el6.i686.rpm
xorg-x11-drv-synaptics-1.7.6-1.el6.i686.rpm
xorg-x11-drv-tdfx-1.4.5-10.el6.i686.rpm
xorg-x11-drv-trident-1.3.6-10.el6.i686.rpm
xorg-x11-drv-v4l-0.2.0-36.el6.i686.rpm
xorg-x11-drv-vesa-2.3.2-15.el6.i686.rpm
xorg-x11-drv-vmmouse-13.0.0-2.el6.i686.rpm
xorg-x11-drv-vmware-13.0.1-9.el6.i686.rpm
xorg-x11-drv-void-1.4.0-23.el6.i686.rpm
xorg-x11-drv-voodoo-1.2.5-10.el6.i686.rpm
xorg-x11-drv-wacom-0.23.0-4.el6.i686.rpm
xorg-x11-drv-xgi-1.6.0-20.20121114git.el6.i686.rpm
xorg-x11-glamor-0.6.0-5.20140506gitf78901e.el6.i686.rpm    … (注1)
xorg-x11-server-Xorg-1.15.0-36.el6.centos.i686.rpm
xorg-x11-server-common-1.15.0-36.el6.centos.i686.rpm

(注1) … 依存パッケージ


これにより、リモートノードで下記コマンドが正常に機能するようになる。
・rsh -n centos-68-node xterm -display `hostname`:0 &


2. rsh-server、telnet-server が正常に機能しない件


(1) rsh-server での発生事象についての補足


(a) 初回の実行では、ログイン直後に入力を受け付けなくなる。


しばらく経過した後に、ターミナルの Full Reset で入力可能となる。
ただし、プロンプトが表示されない。


(b) 2 回目以降は、ログインシェルを引数指定しないと、即座にクローズされる。


ログインしても、プロンプトが表示されない。
ただし、コマンドの実行は可能である。


(2) telnet-server での発生事象についての補足


(a) ログイン時のプロンプトが正しく表示されない。


・1 行目の 1 カラム目が表示されない。
・1 行目の改行が正しく実施されない。


(b) ログイン後の出力がおかしい。


・プロンプトが表示されない。
・入力がエコーされない。
・コマンドの実行はできるが、実行結果の 1 行目が正しく表示されない。
 (1 カラム目が表示されない、改行が正しく実施されない。)



ファイルの属性のコピー [Linux]

ファイルに関する処理で役立つかも知れない小ネタを紹介する。

1. ファイルのタイムスタンプのコピー
% touch -r rfile file [...]
または
% touch --reference=rfile file [...]


rfile: コピー元のファイル
file: コピー先のファイル


2. ファイルのオーナー情報のコピー
% chown --reference=rfile file [...]


rfile: コピー元のファイル
file: コピー先のファイル


3. ファイル・パーミションのコピー
% chmod --reference=rfile file [...]


rfile: コピー元のファイル
file: コピー先のファイル


4. その他


(1) ファイルのタイムスタンプ(最終更新時刻)での秒の表示

% ls -l [-d] --full[-time] file [...]
または
% stat -c "%n: %y" file [...]


ClamAV (Clam AntiVirus)への移行 [Linux]

1. 背景


これまで Linux 上でのウイルスチェックには、下記のフリー版を使用してきた。

・Avira AntiVir Personal (v2.1)
・BitDefender Antivirus Scanner for Unices

しかし、下記の理由から、もうすぐ使用できなくなる(いつまで使用できるかは不明)。

・Avira AntiVir Personal
 2016-06-30 をもって、Linux 版のサポートが終了となる。

・BitDefender Antivirus Scanner for Unices
 2016-02-02 付けで、今後はサポートされない旨の告知があった。
 また、2016-06-20 時点で、フリー・ライセンスの更新ページがなくなっている。
 (年次でのフリー・ライセンスの更新ができず、ウイルス情報を更新できなくなる。)

このため、ClamAV (Clam AntiVirus) への移行を行った。


2. 要件


・ウイルス情報の更新、ウイルスチェックは cron を使用して時刻指定で起動する。
 (また、必要な場合には、任意のタイミングで手動で起動する。)

・複数の Linux をマルチブートするため、ウイルス情報を共有する。
 (CentOS 6、CentOS 7、Debian 7、Debian 8 で共有する。)

・受信メールのウイルスチェックは、Procmail と ClamAV を組み合わせて実施する。
 (詳細は省略。また、ISP が当該機能を無料で提供する場合には、そちらを使用する。)


3. 前処理


ウイルス情報を共有するため、実行ユーザーの UID、GID を統一する。
設定例は、下記の通りである。

(1) CentOS 6 の場合

# grep clam /etc/group
clam:x:502:
# grep clam /etc/passwd
clam:x:131:502::/var/lib/clamav:/bin/false


(2) CentOS 7 の場合

# grep clam /etc/group
clamupdate:x:502:
# grep clam /etc/passwd
clamupdate:x:131:502::/var/lib/clamav:/sbin/nologin


(3) Debian 7、Debian 8 の場合

# grep clam /etc/group
clamav:x:502:
# grep clam /etc/passwd
clamav:x:131:502::/var/lib/clamav:/bin/false

4. インストール


(1) CentOS 6 の場合


EPEL リポジトリから下記のパッケージをインストールする。

clamav-0.99.1-1.el6.i686
clamav-db-0.99.1-1.el6.i686


(2) CentOS 7 の場合


EPEL リポジトリから下記のパッケージをインストールする。

clamav-0.99.1-1.el7.x86_64
clamav-data-0.99.1-1.el7.noarch
clamav-filesystem-0.99.1-1.el7.noarch
clamav-lib-0.99.1-1.el7.x86_64
clamav-update-0.99.1-1.el7.x86_64


(3) Debian 7、Debian 8 の場合


標準のリポジトリから下記のパッケージをインストールする。

clamav
clamav-base
clamav-freshclam
libclamav7


(補足)
Debian 7 では v0.99、Debian 8 では v0.99.2 がインストールされる。


5. 設定


(1) ウイルス情報の共有のための設定


・/var/lib/clamav/ を 共有ディレクトリに移動する。
・/var/lib/clamav を上記で移動したディレクトリへのシンボリック・リンクにする。


(2) ウイルス情報の更新のための設定


(a) 初期設定の無効化


実施する時刻を独自に設定するため、下記の初期設定を無効にする。

# CentOS 6 の場合
/etc/cron.daily/freshclam

# CentOS 7 の場合
/etc/cron.d/clamav-update

# Debian 7 の場合
/etc/init.d/clamav-freshclam の自動起動

# Debian 8 の場合
clamav-freshclam.service の自動起動


(b) cron への登録


freshclam を実行するためのエントリを追加する。


(3) ウイルスチェックのための設定


(a) cron への登録


clamscan を実行するためのエントリを追加する。


6. 備考


(1) ウイルス情報の取得のために接続するサーバー


下記のファイル内の DatabaseMirror で指定されている。

# CentOS 6、CentOS 7 の場合
/etc/freshclam.conf

# Debian 7、Debian 8 の場合
/etc/clamav/freshclam.conf

(補足)
初期値として指定されているサーバーには複数の IP アドレスが設定されている。
(nslookup の実行結果で確認できる。)
このため、DNS ラウンドロビンによるロードバランシングが行われる。


(2) ウイルス情報の取得時のワーニング


インストールされている ClamAV のバージョンが古い場合に表示される。
(動作上は問題ない。)

(例)
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.99 Recommended version: 0.99.2


また、--no-warnings の指定により、ワーニングの表示を無効化できる。



MewからFirefoxを起動する設定の変更 [Linux]

Mew でのメール参照において、メッセージ内の URL を Firefox のタブで表示する設定を行っており、特に問題なく使用できていた。
しかし、最近、選択する URL によっては、Firefox を起動できないという問題が発生するようになってしまった。そこで、左記問題への対応を行った。
詳細は、以下の通りである。

1. 発生事象


Mew のメール参照において、メッセージ内の URL の選択による Firefox の起動ができないことがある。

・問題を発生する URL とそうでない URL が存在する。
・選択した URL は、指定したスクリプトに正しく引き渡されている。
・上記スクリプトを手動で実行した場合には、問題は発生しない。
・ソフトウェアのバージョン: Mew 6.3/6.4/6.6、Firefox ESR 38.8.0/45.1.1

(1) 関係する設定 (~/.mew.el)

;; browse specified URL (with Firefox)
(setq browse-url-browser-function 'browse-url-firefox)
(setq browse-url-firefox-program "firefox-mew")
(define-key mew-message-mode-map "B" 'browse-url-at-point)
(define-key mew-message-mode-map [mouse-2] 'browse-url-at-mouse)


・firefox-mew は、URL($1の値) を指定して Firefox(スクリプト) を実行する。
・Firefox は、バージョン/オプションを指定して firefox コマンドを実行する。
・最終的には、下記のコマンドを実行する。
 exec /usr/local/firefox-<ver>/firefox -P www-<ver> -new-tab <url>


2. 対象方法


下記のいずれかの手順を実施する。


2-1. 対処方法-1


browse-url-firefox を browse-url-generic に変更する。
(今回は、こちらでの対応を行った。)

[変更前]
(setq browse-url-browser-function 'browse-url-firefox)
(setq browse-url-firefox-program "firefox-mew")

[変更後]
(setq browse-url-browser-function 'browse-url-generic)
(setq browse-url-generic-program "firefox-mew")

2-2. 対処方法-2


firefox-mew から直接 firefox コマンドを実行するように変更する。


[追記]


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。