BSPにて提供されているpasswdコマンドは、busyboxパッケージのAppletとなっており、/bin/busyboxへのリンクとなって
います。
合わせて、リンク先の/bin/busyboxにSETUIDビットが設定されていないため、一般ユーザーでは、自身を含む全
ユーザーのパスワード変更はできないようになっています。
一般ユーザーがパスワードを変更しようとした場合は、以下のエラーとなります。
$ passwd
passwd: must be suid to work properly
一般ユーザに自身のパスワード変更を許可する場合は、以下の設定を行ってください。
注意 :
/bin/busyboxにSETUIDビットを設定した場合、以下のコマンドが一般ユーザーにて使用可能となります。
(BSPにて提供しているbusyboxデフォルト設定にて提供されているコマンド内)
passwd / su
passwdコマンドのみを使用可能としたい場合は、「passwdコマンドのみを許可する場合」を参照し、設定を行ってください。
/bin/busyboxにSETUIDビットを設定
SETUIDビット設定手順
1. root にてログイン
2. /bin/busybox の SETUID ビットを設定
# chmod 4755 /bin/busybox
passwdコマンドのみを許可する場合
busyboxバイナリを2つ用意し、片方にSETUIDビットを設定
busyboxバイナリをコピーして、片側にSETUIDビットを立て、passwdコマンドのみ SETUIDビットを立てた busybox
バイナリへリンクしてください。
設定手順
1. root にてログイン
2. /bin/busybox のコピーを作成
# cd /bin
# cp -a busybox busybox.suid
3. /bin/busybox.suid の SETUID ビットを設定
# chmod 4755 /bin/busybox.suid
4. /sbin/passwd のリンクを作成しなおす
# cd /usr/bin
# rm -f passwd
# ln -s ../../busybox.suid passwd