我希望能够在 chroot 环境中使用 sudo 命令。
我按如下方式启动 chroot:
chroot /debian-squeeze /bin/bash
现在我以 root 身份登录 chroot。我可以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
作为 root,我可以sudo
毫无错误地执行。
谁能解释一下为什么sudo
(或setuid
) 不起作用?
答案1
我的猜测是,这是在没有或 的/debian-squeeze
情况下安装的单独文件系统上。内核将忽略未安装的文件系统上的 setuid 位(暗示)。要解决这个问题:defaults
suid
suid
defaults
suid
mount -o remount,suid /debian-squeeze