FreeBSD QandA 151

FreeBSD QandA

Q. root 権限で他のユーザのパスワードを passwd で変更することは可能なのですが、
   一般ユーザが自分で passwd を使ってパスワードを変更しようとすると、
   passwd: error opening database: /etc/pwd.db.: Permission denied
   passwd: /etc/master.passwd: unchanged
   というエラーが発生して書き換えることができません。

A. passwd の所有者が root で、setuid bit は立っていますか?
   (以降の作業は、お使いのバージョンにより異なります。まず、uname -r として
   お使いのバージョンを確認してください)。

   2.2.X の場合:
   正常な状態であれば、
   # cd /usr/bin
   # ls -l passwd
   -r-sr-xr-x  2 root  bin  36864 Jul 22  1998 passwd
   となります。もしこうなっていない場合は、
   # chmod u+s passwd
   と実行して、setuid bit を立てましょう。

   3.X の場合:
   正常な状態であれば、
   # cd /usr/bin
   # ls -ol passwd
   -r-sr-xr-x  2 root  wheel  schg 24976 Jan 17 21:54 passwd
   となります。もしこうなっていない場合は、
   # chflags noschg passwd
   # chmod u+s passwd
   # chflags schg passwd
   と実行して、setuid bit を立てましょう。

   詳しくは、chmod(1)chflags(1) を読んでください。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。