5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

FreeBSD current 思えば遠くへ来たもんだ

1 :名無しさん@お腹いっぱい。:2009/06/05(金) 06:00:09
思えば遠くへ来たもんだ ふるさと離れて16年目
思えば遠くへ来たもんだ この先どこまで行くのやら

>> Shut up and code!!!

前スレは>>2-5あたり


200 :名無しさん@お腹いっぱい。:2011/03/15(火) 13:42:45.17
>>198
特に怪しい環境変数はない。
念のためOpenSSHの方の環境変数を移植してみたけど、現象変わらず。
$ env
USER=x
HOME=/home/x
OLDPWD=/etc/home/x
LOGNAME=x
TERM=xterm
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/x/bin
SHELL=/bin/sh
PWD=/tmp

$ id
uid=1001 gid=1001 groups=1001,0
で同一。

$ fstat -p $$
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W
x sh 6343 root / 2 drwxr-xr-x 512 r
x sh 6343 wd /var 1037 drwxrwxrwt 512 r
x sh 6343 text / 53874 -r-xr-xr-x 114408 r
x sh 6343 0 /dev 56 crw--w---- pts/0 rw
x sh 6343 1 /dev 56 crw--w---- pts/0 rw
x sh 6343 2 /dev 56 crw--w---- pts/0 rw
x sh 6343 10 /dev 56 crw--w---- pts/0 rw
やっぱり(PID以外)同一。

201 :名無しさん@お腹いっぱい。:2011/03/15(火) 14:30:51.08
特権が使える環境でテストすればいいんじゃないかな

202 :名無しさん@お腹いっぱい。:2011/03/15(火) 14:49:04.48
suが入力待ちにでもなってくれればgdbでアタッチできるんだけど、
即終了しちゃうからなあ。
coreサイズ制限しないようにdropbearなおしてみよう。

203 :名無しさん@お腹いっぱい。:2011/03/15(火) 18:00:38.74
原因判明。setlogin(2)してないセッションだとgetlogin(2)がNULLを返し
NULLを返されると思っていないsuがセグメントフォルトを起こす。suのバグ。

・OpenSSHでログインしたセッション:
$ id -p
uid x
groups users wheel

・dropbearでログインしたセッション:
$ id -p
id: getlogin: Unknown error: 0

204 :名無しさん@お腹いっぱい。:2011/03/15(火) 18:02:20.61
訂正
× NULLを返されると思っていないsu
○ NULLを返された時の処理が間抜けなsu

