GNU/Linux >> Znalost Linux >  >> Linux

Symbolický odkaz při změně uživatele nefunguje podle očekávání?

Symbolický odkaz nefunguje, používá standardní UBUNTU 16 LTS… Ukazuje „Oprávnění odepřeno“, kde jsem očekával, že získám přístup, nefunguje ani po chown .

Úplný příklad:

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!

Přijatá odpověď:

Výsledkem těchto akcí by měla být chybová zpráva:Oprávnění odepřeno . Adresář /tmp , má oprávnění včetně lepivého bitu. Chyba je důsledkem konfigurace jádra pro fs.protected_symlinks .

Chcete-li zobrazit nastavení, sysctl fs.protected_symlinks . To se rovná 1 při nastavení. Dočasně deaktivovat, což se nedoporučuje , sysctl -w fs.protected_symlinks=0 . Chcete-li trvale vypnout, což se opět nedoporučuje , použijte /etc/sysctl.conf .

Více informací najdete na patchwork.kernel.org.

Aby se předešlo hnilobě odkazů, následují úvodní souhrnné odstavce na symbolických odkazech z hypertextového odkazu.

Kees Cook – 2. července 2012, 20:17

To přidává omezení symbolických a pevných odkazů do Linux VFS.

Symbolické odkazy:

Dlouhotrvající třída bezpečnostních problémů je závod založený na symbolických odkazech
time-of-check-time-of-use, který se nejčastěji vyskytuje ve světově zapisovatelných
adresářích, jako je /tmp. Obvyklou metodou využití této chyby
je překročení hranic oprávnění při sledování daného symbolického odkazu (tj.
kořenový proces následuje symbolický odkaz patřící jinému uživateli). Pravděpodobně
neúplný seznam stovek příkladů v průběhu let naleznete na:http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmp

Řešením je povolit, aby byly symbolické odkazy sledovány pouze v případě, že jste mimo
adresář s pevným zápisem do světa, nebo když se uid symbolického odkazu a
sledujícího shoduje, nebo když vlastník adresáře odpovídá vlastníkovi symbolického odkazu.


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Ssh nefunguje z jednoho konkrétního počítače?

  3. Jak systemd-tmpfiles vyčistí /tmp/ nebo /var/tmp (náhrada tmpwatch) v CentOS / RHEL 7

  1. CentOS/RHEL:Přípojný bod /tmp se po přidání do /etc/fstab nepřipojí automaticky

  2. symbolický odkaz:najít všechny soubory, které odkazují na tento soubor

  3. Chyba ldconfig:není symbolický odkaz

  1. Proč můj symbolický odkaz vytváří soubor a ne složku?

  2. Proč můj symbolický odkaz nefunguje?

  3. Jak přesměrovat výstup příkazu do souboru, když příkaz vyzve uživatele k zadání?