Os benefícios são (em nenhuma ordem particular):
- o sudo possui logging superior. sudo registra cada comando.
- o sudo permite um controle mais refinado dos grãos. Pode-se configurar o sudo para dar acesso root a alguns, mas não a todos os comandos.
- sudo usa a senha de login. Isso protege a necessidade de fornecer a senha de root (como você faria com o su) e está relacionado ao ponto acima com relação ao controle / acesso mais refinado ao root.
- No Ubuntu, por padrão, a conta root está bloqueada. Isso impede que os crackers façam login (remotamente por meio de ssh) e precisam adivinhar um nome de usuário e uma senha. Se a conta root não estiver bloqueada, como é o caso do su, eles só precisarão quebrar a senha do root.
-
sudo -i
é provavelmente o melhor método para isolar as variáveis ambientais do root do seu usuário. Isso surge de tempos em tempos, mas é moderadamente esotérico. Veja link - algumas pessoas acham que ter que digitar sudo antes de cada comando que desejam executar como root ou ter tempo de sudo permite que eles parem e pensem mais claramente e reduzam seus erros ou executem comandos errados. Se isso ajudar você, isso também seria um benefício.
Provavelmente há mais benefícios, mas esses são os principais, IMHO.
Veja também - link
Para tentar responder a alguns dos seus outros pensamentos:
- Não há nada sobre su ou sudo que impeça a execução de códigos maliciosos, desde que você saiba a senha. Nem é mais seguro ou melhor.
- Crackers podem obter acesso ao shell por meio de vários métodos. Quando você vê "executar código arbitrário" em um aviso de segurança - link - isso significa que um cracker pode executar / bin / bash ou qualquer outro código. Assim, um cracker, através de várias explorações, pode obter acesso ao shell sem saber seu nome de login ou senha. Nem o sudo nem o su ajudam com isso.
- Se um cracker tiver acesso ao shell, poderá causar muitos danos sem acesso root. Por exemplo, o ransomware que criptografa todos os seus dados pessoais.
- Se um cracker tiver acesso shell a uma conta com acesso root, via su ou sudo, o cracker pode obter acesso root por meio de vários métodos além do escopo desta discussão. Nem o sudo nem o su são superiores a este respeito.
Então, enquanto você observou problemas ou falhas com o sudo, o su tem exatamente as mesmas vulnerabilidades e o su não é superior ao sudo nesses aspectos, IMHO