205 :名無しさん@お腹いっぱい。:2011/03/15(火) 18:06:45.38
パッチ
--- /usr/src/usr.bin/su/su.c (revision 219237)
+++ /usr/src/usr.bin/su/su.c (working copy)
@@ -255,8 +255,8 @@
/* get current login name, real uid and shell */
ruid = getuid();
username = getlogin();
- pwd = getpwnam(username);
- if (username == NULL || pwd == NULL || pwd->pw_uid != ruid)
+ if (username == NULL ||
+ (pwd = getpwnam(username)) == NULL || pwd->pw_uid != ruid)
pwd = getpwuid(ruid);
if (pwd == NULL) {
#ifdef USE_BSM_AUDIT


206 :名無しさん@お腹いっぱい。:2011/03/15(火) 18:11:36.19
さっさとsend-prするのが義務だ

207 :名無しさん@お腹いっぱい。:2011/03/15(火) 18:12:56.60
ここがオレのsend-pr先だ。

208 :名無しさん@お腹いっぱい。:2011/03/15(火) 18:39:01.09
そんなこといって、実のところはsend-prするとにちゃんねらーなのがばれるのが
嫌なだけなんだろ?

209 :名無しさん@お腹いっぱい。:2011/03/15(火) 18:41:46.00
あったりまえじゃん。

210 :名無しさん@お腹いっぱい。:2011/03/15(火) 19:03:19.78
捨てアドで適当な偽名で出せよ

211 :名無しさん@お腹いっぱい。:2011/03/15(火) 19:14:11.59
> id: getlogin: Unknown error: 0
これもバグだな。正しくerrno返してない。

212 :名無しさん@お腹いっぱい。:2011/03/15(火) 19:20:05.68
getloginはerrnoセットしないんじゃない?

213 :名無しさん@お腹いっぱい。:2011/03/15(火) 19:27:18.26
errnoセットしないシステムコールってアリか?

214 :名無しさん@お腹いっぱい。:2011/03/15(火) 19:28:33.27
>>205って何が変わったの?と思ったが、usernameのNULLチェックが先に来るからってことか。
分かりにくいw

215 :名無しさん@お腹いっぱい。:2011/03/15(火) 19:38:41.01
条件の多い if 文の中で副作用のある式を書くのは良くないな

216 :名無しさん@お腹いっぱい。:2011/03/15(火) 19:44:02.11
>>215
別にそれ自体は問題ないだろ。
ただし、>>205はpwdがセットされないケースがあるのに、
それを参照してる点でダメ。


217 :名無しさん@お腹いっぱい。:2011/03/15(火) 19:49:32.62
参照してる?どこで?

218 :名無しさん@お腹いっぱい。:2011/03/15(火) 19:56:55.18
>>216
いや、NULLならショートカットで問題ないでしょ。

元のコードを見ずに書くけど、getpwnam(username)の前でpwdにNULLが入ってるなら
if (username == NULL)
pwd = getpwnam(username);
if (pwd == NULL || pwd->pw_uid != ruid)
pwd = getpwuid(ruid);
の方が見やすくない?

というか、変数の宣言だけして初期化もせずいきなり比較するようなコードが結構あって泣いたw

219 :名無しさん@お腹いっぱい。:2011/03/15(火) 20:00:00.39
username != NULLだったw

220 :名無しさん@お腹いっぱい。:2011/03/15(火) 20:37:54.35
>>216のような初心者には理解しにくいコードだからダメと言いたいのだろうか?
申し開きがあるなら聞いてやろう。w

>>218
> getpwnam(username)の前でpwdにNULLが入ってるなら
入ってないからダメ。

221 :名無しさん@お腹いっぱい。:2011/03/15(火) 21:19:06.80
215, 217を書いたのは自分だけど、実際勘違いを生じさせてるコードは保守性の面から
良いコードとは言えないぜ。

あ、>>216がわなびーちゃんだって言いたいだけならべつにいいんだけどw
自分もそう思うしさwww

222 :名無しさん@お腹いっぱい。:2011/03/15(火) 21:19:09.78
>>220
> >>216 ?


223 :216:2011/03/15(火) 21:24:44.23
usernameがNULLになったらpwdは未初期化で最後のifがどうなるかわかんないだろ?
それともcurrentだと初期化してるの?
それとも>>205だと問題なく動くのに俺が読み間違えてるの?

224 :名無しさん@お腹いっぱい。:2011/03/15(火) 21:34:11.01
>>223
うん、お前がヘッポコなだけ。>>205で問題なく動く。

usernameがNULLならusername == NULLでifが成立する(それ以降は評価しない)から
pwd = getpwuid(ruid);が実行される。

お前、罰ゲームでsend-prな。

225 :216:2011/03/15(火) 21:37:25.94
OTZ
へっぽこですた

226 :216:2011/03/15(火) 21:43:56.83
罰ゲームちゃんとやるから、current以外でも落ちるかどうか検証求む

227 :名無しさん@お腹いっぱい。:2011/03/15(火) 21:55:18.40
>>220
でも元のコードがpwdに必ずgetpwnam(username)で値を突っ込むんだから、
pwdをNULLで初期化しておいてusernameがNULLでないならgetpwnamして
その結果がNULLだったり->pw_uidとruidが不一致だったりしたらgetpwuidの方が
見やすくない?

pwd = NULL;
if (username != NULL)
pwd = getpwnam(username);
if (pwd == NULL || pwd->pw_uid != ruid)
pwd = getpwuid(ruid);

228 :名無しさん@お腹いっぱい。:2011/03/15(火) 22:31:45.16
最小な変更
- pwd = getpwnam(username);
+ pwd = getpwnam(username ? username : ":");

229 :名無しさん@お腹いっぱい。:2011/03/15(火) 23:36:50.22
8.1だと問題なくsuできるが何が違うんだ?idでもちゃんと名前が出る。
/bin/sh, /bin/cshで確認。

230 :名無しさん@お腹いっぱい。:2011/03/16(水) 00:16:48.60
dropbearのsshdにログインした?

231 :名無しさん@お腹いっぱい。:2011/03/16(水) 00:20:01.41
/etc/rc.d/sshd stop
/usr/local/etc/rc.d/dropbear start
してからログインしたよ。
dropbearのプロセスが増えていったのも確認した。

232 :名無しさん@お腹いっぱい。:2011/03/16(水) 00:32:52.54
currentはutmpまわりの扱い変わったから、その影響かな。
w(1)では誰もログインしてねーや。

233 :名無しさん@お腹いっぱい。:2011/03/17(木) 03:45:36.32
>>228
NULLがfalseって保証がなかったりすることもあるから!= NULLであることを確認した方が良いよね。

234 :名無しさん@お腹いっぱい。:2011/03/17(木) 08:07:18.17
>>223
えっ?

235 :名無しさん@お腹いっぱい。:2011/03/17(木) 08:08:19.73
× >>223
>>233
えっ?

236 :名無しさん@お腹いっぱい。:2011/04/03(日) 04:57:59.07
currentってどこを見ると実装予定の新機能や今の開発方針とかがわかるの?

237 :名無しさん@お腹いっぱい。:2011/04/06(水) 15:01:52.05
今のcurrentでGNU binutils-2.17/GCC-4.2.2 とLLVM-2.9/clang-2.9だと
どっちがどのくらいいいかわかるベンチマーク結果とかどっかにありますか?

238 :名無しさん@お腹いっぱい。:2011/04/06(水) 16:12:39.52
svn2cvs 止まってる?
csup で r220346 以降が落とせなくてしょんぼり

239 :名無しさん@お腹いっぱい。:2011/04/06(水) 22:08:53.87
まだ直った形跡が無い…
mergemaster が面倒になるし鯖にいらん負荷かけるから Subversion でチェックアウトしたくないんだがなぁ

240 :名無しさん@お腹いっぱい。:2011/04/06(水) 22:10:55.26
解決策: いらん負荷かけたくない鯖でcurrentを使わない

241 :名無しさん@お腹いっぱい。:2011/04/06(水) 22:20:09.10
>>240
いや、 svn.freebsd.org の負荷の話

242 :名無しさん@お腹いっぱい。:2011/04/06(水) 22:31:12.99
うちでは、最初の一発めの負荷は許してもらうってことで、
数年前からこんなエントリーが crontab に
29 * * * * root /usr/local/bin/svnsync sync file:///home/SVN/freebsd/base >/dev/null 2>&1


243 :名無しさん@お腹いっぱい。:2011/04/06(水) 23:41:46.91
たまにsvnレポジトリのスナップショットをtarballにして配ってるじゃん。
あれを始点にすればいいんじゃないのかな。やったことないけど。

244 :名無しさん@お腹いっぱい。:2011/04/07(木) 00:02:05.81
え、鯖にガシガシ負荷を掛けてほしいからSubversionへ移行したんじゃないの?
cvsup-mirrorのミラー鯖はSubversionへ移行したころから更新されたファイルはすべて
チェックサムの不一致でファイル全体をダウンロードし直すという超負荷掛けまくり状態になってるよ?

245 :名無しさん@お腹いっぱい。:2011/04/07(木) 00:59:52.38
負荷が問題になってくるならそのうちsvn-mirror.jp.freebsd.orgとか出来るんじゃない

246 :名無しさん@お腹いっぱい。:2011/04/07(木) 01:41:24.64
できるころにはsvn2gitとかでgitに移行してそうな気がするけどな。

247 :名無しさん@お腹いっぱい。:2011/04/07(木) 11:04:59.43
今様子見たら直ってた
まあ、2度あることは3度あるもんだし、引き続き Subversion 使ったアップデートのあり方も考えとくとするよ

そういや、本家の wiki にこんな情報が
ttp://wiki.FreeBSD.org/SubversionPrimer

248 :名無しさん@お腹いっぱい。:2011/04/07(木) 11:28:55.69
svk は開発者がもうあんまりやる気ないぜ、って言っちゃってるからなあ。
自分は hgsubversion で hg に変換して使ってる。

249 :名無しさん@お腹いっぱい。:2011/04/09(土) 03:06:32.91
>>237
前者はCeleron 1.7GHzでやって、後者はCore i3 530でやってるが後者が速い

250 :名無しさん@お腹いっぱい。:2011/04/09(土) 04:12:41.38
うふふ

251 :名無しさん@お腹いっぱい。:2011/04/10(日) 11:21:02.81
>>247
ttp://twitter.com/clusteradm
ここによると、2度どころか結構ひんぱんに svn2cvs って止まってるっぽい
そろそろ git-svn あたりに切り替える潮時かなぁ、気が進まんけど

252 :名無しさん@お腹いっぱい。:2011/04/10(日) 11:43:50.46
いまなおしているところですからBY simon

253 :名無しさん@お腹いっぱい。:2011/04/11(月) 21:54:31.92
>>237
こんなの?
http://blog.vx.sk/archives/25-FreeBSD-Compiler-Benchmark-gcc-base-vs-gcc-ports-vs-clang.html


254 :名無しさん@お腹いっぱい。:2011/04/25(月) 05:24:50.74
Switch the GENERIC kernels for all architectures to the new CAM-based ATA stack.
http://lists.freebsd.org/pipermail/svn-src-head/2011-April/026801.html

ついに危険なアップデートキター

> If you are using ATA device names in /etc/fstab or other places,
> make sure to update them respectively
> (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY,
> where 'Y's are the sequential numbers for each type in order of detection,
> unless configured otherwise with tunables, see cam(4)
> ).
>
Yを決める検知順がよくわからんが、惨事が起きそうw
使ってるのがSCSIなdaXなら関係ない話だよな。

255 :名無しさん@お腹いっぱい。:2011/04/25(月) 07:57:36.52
プリフィックスが変わるだけじゃなくて、ユニットナンバーも変わるから厄介だよね。
すでにadaに移行してるから高みの見物しよう。

256 :名無しさん@お腹いっぱい。:2011/04/25(月) 08:48:16.86
rootパーティションをzfs化してる人も大丈夫かな。
Port Multiplierを使いたいからCAM化したときに、案の定ユニットNo.の設定をしくじった
もんなぁ。インストールしたままリカバリ方法知らないって人は悲鳴がでそうな気がする。


257 :名無しさん@お腹いっぱい。:2011/04/25(月) 09:18:33.35
ラベルとかid使って指定してれば問題ない

258 :名無しさん@お腹いっぱい。:2011/04/25(月) 09:41:08.33
じゃ、ラベルとかid使って指定する手順書作ってやれよ。

259 :名無しさん@お腹いっぱい。:2011/04/25(月) 09:52:09.24
current使ってることを自覚させるにはいい機会。
手順書が必要になるような奴がcurrent使うなよw

260 :名無しさん@お腹いっぱい。:2011/04/25(月) 10:09:07.46
まあその手順書はいずれもうちょっと広い範囲で必要になる可能性もあるし

261 :名無しさん@お腹いっぱい。:2011/04/25(月) 10:31:50.93
glabel 使えばすっきり分かりやすいぜ!

glabel 最強!


って思ってたんだが dd if=/dev/da0 of=/dev/da1 とかで
本体を量産・微調整しようとするとハマるね…

zfsroot もそうだけど


262 :名無しさん@お腹いっぱい。:2011/04/25(月) 11:44:39.27
>>260
「9.0Rはクリーンインストール推奨」なんてことにはなりそう。

263 :名無しさん@お腹いっぱい。:2011/04/25(月) 11:51:45.03
>>261のような特殊なのは自己解決するとして>>257が手順書作れば
大部分は大丈夫だろう。

264 :名無しさん@お腹いっぱい。:2011/04/25(月) 17:27:04.24
えっ?
dd (dd_rescue でも cstream でも)で量産ってやらない?

もちろん一般向け手順書じゃーないとは思うけどさ


265 :名無しさん@お腹いっぱい。:2011/04/27(水) 03:30:47.64
>>254からちょっと安全になったようだ
http://lists.freebsd.org/pipermail/svn-src-head/2011-April/026903.html
> - see cam(4)).
> + see cam(4)). There will be symbolic links created in /dev/ to map
> + old adX devices to the respective adaY. They should provide basic
> + compatibility for file systems mounting in most cases, but they do
> + not support old user-level APIs and do not have respective providers
> + in GEOM. Consider using updated management tools with new device names.
> +
> + It is possible to load devices ahci, ata, siis and mvs as modules,
> + but option ATA_CAM should remain in kernel configuration to make ata
> + module work as CAM driver supporting legacy ATA controllers. Device ata
> + still can be used in modular fashion (atacore + ...). Modules atadisk
> + and atapi* are not used and won't affect operation in ATA_CAM mode.

