Não fiz nada no computador, exceto a Internet, por alguns dias e, de repente, quando tentei:
$ sudo apt-get update
Eu tenho:
sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set
or an NFS file system without root privileges?
Não faço ideia do que aconteceu, a última vez que me lembro de correr sudo
foi quando atualizei.
command-line
mount
permissions
sudo
root
InvisibleUn1corn
fonte
fonte
mount
sua pergunta, por favor?Respostas:
sudo
funciona com um mecanismo chamado setuid ( Definir ID do usuário ou também chamado suid ). Se esse bit estiver definido em um arquivo executável (comosudo
), o aplicativo será executado sob as permissões do usuário, que é o proprietário desse arquivo (no caso desudo
, o proprietário é oroot
usuário).Isso significa que sudo é executado como
root
. Por enquanto, tudo bem. Mas agora nada impede que você insira uma unidade USB com um shell, que tenha o bit setuid definido. Você tem acesso root completo! É por isso que normalmente as unidades USB são montadas com a opção mountnoexec
, para impedir a execução de binários / scripts em um dispositivo desse tipo. Outra opção de montagem, se você ainda quiser executar arquivos, é aquele que é mencionado na mensagem de erro na sua pergunta:nosuid
.Veja o trecho da página do manual de montagem :
Com o
mount
comando, você pode determinar se o seu sistema de arquivos raiz está montado com essa opção. Basta digitar:Agora você pode remontar o sistema de arquivos on-the-fly e alterar as opções de montagem:
Isso define a
suid
opção, que é exatamente o oposto denosuid
.fonte