トップページunix
1001コメント247KB

FreeBSDを語れ Part26

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2009/10/17(土) 20:37:25
FreeBSDについて語るスレです。

The FreeBSD Project
http://www.freebsd.org/ja/

前スレ
FreeBSDを語れ Part25
http://pc12.2ch.net/test/read.cgi/unix/1249379155/

関連スレ
初心者もOK! FreeBSD質問スレッド その104
http://pc12.2ch.net/test/read.cgi/unix/1252852690/
FreeBSD/amd64 part2 (and for oyster901)
http://pc12.2ch.net/test/read.cgi/unix/1171335849/
0401名無しさん@お腹いっぱい。2009/11/28(土) 09:27:48
自分が手を入れているファイル以外は全削除して新規に入れているので気にしない
0402名無しさん@お腹いっぱい。2009/11/28(土) 09:34:54
mergemasterでよく得意げに-sを指定してる人を見るけど、意味あるの
これ指定するととても面倒そうなんだが
0403名無しさん@お腹いっぱい。2009/11/28(土) 09:41:45
>>388
すみませんが詳しい方のみ回答をお願いします
0404名無しさん@お腹いっぱい。2009/11/28(土) 09:46:53
>>400
あぁ、mergemasterが悪いのではなくmake installworldで置換されるのか。
確かにオレが悪い。しょうがない、置き場所考えるか。
0405名無しさん@お腹いっぱい。2009/11/28(土) 09:49:32
-sを付けないこと、-Uを付けること、-Fを付けることの違いがわからない
mergemasterのソース見ればわかるのかもしれないけど面倒くさい
0406名無しさん@お腹いっぱい。2009/11/28(土) 14:26:17
mergemaster は man mergemaster して /etc/mergemaster.rc
書けばほとんど手間要らずだろ。
0407名無しさん@お腹いっぱい。2009/11/28(土) 15:17:59
mergemasterは-rのときにも$MTREENEWを作り直してしまって
おおかたのファイルの情報が失われるので、
-rのときには$MTREENEWは作り直さないように修正して使ってる。
0408名無しさん@お腹いっぱい。2009/11/28(土) 15:18:50
/etc/rc.dと/etc/defaultsは削除してからmergemasterかけてる
0409名無しさん@お腹いっぱい。2009/11/28(土) 15:25:04
7.2 -> 8 のアップデートがあまりにあっけなくて拍子抜けした
これなら Windows Update の方がまだドキドキするw
0410名無しさん@お腹いっぱい。2009/11/28(土) 17:31:23
俺は撃沈しました
USBメモリから起動失敗
0411名無しさん@お腹いっぱい。2009/11/29(日) 03:10:27
>>410
http://www.freebsddiary.org/upgrade8.php

↑関係してない?
0412名無しさん@お腹いっぱい。2009/11/29(日) 04:58:40
>>411
関係してるかも。カーネルインストール後の再起動で「da0s1aがねえぞゴルァ!」ってシングルユーザーモードに落ちる
で/dev見るとda0とda0aしかない。da0aを指定しても結局マウントできなかったけど。

バックアップ用のUSBメモリもあったのに同時にアップグレードしてしまえなんてアホなこと考えて復旧に今までかかった。
0413名無しさん@お腹いっぱい。2009/11/29(日) 10:28:17
USB接続のプリンタをつないだままブートすると
なんとプリンタのカードスロットがad0になってルートパーティションがマウントできなくてブート失敗する

これってプリンタに刺したメモリカードでブートできるってことだよね
0414名無しさん@お腹いっぱい。2009/11/29(日) 10:31:47
>>413
実に面白い。
0415名無しさん@お腹いっぱい。2009/11/29(日) 10:44:21
http://pc11.2ch.net/test/read.cgi/linux/1129568531/840
0416名無しさん@お腹いっぱい。2009/11/29(日) 11:55:49
>>415
大滝秀治さんの声で「こりゃぁ、ワシの字だぁ!」
0417名無しさん@お腹いっぱい。2009/11/29(日) 12:41:14
ラベル付ければいいんじゃないの?

