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-squeeze
orなしでマウントされた別のファイルシステムにあるようです。カーネルは、アンマウントされたファイルシステムのsetuidビット(暗黙的)を無視します。この問題を解決するには:defaults
suid
suid
defaults
suid
mount -o remount,suid /debian-squeeze