All'improvviso non è possibile eseguire sudo

4

Non ho fatto nulla sul computer tranne Internet per alcuni giorni e improvvisamente quando ho provato a farlo:

$ sudo apt-get update 

Ho ricevuto:

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?

Non ho idea di cosa sia successo, l'ultima volta che ricordo di aver eseguito sudo è stato quando ho eseguito l'aggiornamento.

    
posta InvisibleUn1corn 19.05.2015 - 10:07

1 risposta

3

sudo funziona con un meccanismo chiamato setuid ( Set ID utente o anche chiamato suid ). Se quel bit è impostato su un file eseguibile (come sudo ), l'applicazione viene eseguita sotto le autorizzazioni dell'utente, che è il proprietario di quel file (nel caso di sudo , il proprietario è root utente).

Ciò significa che sudo viene eseguito come root . Fin qui tutto bene. Ma ora nulla ti impedisce di inserire un'unità USB con una shell, che ha il bit setuid impostato. Hai accesso completo alla root! Ecco perché normalmente le unità USB sono montate con l'opzione di montaggio noexec , per impedire l'esecuzione di binari / script su tale dispositivo. Un'altra opzione di mount, se vuoi ancora eseguire i file, è quella menzionata nel messaggio di errore nella tua domanda: nosuid .

Guarda questo estratto della pagina di manuale di montaggio :

[...]
nosuid     Do not allow set-user-identifier or set-group-identifier bits to take effect.
[...]

Con il comando mount , puoi determinare se il tuo filesystem di root è montato con quell'opzione. Scrivi semplicemente:

$ mount

Ora puoi rimontare il filesystem al volo e cambiare le opzioni di mount:

$ mount -n -o remount,suid /

Questo imposta l'opzione suid , che è l'esatto opposto di nosuid .

    
risposta data chaos 19.05.2015 - 11:11

Leggi altre domande sui tag