2015-12-15 13 views
7

:Impossibile straziare sudo; riporta che UID effettivo è diverso da zero comando

[email protected] ~/work/lean $ sudo ls 
content_shell.pak leanote libgcrypt.so.11 libnotify.so.4 __MACOSX  resources 
icudtl.dat  leanote.png libnode.so locales  natives_blob.bin snapshot_blob.bin 

più tempo è right.but a volte è molto lento. così lo stracchio.

comando:

[email protected] ~/work/lean $ strace sudo ls 
execve("/usr/bin/sudo", ["sudo", "ls"], [/* 66 vars */]) = 0 
brk(0)         = 0x7f2b3c423000 
fcntl(0, F_GETFD)      = 0 
fcntl(1, F_GETFD)      = 0 
fcntl(2, F_GETFD)      = 0 
...... 
...... 
...... 
write(2, "sudo: effective uid is not 0, is"..., 140sudo: 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? 
) = 140 
exit_group(1)       = ? 
+++ exited with 1 +++ 

altre informazioni:

bigxu-ThinkPad-T410 lean # ls /etc/sudoers -alht 
-r--r----- 1 root root 745 2月 11 2014 /etc/sudoers 
bigxu-ThinkPad-T410 lean # ls /usr/bin/sudo -alht 
-rwsr-xr-x 1 root root 152K 12月 14 21:13 /usr/bin/sudo 
bigxu-ThinkPad-T410 lean # df `which sudo` 
Filesystem  1K-blocks Used Available Use% Mounted on 
/dev/sdb1  67153528 7502092 56217148 12% 
+0

Benvenuti in StackOverflow. Questa è una domanda equa ma un po 'fuori tema per questo sito perché si tratta più del supporto per uno strumento specifico (elevazione dei privilegi usando sudo) che della programmazione. Potresti avere più fortuna su serverfault.com o superuser.com. –

+0

@PauloScardine, penso che ci sia un argomento da attuare per l'attualità in quanto si tratta di uno strumento di debug ('strace', qui, ma la stessa cosa succederebbe con' gdb') modificando il comportamento del programma che si intende osservare . –

+0

@CharlesDuffy: abbastanza giusto, hai assolutamente ragione. –

risposta

8

Per motivi di sicurezza, il bit setuid e ptrace (utilizzato per eseguire i binari in un debugger) non può essere entrambi onorati allo stesso tempo. La mancata applicazione di questa restrizione in passato ha portato a CVE-2001-1384.

Di conseguenza, qualsiasi sistema operativo progettato con un occhio alla sicurezza smetterà di onorare ptrace sull'esecuzione di un binario setuid, o non riuscirà a onorare il bit setuid quando è in uso ptrace.

Su Linux, si consideri invece l'utilizzo di Sysdig, che, essendo in grado di visualizzare solo ma non modificare il comportamento, non comporta gli stessi rischi.

+0

grazie mille^_^ –

+0

Grazie @ charles-duffy molto. Potresti espandere un po 'la tua risposta collegandoti alla documentazione ufficiale o al codice sorgente in cui "il bit setuid non è onorato per i binari sotto ptrace"? –

+0

@DanielLe, hmm. R'ing TFS per il kernel corrente (serie 4.5), i codepath attuali lo fanno in modo opposto, onorando setuid ma disattivando ptrace. [Al contrario, su MacOS, la disabilitazione di setuid quando ptrace è in uso è esplicitamente documentata nella pagina man]. Indipendentemente dalla direzione in cui un determinato sistema operativo lo fa, abbiamo l'effetto finale che gdb non può essere utilizzato efficacemente in combinazione con il bit setuid e il rischio di bug come CVE-2001-1384 in assenza di tale restrizione. –

Problemi correlati