266 :名無しさん@お腹いっぱい。:2011/04/27(水) 15:05:56.18
ATA_CAM の /dev/adX はあたかも古いドライバが動いてるようにはふるまってくれないぞってことっすね


267 :名無しさん@お腹いっぱい。:2011/05/08(日) 23:47:25.45
zfsでsuiddir使えないの?

268 :名無しさん@お腹いっぱい。:2011/05/13(金) 16:20:52.44
ZFS v31がくるまでPEFS使ってみようかと考えてるんだけどどんなもんだろうね

269 :名無しさん@お腹いっぱい。:2011/05/21(土) 10:45:02.75
かなりよい

270 :名無しさん@お腹いっぱい。:2011/05/21(土) 12:02:07.51
来たもんだ

271 :名無しさん@お腹いっぱい。:2011/05/21(土) 17:54:00.15
NetBSDとFreeBSDの二択ならどっちを選ぶ。
理由もつけてね。


272 :名無しさん@お腹いっぱい。:2011/05/21(土) 17:57:55.91
初心者なのでPC-BSDを選んでみる

273 :名無しさん@お腹いっぱい。:2011/05/21(土) 21:16:03.82
currentで冒険したいってことなら4.4

274 :名無しさん@お腹いっぱい。:2011/05/21(土) 21:31:42.51
はわわー

