Le lien symbolique ne fonctionne pas, en utilisant la norme UBUNTU 16 LTS… Il affiche "Autorisation refusée" là où je m'attendais à avoir accès, ne fonctionne pas même après chown
.
Exemple complet :
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!
Réponse acceptée :
Ces actions doivent entraîner un message d'erreur :Autorisation refusée . Le répertoire, /tmp
, a des autorisations, y compris le sticky bit. L'erreur est le résultat de la configuration du noyau pour fs.protected_symlinks
.
Pour afficher le paramètre, sysctl fs.protected_symlinks
. Cela équivaut à 1
lorsqu'il est défini. Pour désactiver temporairement, ce qui n'est pas recommandé , sysctl -w fs.protected_symlinks=0
. Pour éteindre définitivement, ce qui est à nouveau déconseillé , utilisez /etc/sysctl.conf
.
Voir patchwork.kernel.org pour plus d'informations.
Pour éviter la pourriture des liens, les premiers paragraphes de résumé sur les liens symboliques du lien hypertexte suivent.
Kees Cook – 2 juillet 2012, 20h17
Cela ajoute des restrictions de liens symboliques et de liens physiques au VFS Linux.
Liens symboliques :
Une classe de problèmes de sécurité de longue date est la course
basée sur les liens symboliques entre l'heure de vérification et l'heure d'utilisation, que l'on rencontre le plus souvent dans les répertoires inscriptibles par le monde
comme /tmp. La méthode courante d'exploitation de cette faille
consiste à franchir les frontières de privilèges en suivant un lien symbolique donné (c'est-à-dire qu'un
processus racine suit un lien symbolique appartenant à un autre utilisateur). Pour une liste probablement
incomplète de centaines d'exemples au fil des ans, veuillez consulter :http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmpLa solution consiste à permettre aux liens symboliques d'être suivis uniquement lorsqu'ils se trouvent en dehors d'un répertoire accessible en écriture par le monde, ou lorsque l'uid du lien symbolique et
le suiveur correspondent, ou lorsque le propriétaire du répertoire correspond au propriétaire du lien symbolique.