Re: root の shell について
- Reply: kh : "Re: root $B$N(B shell $B$K$D$$$F(B"
- In reply to: kh : "Re: root $B$N(B shell $B$K$D$$$F(B"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 25 Oct 2025 02:30:52 UTC
On Sat, 25 Oct 2025 10:41:59 +0900 kh <kh@mogami.com> wrote: > > FreeBSD 13.x から 14.x にアップグレードしたのですが。 > > root の シェル が標準では /bin/csh から /bin/sh に変更 > > POSIX (IEEE Std 1003.1) に合わせることにしたのではないで > しょうか? > > 平林 浩一 青木@名古屋です。 POSIXといえば、shに関して個人的にはMandatoryで規定して欲しい ことがあります。 ・コマンドラインからだろうとgettyからだろうとshebangからだろうと、 /bin/shとして起動された場合はPOSIXで規定されていない動作を一切 しない ということです。 これが強制されてくれればLinuxで公開されている スクリプト(何らかのソフトウェアに含まれるものも含む)で shebangは#!/bin/shなのにFreeBSDで(外部コマンドの有無や非互換は 別として)正常に動かないというportsメンテナ泣かせの事態が無く なるのが期待できるからです。 ※新規portsとしてPRが登録されたもので「動かない」「ビルドに失敗する」 という報告が出てきて、蓋を開けてみたらパッチを登録した人がbashを 使っていたというオチをみかけた記憶があります。 確か、bashに 依存させてshebangfixを使って直していたかと。 要は、スクリプト内でBashの拡張機能を使用したければ明示的に #!/bin/bashなり#!/opt/bin/bashなりを指定する必要が生じて くれるので、コード全体を読み込んだり動かしてみたりしなくても 1行目で特定できます。 ※FreeBSDでもハードリンクなりで/bin/ashを用意して挙動を分ける 必要が生じそうですが。 -- 青木 知明 [Tomoaki AOKI] <junchoon@dec.sakura.ne.jp>