Sudoはchrootでは動作しません

Sudoはchrootでは動作しません

chroot環境でsudoコマンドを使用できるようにしたいです。

次のようにchrootを起動します。

chroot /debian-squeeze /bin/bash

これでchrootにrootとしてログインしました。su userというユーザーとしてログインできますuser。今はsudo動作しません。

user@HD:/$ sudo ls
sudo: must be setuid root

いくつかの診断:

user@HD:/$ which sudo
/usr/bin/sudo

user@HD:/$ ls -al /usr/bin/sudo
-rwsr-xr-x 2 root root 143884 May 23  2012 /usr/bin/sudo

user@HD:/$ ls -aln /usr/bin/sudo
-rwsr-xr-x 2 0 0 143884 May 23  2012 /usr/bin/sudo

root@HD:/# cat /etc/sudoers
Defaults    env_reset
root    ALL=(ALL) ALL
user ALL=(ALL) ALL
%sudo ALL=(ALL) ALL

ルートとしてsudoエラーなく実行できます。

sudo(またはsetuid)が機能しない理由を説明できる人はいますか?

ベストアンサー1

私の考えでは、これが/debian-squeezeorなしでマウントされた別のファイルシステムにあるようです。カーネルは、アンマウントされたファイルシステムのsetuidビット(暗黙的)を無視します。この問題を解決するには:defaultssuidsuiddefaultssuid

mount -o remount,suid /debian-squeeze

おすすめ記事