2008/11/29(土)dpkgがaptitude upgradeできない

2008/11/29 20:03 PC(Linux)
aptitude installなどで、
package uses Breaks; not supported in this dpkg 
と出て、パッケージのインストールが出来ない問題@ubuntu。

メッセージを見る限り、dpkgのアップグレードをすれば解決しそうだが、dpkgのインストールでも同様のメッセージが出る。

エラーの原因は以下に詳しい。
Nabble - Bug#462165: dpkg: Upgrade from 1.13.23-1.14.5 to 1.14.16 onwards is broken

内容の意訳をすると、
  • "Breaks"ヘッダはdpkg1.14.6からサポートされました。
  • それ未満のVer.のdpkgでは"Breaks"ヘッダを持つパッケージをインストールできません。
  • そのためdpkgのVerUPの必要がありますが、最新のdpkg1.14.16パッケージにも"Breaks"ヘッダは使われています。
  • 従って、1.14.6未満のdpkgのVerUpには「卵が先か鶏が先か」という問題が起こります。
とのこと。

解決方法は2通りあるようだが、素直に強制インストールでいいと思う。ということで、
dpkg --force-depends -i /var/cache/apt/archives/dpkg_1.14.16.6ubuntu3_i386.deb
とすれば、エラーを無視して最新dpkgがインストールされる。あとはaptitudeで良し。

それにしても、dpkgのforceオプションは難しい。種類も多いし、--force-dependsの動作は思っていたのとちょっと違った。やれやれ。

2008/09/13(土)sambaで実行ファイルを更新すると実行フラグが外れる

2008/09/13 25:17 PC(Linux)
samba経由でlinux上のファイルをWindowsからいじる際、パーミッション755のファイルを更新すると、655となり、自分の実行フラグだけが外れる問題。

まあ実行可能ファイルをsamba上でいじれることが余り良いことではないというのは置いておいて。

なんで自分の実行ビットだけ外れるのか、smb.confを読んでいても当初今ひとつ分からなかったのだが、

[linux-users:100723] winからコピーすると"drwxr-xr-x"となるのは何故?

ここら辺を眺めていてやっと理解出来た(気がする)。

変更時の動作はおそらく、

(unixファイル) or ( (create mask) and (windowsファイル) )

の順番で評価。

windowsファイルは標準では666で、read only時は444となる。

今回の件ではunixファイルは755でcreate maskは644だったので、755になるという想定は間違っていない。ただし、オプションを忘れていた。
map archive (S)
このパラメータは、DOSのアーカイブ属性を UNIXの所有者(owner)実行権ビットに割り当てるかどうかを決定する。 DOSのアーカイブ属性は、バックアップを行なった後でファイルが修正されると設定される。 このオプションの副作用として、Samba マシン上にあるファイルを修正した際に、UNIX 上で実行可能になってしまうことがあげられる。 これは共有のソースコードやドキュメントなどに関して、非常に悩ましい事態である。

このパラメータを利用する場合は、 所有者実行権ビットがマスクされないように(100というアクセス権が含まれるように)、 create mask パラメータを設定することが必要となることに注意。 詳細は、create mask パラメータを参照のこと。

デフォルト: map archive = yes
http://www.samba.gr.jp/project/translation/2.2.5/manpages/smb.conf.5.html#MAPARCHIVE
デフォルト値:yes!

なんてことだ。

これはWindows上のアーカイブ属性をunix側の実行ビットに割り当てるためのオプションである。が、create maskに関する注意書きがあるということは、

( (unixファイル) or ( (create mask) and (windowsファイル) ) )後に、実行フラグのみ (create maskの所有者実行フラグ) and (アーカイブ属性)をセット。

ということか。

ということで、map archiveをいじってやればよい。

対象ディレクティブに、
map archive = no
を追加したら直った。

うーん、なんだろうこのハマり。

2008/08/28(木)外部からLinuxサーバを介してWindows機をいじり倒す

2008/08/28 16:57 PC(Linux)
最近では、外部からのX接続が簡単に出来るらしい。答えはputty+xming。接続方式が公開鍵認証+PathPhraseでも全く問題ない。xmingが勝手にputtyの接続方式を判断してくれる。うわこれ、昔はAstec-X買わないと(もしかしたら買っても)出来なかったやつじゃん。

