GNU/Linux >> Tutoriels Linux >  >> Linux

Le lien symbolique ne fonctionne pas comme prévu lors du changement d'utilisateur ?

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=/tmp

La 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.


Linux
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Ssh ne fonctionne pas à partir d'un ordinateur spécifique ?

  3. Comment systemd-tmpfiles nettoie /tmp/ ou /var/tmp (remplacement de tmpwatch) dans CentOS / RHEL 7

  4. erreur ldconfig :n'est pas un lien symbolique

  5. Erreur dans phpMyAdmin après la mise à jour vers la v4.8.0 :Le $cfg['TempDir'] (./tmp/) n'est pas accessible

Pourquoi mon lien symbolique ne fonctionne-t-il pas ?

Comment définir des autorisations de fichiers spécifiques lors de la redirection de la sortie ?

echo ou print /dev/stdin /dev/stdout /dev/stderr

Comment changer /tmp par défaut en /home/user/tmp

Différence et utilisation correcte pour /tmp et /var/tmp

La liaison symbolique Linux ne fonctionne pas comme prévu