275 :名無しさん@お腹いっぱい。:2011/05/23(月) 23:13:21.44
CAM based ATA にしたら k3b 使えなくなるね。
一月程使ってみたけど、以前の ata ドライバに戻してしまいました。
解決方法はあります?

276 :名無しさん@お腹いっぱい。:2011/05/23(月) 23:24:19.30
>>275
素朴な疑問
k3b ってなに?


277 :名無しさん@お腹いっぱい。:2011/05/24(火) 00:50:31.54
その文字列を2ch/ウェブブラウザの書き込み欄でなく、
検索サイトの入力欄に打ち込んだほうが答えを得るのに早いと思うが。

278 :名無しさん@お腹いっぱい。:2011/05/24(火) 00:54:40.69
k3bをCAM based ATAに対応させればいいんじゃね?

279 :名無しさん@お腹いっぱい。:2011/06/24(金) 22:37:56.37
current安定しすぎて書くことが無い
もうcurrentがstableでOkey Dokey

280 :名無しさん@お腹いっぱい。:2011/06/25(土) 00:25:20.38
マジなの?

281 :名無しさん@お腹いっぱい。:2011/06/25(土) 01:26:19.14
acpicaのアップデート直後にリブート出来なくなることがよくある。

282 :名無しさん@お腹いっぱい。:2011/06/25(土) 10:58:29.06
まあ変わっていくものですしおすし

