O link simbólico não funciona como esperado quando muda o usuário

2

O link simbólico não está funcionando, usando o padrão UBUNTU 16 LTS ... Ele mostra "Permissão negada" onde eu esperava obter acesso, não funcionando mesmo depois de chown .

Exemplo 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!
    
por Peter Krauss 11.01.2017 / 17:22

1 resposta

7

Essas ações devem resultar em uma mensagem de erro: Permissão negada . O diretório, /tmp , tem permissões incluindo o bit adesivo. O erro é resultado da configuração do kernel para fs.protected_symlinks .

Para mostrar a configuração, sysctl fs.protected_symlinks . Isso é igual a 1 quando definido. Para desativar temporariamente, o que não é recomendado , sysctl -w fs.protected_symlinks=0 . Para desligar permanentemente, novamente não recomendado , use /etc/sysctl.conf .

Veja patchwork.kernel.org para mais informações.

Para evitar a perda de links, siga os parágrafos de resumo principais nos links simbólicos do hiperlink.

Kees Cook - July 2, 2012, 8:17 p.m.

This adds symlink and hardlink restrictions to the Linux VFS.

Symlinks:

A long-standing class of security issues is the symlink-based time-of-check-time-of-use race, most commonly seen in world-writable directories like /tmp. The common method of exploitation of this flaw is to cross privilege boundaries when following a given symlink (i.e. a root process follows a symlink belonging to another user). For a likely incomplete list of hundreds of examples across the years, please see: http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmp

The solution is to permit symlinks to only be followed when outside a sticky world-writable directory, or when the uid of the symlink and follower match, or when the directory owner matches the symlink's owner.

    
por 11.01.2017 / 17:53