もちろんcygwinでもいいんだろうけど、最近cygwinはインストールするマシンを絞るようにした。Pathやバージョンの絡みで開発環境に障ることがあるのと、ファイルの多さや移行の大変さ、アンインストールのめんどくささ等が個人的にcygwinの株を下げてしまった。mingwとかxmingとか使う機能が確定してる場合はそっちでいいじゃない、と。それから単に、GNUなサーバ群をWindows上で使いたいならcoLinuxっていう手もあるしね。

閑話休題。で、rdesktopというソフトはLinuxのX環境でWindowsのリモートデスクトップに入れるソフトだ。Xで入っておいてrdesktopを動かせばWindows GUIでログオン可能。これはすごい。

単にLinuxから共有ディレクトリとかのファイルを見たければ、smbfsでもいける。
# mount -t smbfs -o username=hoge,password=piyo //foo/bar /mnt/win
……文字コードは今のところ考えてないや。

寝てるマシンはLinuxからWOLで起こせる。たとえば、wakeonlanとかを使う。WOLの話は、サーバ入れ替え その2にも書いてるからそちらも参照してほしい。

さらにVNCなんかやVPNなんかを使う方法も。……もう何でもありだな。

2008/08/28(木)Perl::Magickインストール

2008/08/28 15:57 PC(Linux)
adiaryの画像縮小機能を使いたかったので、Perl::Magickを入れた。
#aptitude install imagemagick
あれ、これだけだとだめだな。adiaryのシステムチェックでNGになっちゃう。
#aptitude install perlmagick
も追加。うん、これでOKになりました。

ここでぎっもーん。imagemagickは要らなかったのかどうか。aptitude showで依存関係をチェックした。詳細省略。

結論として、perlmagickそのものにはimagemagickは要らないみたい。とはいえ、libmagickはimagemagickインストール時に入ってるし、libxml2とかも要るみたいだから現状このままでイイや。

アルバムをのぞいたらいきなりサムネイル表示されてて感激。

2008/08/28(木)chkrootkitでなんか出た

2008/08/28 14:41 PC(Linux)
出てきたのはこれ。
Searching for OBSD rk v1... /usr/lib/security
/usr/lib/security/classpath.security
調べてみたら、どうやら大丈夫(FALSE POSITIVE)っぽいけど……
Requesting feedback for OBSD rk v1 in Edgy - Ubuntu Forums
意訳
rootkitじゃないよ。RTFM!
これ読め→ /usr/share/doc/chkrootkit/README.FALSE-POSITIVES
below is a (non-exhaustive) list of packages that are known to cause false
positives.
[...]
contains specific files
asp: Ramen Worms contain the file /usr/bin/asp
libgcj-common: the 'OBSD rk v1' contains
/usr/lib/security,
/usr/lib/security/classpath.security
/usr/lib/security/libgcj.security.  
ははあなるほどね。念のため、libgcjがインストールされてるかどうか確認する。
#dpkg -l |grep libgcj-common
ii  libgcj-common  4.1.1-21  Java runtime library (common files)
うん問題ないようだ。

2007/08/02(木)EveryDNSは切ろう

2007/08/02 4:54 PC(Linux)
EveryDNSでこんな問題が起きていた。

# nslookup dt8.jp ns1.everydns.net

Server: ns1.everydns.net

Address: 208.76.56.56#53
Name: dt8.jp

Address: 218.41.53.186

# nslookup dt8.jp ns2.everydns.net

Server: ns2.everydns.net

Address: 204.152.184.150#53
Name: dt8.jp

Address: 121.2.160.125
ns1とns2で返ってくるアドレスが違う!

今現在EveryDNSとZoneEditをそれぞれダイナミックDNSでDNSサーバとして割り当てているのだが、バックアップとして2つのダイナミックDNSを使う意味は一方が落ちたときの予備、であるわけだ。けれども、いずれかのサーバで更新をミスするだとかサーバ内での整合性がとれていないだとかの可能性があるならば問題の切り分けを容易にするという意味合いにおいても統一した方が良い気がする。