283 :名無しさん@お腹いっぱい。:2011/06/25(土) 11:25:15.33
時寿司に遅し

284 :名無しさん@お腹いっぱい。:2011/06/25(土) 13:43:51.28
時蕎麦が5枚目?

285 :名無しさん@お腹いっぱい。:2011/07/09(土) 23:33:23.05
ちょっと前だけど、普段の生活には問題なかったけど、msdosfs を mount できなくなってるときがあった。

286 :名無しさん@お腹いっぱい。:2011/07/19(火) 21:00:13.60
どうせHEADなんだからもっと新しいPF入れればいいのに。
文法変わるのは嫌なのにinet6 fragment reassembleが出来ないのは構わないのか。

287 :名無しさん@お腹いっぱい。:2011/07/20(水) 09:51:56.10
まったくねえ。
中途半端なバージョンを入れて9の途中からいろいろ変わります、
なんて間抜けなことになりそう。
変えるなら9の頭からってことでちょうどいいのに。

ipfwは気分次第で後先考えず機能追加してるから嫌なんだよ。

288 :名無しさん@お腹いっぱい。:2011/08/15(月) 20:24:34.82
scpででかいファイル送るとサイズが小さくなる。 これかな? 8/3に戻してみよう。

r224638 | brooks | 2011-08-04 04:14:22 +0900 (Thu, 04 Aug 2011) | 24 lines

