Collegamento simbolico non funzionante, utilizzando lo standard UBUNTU 16 LTS... Mostra "Autorizzazione negata" dove mi aspettavo di ottenere l'accesso, non funzionante anche dopo chown
.
Esempio completo:
sudo rm /tmp/file.txt # if exist, remove
cd ~
sudo chmod 666 data/file.txt
ls -l data/file.txt # "-rw-rw-rw-" as expected
more data/file.txt # working fine
sudo ln -sf $PWD/data/file.txt /tmp/file.txt # fine
ls -l /tmp/file.txt # "lrwxrwxrwx", /tmp/file.txt -> /home/thisUser/file.txt
more /tmp/file.txt # fine
sudo chown -h postgres:postgres /tmp/file.txt
sudo more /tmp/file.txt # NOT WORK! but its is sudo! and 666!
Risposta accettata:
Queste azioni dovrebbero risultare con un messaggio di errore:Autorizzazione negata . La directory, /tmp
, dispone di autorizzazioni incluso il bit appiccicoso. L'errore è il risultato della configurazione del kernel per fs.protected_symlinks
.
Per mostrare l'impostazione, sysctl fs.protected_symlinks
. Questo equivale a 1
quando impostato. Per disattivare temporaneamente, cosa non consigliata , sysctl -w fs.protected_symlinks=0
. Per disattivare in modo permanente, che è ancora una volta sconsigliato , usa /etc/sysctl.conf
.
Vedere patchwork.kernel.org per ulteriori informazioni.
Per evitare la putrefazione dei collegamenti, seguono i principali paragrafi di riepilogo sui collegamenti simbolici dal collegamento ipertestuale.
Kees Cook – 2 luglio 2012, 20:17
Questo aggiunge restrizioni per collegamenti simbolici e hardlink al VFS Linux.
Collegamenti simbolici:
Una classe di problemi di sicurezza di vecchia data è la corsa basata sui collegamenti simbolici
time-of-check-time-of-use, più comunemente vista nelle directory scrivibili
come /tmp. Il metodo comune di sfruttamento di questo difetto
consiste nell'attraversare i confini dei privilegi quando si segue un determinato collegamento simbolico (cioè un processo di root
segue un collegamento simbolico appartenente a un altro utente). Per un probabile
elenco incompleto di centinaia di esempi nel corso degli anni, vedere:http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmp
La soluzione consiste nel consentire ai collegamenti simbolici di essere seguiti solo all'esterno di
una directory appiccicosa scrivibile da tutto il mondo, o quando l'uid del collegamento simbolico e
follower corrispondono o quando il proprietario della directory corrisponde al proprietario del collegamento simbolico.