http://www.freebsd.org/doc/en/books/handbook/geom-glabel.html
0418名無しさん@お腹いっぱい。2009/11/29(日) 13:03:19
ああ、そもそもラベル書いてる /etc/fstab が読めないから駄目なのか…
0419名無しさん@お腹いっぱい。2009/11/29(日) 17:30:05
最新はあまり追いかけてないんだけど、da0 じゃなくて ad0 がUSBになったってこと???
0420名無しさん@お腹いっぱい。2009/11/29(日) 20:06:09
rm -r * の快感をGUIオンリーユーザーは理解できまい。
0421名無しさん@お腹いっぱい。2009/11/29(日) 20:07:21
rm -rf /*

一文字違うとやばいっす
0422名無しさん@お腹いっぱい。2009/11/29(日) 20:08:46
ctrl-a shift-delete
0423名無しさん@お腹いっぱい。2009/11/29(日) 20:35:25
rm -Rf /
0424名無しさん@お腹いっぱい。2009/11/29(日) 21:42:42
最近のrmは結構賢い
0425名無しさん@お腹いっぱい。2009/11/29(日) 21:50:54
rm これはコメント
0426名無しさん@お腹いっぱい。2009/11/29(日) 22:31:24
GNOME 2.28きたね
0427名無しさん@お腹いっぱい。2009/11/29(日) 22:56:37
gnomeとqt4アップデートした(`・ω・´)
0428名無しさん@お腹いっぱい。2009/11/30(月) 00:01:08
なにかフォント周りも新しくなってたのか、MS P ゴシックとか明朝の中の
ビットマップフォントがうまく使えるようになっててキンモーw
0429名無しさん@お腹いっぱい。2009/11/30(月) 00:48:13
linux使ってたけどやっぱりなんか違う。性にあわない。
こっちにクリーンインストールしよう。
dvd版でいいよね?
みんなCDからなのか?
0430名無しさん@お腹いっぱい。2009/11/30(月) 03:30:54
>>429
packages とかいらなきゃCD1でいいんじゃないの。
0431名無しさん@お腹いっぱい。2009/11/30(月) 12:50:52
CD1はゴミマニュアルで半分をしめているので落とすならばlivecdが一番良い気がする。
DVDはpackageが古いからどうせダウンロードするくらいならば
stableのpackageをpkg_add -rする方が良い。
0432名無しさん@お腹いっぱい。2009/11/30(月) 14:13:56
Javaを入れている人は8.xへの移行をやめた方がいいんだろうな
misc/compat7xが必要なんだっけ?
0433名無しさん@お腹いっぱい。2009/11/30(月) 15:04:43
java/jdk16 使ってて再コンパイルしたけど別に
compat7x 入らなかったよ?
0434名無しさん@お腹いっぱい。2009/11/30(月) 20:00:04
↓でDOS/V版の愛姉妹が動いた。同級生も動くらしい。音は出てない。
http://cvsweb.se.netbsd.org/cgi-bin/bsdweb.cgi/pkgsrc/games/anise/

↓SILK*.DATの展開プログラム
http://www.kurohane.net/hoot/driver/silkys_bgm.zip

こういう話するスレってあったっけ?
04354102009/11/30(月) 20:10:02
これで解決しました
http://forums.freebsd.org/showthread.php?p=51967#post51967

起動に失敗したUSBメモリは7.1のsysinstallでインストールしたものです。
0436名無しさん@お腹いっぱい。2009/11/30(月) 21:42:12
>>434
お前らに妹さんはいますか?2人目
http://pc12.2ch.net/test/read.cgi/unix/1047179680/
これか?
0437名無しさん@お腹いっぱい。2009/12/01(火) 02:44:21
amd64 で zfsroot にしてるんだが 7.2 から 8.0 に kernel を更新して single で立ち上げたあとに
insufficient memory だかなにかで zfs な root をマウントできずにその後に進めない

結局 7.2 に戻した。別環境で様子見・・・
0438名無しさん@お腹いっぱい。2009/12/01(火) 09:41:32
気合いや 気合い
気合いが足らんのや
気合い入れたらんかい
0439名無しさん@お腹いっぱい。2009/12/01(火) 09:42:52
>>438
俺も気合が足らんのやないかと思う。
04404102009/12/01(火) 10:03:28
俺もUSBメモリから起動できるようにはなったけどZFSはマウントできなかった。
ZFSをアップグレードしないとだめみたいだね。
http://d.hatena.ne.jp/usaka/20090602


ライブCDでZFSアップグレードしてからfreebsd-updateの続きでどうにかできないもんか。
http://mohi.teak.jp/blog/memorandum/021
実験用の仮想環境作るのまんどくせ。
0441名無しさん@お腹いっぱい。2009/12/01(火) 11:24:13
>>440
Windows 環境があるなら、VMware Player v3 から GUI
でサクサク仮想マシン作れるよ。
0442名無しさん@お腹いっぱい。2009/12/01(火) 11:31:37
2ch特化型サーバ・ロケーション構築作戦 Part35
http://qb5.2ch.net/test/read.cgi/operate/1254496873/

から転載。

Upcoming FreeBSD Security Advisory
http://docs.freebsd.org/cgi/getmsg.cgi?fetch=0+0+current/freebsd-security

要約:通常アドバイザリの準備が出来てからアナウンス
するけど、既に exploit code が広く出回っているので
とりあえずパッチを公開します。

ただ、このパッチは可能性が低いとはいえ問題を完全に
解決していないかもしれないし、新たな問題を含んでい
るかも知れないので(いつもより)注意してね。

パッチ:
http://people.freebsd.org/~cperciva/rtld.patch
0443名無しさん@お腹いっぱい。2009/12/01(火) 14:22:55
>>442
これ近年まれに見る単純かつやばい奴じゃないか
FreeBSD使ってるレンタル共有サーバ業者南無
0444名無しさん@お腹いっぱい。2009/12/01(火) 15:06:23
スタック破壊なんかよりずっと簡単にroot取れちゃうのか。
しかしunsetenvでつぶすなんてずいぶん手抜きなコードなんだなあ。
0445名無しさん@お腹いっぱい。2009/12/01(火) 15:18:58
unsetenv()で潰してるんじゃなくて、(それは以前からやっていて)
unsetenv()できなかった時にちゃんとabortするコードを追加するpatchに見えるが。
0446名無しさん@お腹いっぱい。2009/12/01(火) 15:24:53
パッチじゃなくて、元々のコード (パッチあてた後も同じだけど) の話。
setuid-root なプログラムの場合にも getenv で LD_* を取りに行くのかよ、って話ですが。
0447名無しさん@お腹いっぱい。2009/12/01(火) 15:26:54
>>446
だとすると、何をいまさらな話だ。

それより、unsetenv()は昔はvoidだったのに今はintに変わったんだな。
0448名無しさん@お腹いっぱい。2009/12/01(火) 15:27:30
いまさらなコードがあぶなかったわけですよね。
0449名無しさん@お腹いっぱい。2009/12/01(火) 15:29:23
>>448
いや、その「いまさら」な部分はpatchを当てても変わってない。
だから、「いまさらなコードがあぶなかった」のではない。
0450名無しさん@お腹いっぱい。2009/12/01(火) 15:33:50
うへぇ!これを期にFreeBSD見限るか?
0451名無しさん@お腹いっぱい。2009/12/01(火) 15:35:05
あー、setuid-root なプログラムなら、そもそも getenv("LD_hoge") すべきじゃないのでは?
ってことが言いたいんですが。
それをいまさら、って言われてしまうと、FreeBSDの人達の志ってやっぱり低いのね、
って感じになっちゃうというか。
0452名無しさん@お腹いっぱい。2009/12/01(火) 15:36:07
ごめんunsetenvに失敗することあんの?
0453名無しさん@お腹いっぱい。2009/12/01(火) 15:40:38
このパッチを見て攻撃方法が全然思い浮かばない駄目駄目管理者です。
0454名無しさん@お腹いっぱい。2009/12/01(火) 15:44:36
>>451
setuid-root なプログラムでは、getenv("LD_hoge")はしないし、
かつ unsetenv("LD_hoge")もする、という2重のコードになってるのでは?
0455名無しさん@お腹いっぱい。2009/12/01(火) 18:06:39
すでにExploit code出回ってるぜ。
LD_PRELOADでsetuidなpingに突っ込んでroot件奪取できてた。
0456名無しさん@お腹いっぱい。2009/12/01(火) 18:10:14
さくら涙目でおk?
0457名無しさん@お腹いっぱい。2009/12/01(火) 18:16:22
これだから7系以降はと言おうかと思ったら6系もパッチが当てられる部分は同じw
0458名無しさん@お腹いっぱい。2009/12/01(火) 18:30:45
>>454
いいえ。
0459名無しさん@お腹いっぱい。2009/12/01(火) 19:13:37
自鯖建てて、ファイアウォールで外部からログインできないようにしてる人には関係ない話のようなので帰りますね。
0460名無しさん@お腹いっぱい。2009/12/01(火) 19:25:13
>>442
逆に、このpatchでなぜ解決になるのかがわからない。
patchを当てる前だってunsetenv("LD_PRELOAD")とかはしてたわけだし、
その戻り値を無視していたとしてもunsetenv()自体は行なわれるから、
このpatchで解決するなら、patchを当てる前でも問題は起きないように思えるが。
0461名無しさん@お腹いっぱい。2009/12/01(火) 19:27:36
libcがバグってて、unsetenv()できないような場合があるんじゃないの。
で、その場合はunsetenv()が0以外を返すから、それを見てabortすると。
0462名無しさん@お腹いっぱい。2009/12/01(火) 19:31:32
おまいら攻撃コードも見ずに妄想垂れ流して暇つぶししてんの?
0463名無しさん@お腹いっぱい。2009/12/01(火) 19:34:06
んじゃ攻撃コードここに貼り付けてよ
探すのめんどいから
0464名無しさん@お腹いっぱい。2009/12/01(火) 20:03:50
攻撃コードワラタw
むしろそんなモジュールが作れる方が問題じゃないのか?w
0465名無しさん@お腹いっぱい。2009/12/01(火) 20:09:16
>>460
> その戻り値を無視していたとしてもunsetenv()自体は行なわれるから、

行っても失敗するから。
unsetenvのman読めばどういうときに失敗するかはちゃんと書いてあって、
それ読めば簡単にunsetenvが失敗するテストケースは作れる。
0466名無しさん@お腹いっぱい。2009/12/01(火) 20:32:11
この時のパッチがまずかったんだな。レビュー不足か…。
難しいところだ。

http://www.freebsd.org/cgi/query-pr.cgi?pr=109836
0467名無しさん@お腹いっぱい。2009/12/01(火) 20:38:33
>>465
man 3 unsetenv には、
void unsetenv();
って書いてあって、unsetenv()は常に成功する関数になってます><
0468名無しさん@お腹いっぱい。2009/12/01(火) 20:47:58
>>467
intになってるぞ。8.0。
0469名無しさん@お腹いっぱい。2009/12/01(火) 20:49:15
結論

  LD_PRELOADは糞
0470名無しさん@お腹いっぱい。2009/12/01(火) 21:00:26
わかりました、FreeBSD 6.4Rに戻します。
0471名無しさん@お腹いっぱい。2009/12/01(火) 21:12:13
>>466
そうか、この時にはまだ void だったんだ。この後に
int 返すようになってる。

http://www.freebsd.org/cgi/query-pr.cgi?pr=99826
0472名無しさん@お腹いっぱい。2009/12/01(火) 21:18:40
__merge_environで'='がないとEFAULTってのもいささかヘタレすぎのような。
0473名無しさん@お腹いっぱい。2009/12/01(火) 21:30:02
>>469
FreeBSDのLD_*のハンドリングが糞なだけです。
現実逃避せずにこういう糞なコードがまぎれこまないためにどうするかを考えないと。
0474名無しさん@お腹いっぱい。2009/12/01(火) 21:31:12
char *env[] = {"", "LD_PRELOAD=hoge", NULL};
environment=env;
0475名無しさん@お腹いっぱい。2009/12/01(火) 21:31:24
rtldなんだから、ライブラリによるメモリリークを心配してリストで管理するようになった
stdlibのset/getenvを使う必要ないよね。
rtldではenvironを直接書き換える従来型のsetenv/getenvを定義して
使うのがいいんじゃなかろうか。
0476名無しさん@お腹いっぱい。2009/12/01(火) 21:34:48
>>473
みんなで現実逃避しようぜ
悪魔だ 悪魔の仕業だ 沈黙のメシアが今起きあがった ギャォ
0477名無しさん@お腹いっぱい。2009/12/01(火) 21:52:04
ttp://gihyo.jp/admin/clip/01/fdt/200912/01
あれ?3.0が出た後も2.x系列はしばらくリリースを続けるんでなかったか?
0478名無しさん@お腹いっぱい。2009/12/01(火) 22:02:41
それ以前に 年が開けてから 2.30にするか3.0にするか議論するとか
どこかで見たんだがもう次は2.30で決まったのか?
後藤君 確認してきたまえ そして報告だ ホウ、レン、ソウ!
0479名無しさん@お腹いっぱい。2009/12/01(火) 22:04:55
2.30が3.0となる予定だったが、遅れて2.32で3.0になることになった。
2.30はそのまま出る。
0480名無しさん@お腹いっぱい。2009/12/01(火) 22:10:23
よろしい! 殊勝な心がけだ 後藤君
今後も励みたまえ
0481名無しさん@お腹いっぱい。2009/12/01(火) 22:28:17
>>474
えっと、environmentじゃなくて environだよね?

環境変数リストの頭に "" があると unsetenv()が "" より後の変数を見落とすってこと?

ちなみにLinuxで試すと >>474 でも unsetenv()は正常動作した。
0482名無しさん@お腹いっぱい。2009/12/01(火) 22:51:57
わかりました、Linuxに戻します
0483名無しさん@お腹いっぱい。2009/12/01(火) 22:55:32
結局8.0は入れちゃっていいの?
0484名無しさん@お腹いっぱい。2009/12/01(火) 23:09:09
早く入れてっ
0485名無しさん@お腹いっぱい。2009/12/01(火) 23:33:47
だめぇ♪
0486名無しさん@お腹いっぱい。2009/12/01(火) 23:52:02
zfsrootにしてる7.2から8.0に上げるには結局LiveCDがいるなあ
0487名無しさん@お腹いっぱい。2009/12/02(水) 04:29:22
みんな気合が足りんて。
0488名無しさん@お腹いっぱい。2009/12/02(水) 05:19:19
あ、やっとわかったお。
0489名無しさん@お腹いっぱい。2009/12/02(水) 06:48:46
やっぱlibcのバグじゃん。
unsetenv()の方を修正するのがスジじゃないの?
たとえエラー返すにしても、引数変数名のunsetenvは必ず実行するように。
0490名無しさん@お腹いっぱい。2009/12/02(水) 07:57:02
>>489
それを言うならどう直せばいいのかまで書くべき
0491名無しさん@お腹いっぱい。2009/12/02(水) 08:11:17
>>490
書いてるじゃん。日本語読めないのか?

unsetenv()は、たとえ変数名に不正なものがあってエラーになっても、
常に引数変数のunsetは実行する。

または、以前の void unsetenv()の動作に戻し、
互換性のため、戻り値だけ常に0を返すようにしておく。
0492名無しさん@お腹いっぱい。2009/12/02(水) 09:35:43
>>491
あなたが問題の本質がわかってないことはわかりました。
0493名無しさん@お腹いっぱい。2009/12/02(水) 10:23:50
「既存」環境変数に "=" を含まない不正な変数があったからと言って、
unsetenvの動作自体を中断するのは余計な仕様→バグだな。

POSIX(笑)か何かでunsetenv()をint型にするように要請されたとしても、
処理は変えずに黙って return 0;だけ追加しておけば良かったものを。
0494名無しさん@お腹いっぱい。2009/12/02(水) 10:29:44
え?
0495名無しさん@お腹いっぱい。2009/12/02(水) 10:41:11
「"=" を含まない不正な環境リスト」と言って欲しいのか?
0496名無しさん@お腹いっぱい。2009/12/02(水) 10:42:40
はやくなんとかしないと。
0497名無しさん@お腹いっぱい。2009/12/02(水) 10:43:52
unsetenv()だけ FreeBSD 6.x以前のものに差し替えればOK
0498名無しさん@お腹いっぱい。2009/12/02(水) 10:44:12
>>493
修正したのは unsetenv の中じゃないし、
unsetenv で return 0 したら今までの挙動と同じになって
脆弱性消えないだろ? プログラム読めないなら黙ってろ。
0499名無しさん@お腹いっぱい。2009/12/02(水) 10:46:22
やっぱり、昨日からプログラム読みもしないし読めもしないのが偉そうなこと書いてる感じするよねえ
0500名無しさん@お腹いっぱい。2009/12/02(水) 10:47:26
>>498
そうじゃなくて、
6.x以前の void unsetenv() の動作に戻した上で
return 0; するんだよ。

unsetenv()さえ動作すれば、戻り値は本質じゃない。

今の unsetenv()は、>>474 みたいに不正な環境リストに設定された状態で
実行すると、処理を放棄して実際には unsetenvしないことが問題なの。

昔の void unsetenv() なら、>>474 みたいな不正な環境からでも
unsetenv()は強制的に動作する。
■ このスレッドは過去ログ倉庫に格納されています