FreeBSD QandA 151
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 まで
お知らせください。