さてZoneEditとEveryDNSどちらに寄せるかなのだが、5年使ってきた経験として、Diceで更新をミスしやすいのがZoneEdit、サーバそのものが落ちたり変なことになったりしやすいのがEveryDNSと。

ということでZoneEditに統一することにした。

ns1.everydns.net

ns2.everydns.net

ns18.zoneedit.com

ns8.zoneedit.com
から

ns18.zoneedit.com

ns8.zoneedit.com
に変更。

さてどうなりますか。

2007/07/02(月)サーバ入れ替え その9

2007/07/02 14:41 PC(Linux)
[9]残りの作業

wwwサイトをユーザ分まで全て移送し、オーナーなどを書き換え。

.htaccessで、使っていないcgiなどを暫定的に全てつぶす。
アクセスがちゃんと制限されているか確認。cgi、webに問題がないか確認。



CAn't locate jcode.pm



jcodeがらみで動かないCGI(waa?)があったが、たぶんコメントアウトで解決。

いよいよpppoeでネットにつなぐために設定をする。簡略化のために、設定ソフトでやる。

# aptitude install pppoeconf
pppoeconfを使ってpppを設定。以前はrp-pppoeだったので、最初ちょっとやり方がわからなかった。接続はpon,切断はpoff。接続テストをして問題ないようなら、最後にもう一度iptablesの設定などを確認し、local IPアドレスなどを運用用のものに書き換えてリブート。

あー疲れた。

サーバは書いてない部分でもできるだけ締めたつもり。今後は、侵入検知の導入とログの採り方+報告をうまいことがんばる。あとできればinetdの中に入れられるものは入れてしまう。

2007/07/02(月)サーバ入れ替え その8

2007/07/02 14:27 PC(Linux)
[8]upnpd(linux-igd)

色々実験したのでわざわざ分けてみた。
実のところMSNメッセで会話するだけなら、1863ポートを開けるだけでよい。

しかしファイル転送となるととたんにハードルがあがる。ルーターの中からファイル転送するのはハードルが高い上、今メインで使ってるのが互換のRegnessemなので大混乱。結果としてはうまくいかなかったので現状維持なのだけど、一応メモ。

# aptitude install linux-igd
debianのパッケージだと、今インストールするのはこれだけでいい。ReAIMとかはもう不要というか、入れても状況が変わらないようだ。



Jun 12 09:31:45 debian2 upnpd[4549]: Error registering the root device with descDocUrl: http://192.168.1.11:49152/gatedesc.xml

Jun 12 09:31:45 debian2 upnpd[4549]: UpnpRegisterRootDevice returned -204

Jun 12 09:36:01 debian2 upnpd[4623]: UPnP SDK Successfully Initialized.

Jun 12 09:36:01 debian2 upnpd[4623]: Succesfully set the Web Server Root Directory.



上記のようなエラーが出てlinux-igdがうまく動かないが、これは先の記事で書いたloのpingが通ってなかったのが原因。

で、動かしてみてlinux-igdも認識されたようなのだが結局ファイル転送はお互いが使っているソフトによってできたりできなかったりである。確実なのはMSNメッセ(7.0)やLive!メッセ(8.0)など新しいもの同士の方がファイル転送ができる可能性は高いということだ。Windows Messenger(5.0)やRegnessemだと、受信・送信側に関していかなる組み合わせにすると必ず転送できる状況になるのか知見が得られなかった。これだと、現状の1863ポート開けとほとんど状況が変わらない。

ちゃんと動いたとしても、linux-igdにはチェインを(ある程度)自由に書き換えさせることになるので、セキュリティホールの温床である。うまくいかないのでさっさと見切りをつけて、FORWARDのデフォルトポリシーもDROPにしてアンインストールしてしまった。これでも、会話には問題がないしregne同士で環境によってはファイル転送ができる。さらに訳がわからなくなってきた。

ファイル転送に関しては転送バッタなどもっと別のソフトを使った方が良いのだろう。使えなかったらあきらめる、or本家最新版。
それと、regneの進化に期待(一応考えてはいるようだから)。
OK キャンセル 確認 その他