sudo funciona com um mecanismo chamado setuid ( Set ID do usuário , ou também chamado de suid ). Se esse bit estiver definido em um arquivo executável (como sudo ), o aplicativo será executado sob as permissões do usuário, que é o proprietário desse arquivo (no caso de sudo , o proprietário é o root usuário).
Isso significa que o sudo é executado como root . Por enquanto, tudo bem. Mas, agora, nada impede que você insira uma unidade USB com um shell nela, 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 de montagem noexec , para evitar a execução de binários / scripts em tal dispositivo. Outra opção de montagem, se você ainda deseja executar arquivos, é aquela mencionada na mensagem de erro em sua pergunta: nosuid .
Veja o excerto da página de manual de montagem :
[...] nosuid Do not allow set-user-identifier or set-group-identifier bits to take effect. [...]
Com o comando mount , você pode determinar se o sistema de arquivos raiz está montado com essa opção. Basta digitar:
$ mount
Agora você pode remontar o sistema de arquivos on-the-fly e alterar as opções de montagem:
$ mount -n -o remount,suid /
Isso define a opção suid , que é exatamente o oposto de nosuid .