Re: root の shell について

From: Tomoaki AOKI <junchoon_at_dec.sakura.ne.jp>
Date: Sat, 25 Oct 2025 14:09:59 UTC
On Sat, 25 Oct 2025 21:11:18 +0900
"Yamada,Kazuo" <yamada@yamarail.net> wrote:

> やまだ@越谷です。
> 
> 何名かの方からコメント頂きましたが。
> 
> 複数環境あるので、ダメ元でちょっと試してみました。
> 
> 
> On Sat, 25 Oct 2025 09:46:14 +0900
> "Yamada,Kazuo" <yamada@yamarail.net> wrote:
> 
> > FreeBSD 13.x から 14.x にアップグレードしたのですが。
> > root の シェル が標準では /bin/csh から /bin/sh に変更されているようです。
> > 
> > アップグレード中に、パスワードファイルの編集画面になり。
> > 選択をする必要があったので、/bin/sh は基本使う事ないので。(使うなら bash 使
> > う)
> > /bin/csh の方にしたのですが。
> > 
> > どちらにするのが正解なんでしょうか?
> 
> freebsd-update でアップグレードを行うと、
> /etc/passwd の編集画面(vipwと同じ様なモノ)が出てきますが。
> これを 14.x の方を単純に選ぶととんでもない事になります。
> 
> パスワードのフィールドがないので、root でログイン出来なくなります。
> su とか sudo でroot権限がある操作出来るようにしておかないと。
> とんでもない事(root権限での操作出来ない)になるので、注意が必要です。
> 
> ログインシェル以前の問題ですね。
> パスワードのフィールドがないのでなんでだろうと思っていたのですが。
> どうもそういう仕様?のようです。
> 
> 14.xを最初からインストールも一度しましたが。
> その場合はrootのログインシェルは /bin/sh になっていました。
> 
> root のログインシェルを /bin/sh にされたい場合は。
> ある程度アップグレードして安定した時点で。
> vipw で修整する方が無難ではないかと。
> 
> -- 
> 0----+----1----+----2----+----3----+----4----+----5----+----6----+----7----#
>       山田  和雄     MailTo:yamada@yamarail.net
>       Yamada Kazuo

青木@名古屋です。

/etc/passwdを編集して処理しようというのは危険です。

何かと混乱が見られがちなのですが、現状では、

・FreeBSDそのものが認証に使用するのは/etc/spwd.db(シャドウパスワード)

・通常編集するのは/etc/master.passwdで、これを基に/usr/sbin/pwd_mkdbで
 /etc/spwd.dbを生成(vipwで操作するとここまで連続して対応)

・/etc/passwdはそれしか見に行かない(行けない)古のプログラムとの
 後方互換性維持のためお情で生成されるようになっている。
 (/usr/sbin/pwd_mkdbの-pオプション)

という状況です。 /etc/master.passwdは/etc/passwdよりフィールド数も
多くなっています。

このあたり、passwd_mkdb(8)とpasswd(5)のman pageによく纏っています。

-- 
青木 知明  [Tomoaki AOKI]    <junchoon@dec.sakura.ne.jp>