
Ubuntu日本語フォーラム

ログインしていません。
clamtk 4.25
をインストールしてhome をスキャンすると
ディレクトリとファイル名が漢字のところで止まって先に進まなくなります。私個人が作るファイルはすべてascii文字しか使わないのですが、他人が作った仕事のファイルなので仕方有りません。
これは他のマシンでも再現するのでしょうか。解決法はありますか?
(別のマシンで走らせたら感染したファイルを見つけてくれて駆除できたので、使っていきたいのですが、上のような場合スキャンに失敗するのでどうすればいいのか思案中)
オフライン
追加です。
問題があるディレクトリを指定してスキャンさせると漢字のディレクトリやファイルがあるのにも関わらずスキャンできます。
しかし、上にも書いたようにhomeを指定してスキャンさせると同じディレクトリでつっかかったまま先に進みません。10分以上(サンドイッチを作るのにかかる時間)先に進みません。
オフライン
漢字フォルダ名にこだわらなければ英数半角に変更したらよいのではないでしょうか。
Ubuntuでhomeディレクトリの日本語フォルダ名を英語に変更
LANG=C; xdg-user-dirs-gtk-update
<参照先>
『デスクトップ』『音楽』などの日本語フォルダ名を英語表記にする
オフライン
のんき による投稿:
Ubuntuでhomeディレクトリの日本語フォルダ名を英語に変更
LANG=C; xdg-user-dirs-gtk-update
これは今回の件と直接関係していないように思います。
私の手元では例えば
/home/日本語/漢字ファイル その①.html
を仮につくり、「日本語」ディレクトリをClamTKでスキャンを行っても止まらずに実行でき、問題が再現しません。
問題が再現するパターンを報告頂ければ何かわかるかもしれません。
回避策としては、例えば一時的にファイル名を変更してからスキャン、という手はあるかと思います。
オフライン
実際のファイル名を公表するのは憚れるのでしませんが、問題のディレクトリはデスクトップにあり、ディレクトリ名はローマ字表記です。
マシンAでは /home/hoge/デスクトップ/2010work/新人研修/挨拶の仕方.doc (日本語環境)
マシンBでは/home/hoge/desktop/2010work/新人研修/挨拶の仕方.doc (英語環境)
マシンAではスキャンし始めると数十秒でデスクトップを読みにいき止まり、マシンBではかなり時間が経ってからデスクトップのファイルを読みに行き止まります。
ackさんがおっしゃるようにディレクトリやファイル名が日本語ならすべからくダメかというとそうではありません。
デスクトップにあるとダメなのでしょうか。試して報告します。
オフライン
マシンAで問題のフォルダをデスクトップから/home/hogeに移しスキャンをかけてみると、今度は /home/hoge/.thunderbird/の中の大きなフォルダで止まります。ということは中身が大きいフォルダはスキャンするのに時間がかかるということでしょうか。しかし、問題のフォルダはせいぜい150mbほどです。.thunderbirdの中はもっと大量です。マシンBでは.thunderbirdのフォルダは難なくこなしたので何が問題なのか分かりません。
使用OSは10.04、「ホーム(再帰的)」でスキャンしています。簡易スキャンをすると瞬く間に終了し、スキャンされたファイル数11などと言われるのでそうしています。
オフライン
wubuntu による投稿:
マシンAで問題のフォルダをデスクトップから/home/hogeに移しスキャンをかけてみると、今度は /home/hoge/.thunderbird/の中の大きなフォルダで止まります。ということは中身が大きいフォルダはスキャンするのに時間がかかるということでしょうか。しかし、問題のフォルダはせいぜい150mbほどです。.thunderbirdの中はもっと大量です。マシンBでは.thunderbirdのフォルダは難なくこなしたので何が問題なのか分かりません。
そうなるとディレクトリやファイル名とは違う問題となりそうです。
clamtk では状況が確認しづらいので、端末を起動し
clamscan -vr $HOME
を実行すると(ホーム(再帰的)と同一範囲をスキャンします)、スキャンしたファイル名やディレクトリ名が随時表示されていくので、どこでつっかえているのか確認できるかと思います。
wubuntu による投稿:
「ホーム(再帰的)」でスキャンしています。簡易スキャンをすると瞬く間に終了し、スキャンされたファイル数11などと言われるのでそうしています。
ホームディレクトリ内の隠しディレクトリも含め全てをスキャンするのであれば、この使用方法で良いと思います。
オフライン
ack による投稿:
そうなるとディレクトリやファイル名とは違う問題となりそうです。
clamtk では状況が確認しづらいので、端末を起動しコード:
clamscan -vr $HOMEを実行すると(ホーム(再帰的)と同一範囲をスキャンします)、スキャンしたファイル名やディレクトリ名が随時表示されていくので、どこでつっかえているのか確認できるかと思います。
マシンBで上を試してみたところ停止せず最後までスキャンできました。マシンAでも近日中に試してみます。
オフライン
マシンBで上を試してみたところ停止せず最後までスキャンできました。
・・・ホーム
ボタンでなく、
・・・ディレクトリ
ボタンで、homeを指定して、スキャンしてみると改善する(かも)しれません。
それか・・・KlamAVでスキャンしてみてください。
KlamAVにいちようGUIでスキャンできる機能があるので。
ただし、英語ですが・・・
$ sudo apt-get install klamavです。
KDE系がはいってきますが・・・
私はklamavの方で使っています。
とくにフリーズしたことはなかった(スキャンは、高速で進んでいた)のですが、
※私の環境でも、klamtkの↑は確認できました。
オフライン
clamtk のチェック実行中に、ps -Af|grep clam 等で観察すると、
sh -c /usr/bin/clamscan --no-summary --block-encrypted 【ファイル名たくさん】
というプロセスが確認出来ます。
以下は、超いい加減にclamtkのPerlスクリプトを読んだ感想です。
1)最初にALLの対象ファイル名リストを作り、
clamscan起動時は、そのファイル名リストを、適当に区切って引数に設定してるようです。
2)適当に区切る仕様は、引数の文字列長ではなく、MAXファイル数=255 という論理らしい。
/usr/share/perl5/ClamTk/GUI.pm の 902行目~904行目に
ugly? issues? but works?
という、ちょっと気になるコメントもあります。
3)その下の937行目でclamscanのプロセス起動を行うのですが、
長~いパス名+長~いファイル名が多数あると、コマンドライン引数のバイト数制限に
ひっかかる可能性がありそうです。
NGな時の状況と、"clamscan -vr $HOME"はOKという事から想像すると、
上記の「ファイル数=255で区切り」という仕様が、なんとなく怪しい。
まずは、状況確認ということで、
clamtk を端末から実行すると、画面に何かエラーが表示されませんか?
オフライン
pc944 による投稿:
・・・ホーム
ボタンでなく、
・・・ディレクトリ
ボタンで、homeを指定して、スキャンしてみると改善する(かも)しれません。
マシンAでこれをやるとつっかえずに最後までスキャンできました。
clamtkはちょっとわかりません。clamscanとは別物ですか?
私は典型的なエンドユーザで全面的にGUIに頼っています。
オフライン
書き忘れましたが、
マシンA, Bとも最初のメニュ画面で、「GUIバージョン4.25」の左側がチェックマークではなく、交通標識の進入禁止マークがつきます。(赤丸に白い水平線)
もう一つのマシンCでも同じ標識が出るのですが、homeボタンで再帰スキャンしてもつっかえるということはありません。
オフライン
1)検査対象範囲について
4つの実行方法についてまとめてみました。
●"スキャン(S) -> ディレクトリ(D)" と "簡易スキャンの「ディレクトリ」ボタン" は
同一機能で、指定ディレクトリ直下だけで配下のサブディレクトリは対象にならない。
●"スキャン(S) -> ホーム(Quick)" と "簡易スキャンの「ホーム」ボタン" は
同一機能で、$HOMEディレクトリ直下だけで配下のサブディレクトリは対象にならない。
上記2つの機能で、サブディレクトリを対象とさせるには、
"拡張(A) -> 設定" で設定画面を開き、「スキャン設定」タブの
"ディレクトリ内すべてのファイルとディレクトリをスキャン"をチェックする。
ちなみに、チェックをすると下記2つと同じ動作になる。
●"スキャン(S) -> 再帰的スキャン"は、
指定ディレクトリ直下と配下の全サブディレクトリが対象となる。
●"スキャン(S) -> ホーム(再帰的)"
$HOMEディレクトリ直下と配下の全サブディレクトリが対象となる。
2)進入禁止マーク
オリジナルのプログラムは、http://clamtk.sourceforge.net/ で開発されており、
Ubuntuのパッケージは、そこから人手により別途作成されます。
また、clamtkの最新GUIバージョンチェック機能は、
開発元のhttp://clamtk.sourceforge.net/latestにアクセスする事で行われています。
http://clamtk.sourceforge.net/ によると、
May 1 2010 ClamTk 4.26 released! とあるので、
開発元では次のバージョンをリリースしたが、
Ubuntuのパッケージはその最新バージョンを取り込んでいない
状態です。
で、2つの選択肢があります。
a)自分でhttp://clamtk.sourceforge.net/から最新をインストールする
b)Ubuntuのパッケージ管理に任せて、今のバージョンを使用する
尚、状況は何も変わらないので気分の問題ですが、
設定画面の「起動時の設定」タブの"GUIのアップデートをチェックする"のチェックをはずせば、
ブルーのハテナークになります。
b)でよろしいのでは?
3)clamtk と clamscan
clamscanは、http://www.clamav.net/lang/en/で開発されてるclamAV機能の一つで、
clamtkは、内部的にclamscanを呼び出す事でウィルスチェックを行っています。
clamscan -vr $HOME だと、検査対象のファイル名を clamscan 自身が決める
clamtk だと、検査対象のファイルをclamtkが絞り込み、clamscanへファイル名を渡している。
という違いがあります。
で、clamscan を直接実行するとOKということなので、clamtk側に問題があるかも知れない?
と推測してみました。
端末で、
$ clamtk
すれば、メニューから起動した時と同様にGUIが起動します。
※ここまで書いてあれなんですが、clamtk も clamAV も、
2日前に初めてインストールしたので、使い方は詳しくないです。
オフライン
gekogekoさん色々調べてくださって感謝します。
私はソースを見てもちんぷんかんぷん、ただGUIのソフトを操縦するだけの人間です。
マシンAでも
clamscan -vr $HOME
を試したら、問題なく最後までスキャンできました。
オフライン
"ソースを読んで"という意図は、一切ありませんでした。
すいません、ソースの件は気にしないでください。(無視しちゃってください)
>端末で、
>$ clamtk
>すれば、メニューから起動した時と同様にGUIが起動します。
で、スキャンが止まった時に、エラーメッセージが端末に表示さたら、
その内容をそのまま張り付けて頂ければ、原因を検討したいと思います。
エラーメッセージが表示されなかったら…
とりあえず、その旨お知らせください。
オフライン
gekogeko による投稿:
>端末で、
>$ clamtk
>すれば、メニューから起動した時と同様にGUIが起動します。
で、スキャンが止まった時に、エラーメッセージが端末に表示さたら、
その内容をそのまま張り付けて頂ければ、原因を検討したいと思います。
忙しくてしばらく忘れていましたが、今日これをやってみました。マシンAはすぐ止まって次のエラーメッセージが出ました。
*** unhandled exception in callback:
*** couldn't fork: Argument list too long
*** at /usr/bin/clamtk line 43
*** ignoring at /usr/share/perl5/ClamTk/GUI.pm line 485.
オフライン
wubuntu による投稿:
*** unhandled exception in callback:
*** couldn't fork: Argument list too long
*** at /usr/bin/clamtk line 43
*** ignoring at /usr/share/perl5/ClamTk/GUI.pm line 485.
このメッセージから察するに、今回の問題は gekogeko さんの仰る
gekogeko による投稿:
2)適当に区切る仕様は、引数の文字列長ではなく、MAXファイル数=255 という論理らしい。
/usr/share/perl5/ClamTk/GUI.pm の 902行目~904行目に
ugly? issues? but works?
という、ちょっと気になるコメントもあります。
3)その下の937行目でclamscanのプロセス起動を行うのですが、
長~いパス名+長~いファイル名が多数あると、コマンドライン引数のバイト数制限に
ひっかかる可能性がありそうです。
と関係がありそうです。
"Argument list too long"とあるので、ファイル名の長さが問題のようにも見えますが、本当それだけが原因かどうかはわかりません。
(文字列の切り分けに失敗して複数ファイル名が1つにつながってしまっている、等も考えられますし)
が、少なくともスキャン対象のファイル名(パス)を処理するところでClamTKが失敗しています。
まとめると
・スキャンする対象のファイル名(パス)如何でClamTKはうまく動かない事がある。
・ClamTkの作者は「現在の作りはあまり良くない気がするがとりあえず動く?」ぐらいの気である
策としては、
・pc944 さんご紹介のklamAVを使ったり、他のGUIフロントエンドを探す
・端末から直接clamscanを使う
・ClamTkのバグレポートをする
となるかと思います。
オフライン
対策として、他のGUIフロントエンドを探す場合インストールも簡単なavast も検討されてはどうでしょう。
一時導入して稼働させた経緯がありますが、マニュアルなんて入らない程で、けっこう使えます。
こちらのURLのdebien packageをdownloadして、debインストーラで導入するか、
ファイル・プラウザにてアイコンを右クリックすれば、同様な操作手順となります。
http://www.avast.com/ja-jp/linux-home-edition#tab4
後は自動的にメニューに登録されています。
私はコマンドモードにて操作するのが好きなので、avg8.5を利用しています。
そのため、Clam系はさわったこともありません。さっぱりわかりません。
オフライン