aptコマンドのハイライト表示の無効化 [Debian]
OS: Debian 10.7
apt 1.8.2.2
1. 発生事象
いつの間にか、apt コマンドでパッケージの検索や一覧表示が可能になっていた。
・apt search、apt list、等
・従来は、apt-chache search、dpkg -l、dpkg-query --show で行っていた。
しかし、パッケージの検索/一覧表示では、ハイライト表示により見づらくなることがある。
・実行結果の一部が緑色でハイライト表示される。
・使用している背景色を全く考慮しないため、非常に見づらいことがある。
(補足)
・ターミナル上で発生する。
・Emacs 上では、ハイライト表示は機能しない。
2. 対処方法
下記のオプションの指定により、ハイライト表示を無効化できる。
-o apt::color::highlight="^[[0m"
・^[ はバイナリ・コード(Ctrl + V の後に ESC キーを押下)である。
色を付けるエスケープ・シーケンスを指定する。
・| cat - を追加することでも、取り敢えず、色付けを無効化できる。
・/etc/apt/apt.conf.d/xxx へのオプション指定でも対応できると思われる。
RTCにlocaltimeを設定する場合の問題点への対応 [CentOS]
OS: CentOS 7.9
rsyslog-8.24.0-57.el7_9.x86_64
systemd-219-78.el7_9.2.x86_64
1. 発生事象
RTC に localtime を設定した場合、syslog で部分的に時間の逆行が発生する。
(RTC: real-time clock、ハードウェアクロックとも呼ばれる。)
・一部のログで 9 時間先の日時が出力される。
kernel、systemd、journald のログで発生する。
・デフォルト設定では、/var/log/messages で発生する。
(補足)
Windows とのマルチブートのため、RTC に localtime を設定している。
2. 原因
systemd が RTC への localtime の設定に完全には対応していないためである。
・systemd では、RTC への UTC の設定を推奨している。
cf. `timedateclt status`
・完全対応されるのを待っていたが、状況は変わっていない。
3. 対処方法
syslog の journald との連携を無効化する。
(systemd が導入される前の実行形態に戻す。)
実施手順は、下記の通りである。
(1) /etc/rsyslog.conf の編集
(a) imjournal モジュール、および関連機能を無効にする。
#$ModLoad imjournal # コメントにする $OmitLocalLogging off # on から off に変更する #$IMJournalStateFile imjournal.state # コメントにする
(b) imuxsock モジュールを有効にする。
$ModLoad imuxsock
(c) imklog モジュールを有効にする。
$ModLoad imklog
(2) /etc/rsyslog.d/listen.conf の編集
# diff listen.conf listen.conf.org 1c1 < #$SystemLogSocketName /run/systemd/journal/syslog --- > $SystemLogSocketName /run/systemd/journal/syslog
(3) 変更の反映
(a) rsyslog の再起動
# systemctl restart rsyslog # systemctl status rsyslog
(b) journald の再起動
# systemctl restart systemd-journald # systemctl status systemd-journald
(補足)
・初期設定では、imuxsock と imjournal が有効、imklog が無効である。
・この対応後も last コマンドでの、reboot の行の開始時刻は修正されない。
運用で対応する必要がある。
・Windows で RTC への UTC の設定に対応することもできる(レジストリの変更が必要)。
別の問題が発生するため、今回は採用しない。
(Windows の終了時にシステムクロックを RTC に反映できなくなる。)
4. 備考
(1) last コマンドの実行結果の補正
reboot ユーザーの行について、下記の補正を行う。
・ログイン時刻を -9(h) し、ログイン時間を +9(h) する。
(localtime を UTC と誤認識されているため。)
ClamAV 0.103.0のclamdscanの問題点への対応 [CentOS]
(EPEL のパッケージを使用)
以下は、この更新により発生した問題点とその対応を備忘録としてまとめたものである。
1. 発生事象
(1) 一般ユーザーでの clamdscan の実行で "Permission denied" が発生する。
/run/clamd.scan/clamd.sock: Permission denied
(2) root での clamdscan の実行で "Can't allocate memory ERROR" が発生する。
(a) エラーメッセージ
xxx.iso: Can't allocate memory ERROR
(b) clamdscan の終了ステータス
2
# 0: No virus found, 1: Virus(es) found, 2: An error occurred
(c) ログ
... Infected files: 0 Total errors: 1 ...
(補足)
・"Permission denied" については、当該ディレクトリが再作成されたためである。
・xxx.iso のファイル・サイズは、4GB を越える。
・ファイル・サイズの制限で除外され、これがエラーとされたものと思われる。
・更新前の clamd-0.102.4-1.el7.x86_64 では発生しない。
マルチブートしている Debian 10 (ClamAV 0.102.4) でも発生しない。
clamav-daemon 0.102.4+dfsg-0+deb10u1
clamdscan 0.102.4+dfsg-0+deb10u1
2. 対処方法
2-1. 上記 1. の (1) への対処対応
(1) /run/clamd.scan のパーミションの変更
# chmod 755 /run/clamd.scan
(2) /etc/tmpfiles.d/clamd.scan.conf の作成
# cat /etc/tmpfiles.d/clamd.scan.conf d /run/clamd.scan 0755 clamscan virusgroup -
(補足)
/usr/lib/tmpfiles.d/clamd.scan.conf の設定を変更するためである。
尚、当該ディレクトリを新規作成する場合の設定である。
2-2. 上記 1. の (2) への対処対応
下記のいずれかの手順を実施する。
(1) clamdscan の終了ステータスに着目しない場合
このエラーメッセージを無視し、Infected files: の値に着目する。
(2) clamdscan の終了ステータスに着目する場合
clamdscan を実行するスクリプトを作成し、終了ステータスを補正する。
スクリプトの処理概要は、下記の通りである。
# clamdscan clamdscan ... status=$? # discard file size error # - setting for ClamAV 0.103 case `clamd -V` in ClamAV\ 0.103.*) if [ $status = 2 ] && grep -q "^Infected files: 0" $log; then size_error=`grep -c "Can't allocate memory ERROR" $log` error_cnt=`grep "^Total errors:" $log | sed 's/.*: //'` if [ $size_error = "$error_cnt" ]; then status=0 fi fi ;; esac exit $status
(3) iso ファイルをチェック対象から除外する場合
/etc/clamd.d/scan.conf に下記の設定を追加する。
ExcludePath .*\.iso$