Eskejpovani pro su

Ladislav Vaiz spam na nagano.cz
Středa Říjen 17 20:30:25 CEST 2012


> Tím násobením deseti minut počtem strojů chcete říct, že to každý 
> stroj stahuje zvlášť po jednom sdíleném pomalém spojení?

Ano. Jde to udělat rozumněji, když tam mohou být různě staré debiany a 
ubunt- sakryš jak zní množné číslo? :-)

>
> A kdo zadá heslo?

Uživatel, který spustil program. Program má jako dědictví z minulosti 
dumb terminál, tak v něm.

>
>>>  Samotné předání parametru by zase až tak složité být nemělo, mělo by
>>>  stačit něco jako:   su -c 'dpkg -i "$0"' root "$1"
>> Nechápu tam $1.
>
> Pochopil jsem zadání tak, že chcete dovnitř dostat hodnotu $1.
> Pokud máte to jméno souboru jinde, třeba v $xyz, tak tam dejte něco 
> jiného, třeba "$xyz".

Potřebuju ho dostat jako argument dpkg -i, nebyl mi jasný ten poslední 
parametr příkazu su.

>
>> V aktuální verzi by musel modifikovat skript mezi uložením a 
>> spuštěním (předpokládám, že za běhu už to nemá vliv) a dovnitř 
>> sudo/su něco přidat. To snad nehrozí.
>
> To byste se divil, co všechno hrozí. Dokonce i modifikace skriptu za 
> běhu je možná, i když konkrétní detaily záleží na tom, jakým způsobem 
> přesně shell soubor čte.
>
>>>  Druhá otázka je, do jaké míry lze věřit samotnému dpkg, [...]
>> To je na zodpovědnosti dpkg, s tím si musí poradit samo.
>
> Když myslíte...

Trochu jsem se nad tím zamyslel a hezkou útočnou proměnnou může být 
třeba $PATH nebo $LD_*, pokud se su/sudo zavolá nešikovně.

Proti čemu se vlastně bráníme? Proti rootovi ne, ten by to dělal 
maximálně ze sportu, když už root je. Proti stejnému uživateli asi taky 
ne, ten může odposlechnout heslo například přes strace. Takže proti 
jinému neprivilegovanému uživateli?


L.



Další informace o konferenci Linux