Depois de tentar todas as sugestões que me foram dadas, A única maneira era Reinstalar o Ubuntu e é isso que tenho que fazer Finalmente.
Estou enfrentando um problema. Quando tento fazer sudo
no meu terminal, obtenho:
sudo: must be setuid root
Eu pesquisei o problema e fiz as sugestões, como definir a permissão do sudo, mas eles já estavam no estado requerido. Não consigo descobrir qual pode ser o problema. Por favor ajude.
Obrigado
Saída de mount
:
/dev/sda8 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda6 on /home type ext4 (rw)
/dev/sda7 on /var type ext4 (rw)
/home/incaendo/.Private on /home/incaendo type ecryptfs (ecryptfs_check_dev_ruid,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs,ecryptfs_sig=b746275454680798,ecryptfs_fnek_sig=2164f6a8d7aa74c7)
gvfs-fuse-daemon on /home/incaendo/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=incaendo)
Depois de tentar todas as sugestões que me foram dadas, A única maneira era Reinstalar o Ubuntu e é isso que tenho que fazer Finalmente.
Reinstalando o pacote sudo usando
pkexec apt-get --reinstall install sudo
irá definir o sinalizador setuid do sudo. Se isso falhar, tente reinstalá-lo usando o gerenciador de pacotes gráfico ou aptitude
. Se isso falhar, ajuste manualmente o bit setuid do sudo:
pkexec chmod u+s /usr/bin/sudo
Se isso falhar também com o erro "pkexec: deve ser root setuid" , verifique se o sistema de arquivos que contém /usr/bin
não foi montado acidentalmente com o conjunto de opções nosuid
. Examine a saída de mount
.
Se este não for o caso, então verifique se qualquer binário em /usr/bin
tem seu setuid bit set, usando:
find /usr/bin -perm 4755
Isso deve listar pelo menos passwd
, sudo
e os gostos. Se não há nenhum, então certamente um raio cósmico perdido chutou esses bits setuid (ou talvez este fosse você, afinal, com um excesso de zelo chmod -s *
porque há rumores de que setuid é ruim?)
De qualquer forma, primeiro você terá que restabelecer seus direitos de sudo. Eu descrevi a maneira de fazer isso em uma resposta separada a essa pergunta. Uma vez que você os tenha, reinstale todos os pacotes contendo um binário setuid ou chmod each binary manualmente, como mostrado no topo desta resposta.
Infelizmente, como a resposta a outra pergunta indica, não existe uma maneira fácil de descobrir quais binários no Ubuntu estão instalados setuid root.
Aqui está, para referência, a lista em uma quase intocada 12.04. Nomes de pacotes à esquerda, binários à direita do cólon:
$ find {/usr,}/bin -perm 4755 | xargs dpkg -S
passwd: /usr/bin/chsh
iputils-tracepath: /usr/bin/traceroute6.iputils
mtr-tiny: /usr/bin/mtr
passwd: /usr/bin/gpasswd
sudo: /usr/bin/sudoedit
login: /usr/bin/newgrp
passwd: /usr/bin/chfn
sudo: /usr/bin/sudo
passwd: /usr/bin/passwd
login: /bin/su
iputils-ping: /bin/ping
mount: /bin/umount
mount: /bin/mount
fuse: /bin/fusermount
iputils-ping: /bin/ping6
O problema que o OP tem é que todos os binários-raiz do setuid em /usr/bin
de alguma forma perderam seu bit setuid. Isso causa o problema de inicialização da configuração do bit setuid novamente em /usr/bin/sudo
sem poder usar sudo
. Aqui está como fazer exatamente isso:
Reinicie e no menu do Grub, selecione a opção "modo de recuperação".
Quando o menu de recuperação aparecer, selecione "root" para soltar em um shell de root.
Remontar o sistema de arquivos raiz para ser gravável:
# mount -o remount,rw /
Defina o bit setuid em sudo e pkexec:
# chmod u+s /usr/bin/sudo /usr/bin/pkexec
Saia do modo de recuperação e continue a inicialização regular.
Tags sudo