Sudo não funciona em chroot

2

Eu gostaria de poder usar o comando sudo em um ambiente chroot.

Eu inicio o chroot da seguinte forma:

chroot /debian-squeeze /bin/bash

Agora estou logado como root no chroot. Eu posso fazer su user para fazer login como um usuário chamado user . Agora, sudo não funciona:

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

Alguns diagnósticos:

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

Como root, posso executar sudo sem erro.

Alguém pode me explicar por que sudo (ou setuid ) não funciona assim?

    
por Matthijs Melissen 10.12.2012 / 01:44

1 resposta

4

Meu palpite é que /debian-squeeze está em um sistema de arquivos separado montado sem defaults ou suid . O kernel irá ignorar o bit setuid nos sistemas de arquivos montados sem suid ( defaults implica suid ). Para corrigir:

mount -o remount,suid /debian-squeeze
    
por 10.12.2012 / 18:54