Add support for dynamically adjusted buffers to allow the full use of
the bandwidth of long fat pipes (i.e. 100Mbps+ trans-oceanic or
trans-continental links). Bandwidth-delay products up to 64MB are
supported.


289 :名無しさん@お腹いっぱい。:2011/08/15(月) 22:13:40.53
>>288
やっぱり、これが原因っぽい。200M超のファイルを7個送って全部サイズが小さくなった。
8/3に戻したら、1個目転送成功。

290 :名無しさん@お腹いっぱい。:2011/09/24(土) 15:13:39.35
WITH_ICONV=1ってもう使い物になるのかな?
これまでlibiconv使ってた環境でも使えるんだろうか。

291 :名無しさん@お腹いっぱい。:2011/09/24(土) 15:25:20.34
気にならない程度には使えてる。libiconvは併用って形になるよ。

292 :名無しさん@お腹いっぱい。:2011/09/25(日) 16:48:21.88
じゃあ試してみよう。どうもありがとう。
併用ってのはportsが参照するのはlibiconvのままってことかな。

293 :名無しさん@お腹いっぱい。:2011/09/26(月) 13:21:57.22
10.0-CURRENT キター!

294 :名無しさん@お腹いっぱい。:2011/09/26(月) 22:49:38.16
>>293
字面的に不安定感がこの上ないなwww

295 :名無しさん@お腹いっぱい。:2011/10/04(火) 00:36:41.68
sysinstall さんさようなら

296 :名無しさん@お腹いっぱい。:2011/10/04(火) 06:21:14.29
物言いがついておりますな

297 :名無しさん@お腹いっぱい。:2011/10/18(火) 08:16:32.53
昨日installkernel,mergemaster,installworldしたらresolv.confが空になった。

298 :名無しさん@お腹いっぱい。:2011/10/18(火) 15:53:28.21
>>297
resolfconf(8)しても駄目?

299 :名無しさん@お腹いっぱい。:2011/10/18(火) 19:30:43.01
手で書き直したから問題ないけど、最初は何が起こったかわからなかったぜ。

300 :名無しさん@お腹いっぱい。:2011/10/19(水) 01:25:38.33
UNAME_r設定してportsの再コンパイル中。

66 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)