Portál AbcLinuxu, 19. července 2025 16:14
ALL ALL=(ALL) NOPASSWD: SETENV: ALLSice sem to necet, ale objev takoveto "chyby" mi pride dost ujetej
sudoedit
s určitými právy, pak lze se stejnými právy spustit jakýkoli spustitelný soubor, který se jmenuje stejně. Takže by to mělo fungovat i s UID 0.
Opravdu to funguje, právě jsem si to vyzkoušel:
1. Přidal jsem do sudoers
řádek
mike ALL = sudoedit /etc/hosts
2. Vytvořil jsem ve svém domácím adresáři skript, který spustí id
.
3. Zkusil jsem ho spustit přes sudo:
mike@lion:~> sudo ./sudoedit /etc/hosts mike's password: uid=0(root) gid=0(root) skupiny=0(root)
sudoers
nedal a pokud ano, tak si následky plně zaslouží. Že tím umožní komukoli spustit cokoli pod rootem, by totiž byla jeho chyba, protože chování sudo je v takovém případě plně v souladu s dokumentací. To, co uvádím já, je naprosto přirozené využití sudoedit
a skutečnost, že sudo umožní spustit něco jiného, než má, je chyba programu.
mike ALL = sudoedit /etc/hostsby pricetnej admin do sudoers nedal... (/usr/bin/sudoers by to imho naprosto jednoduse resilo).
sudoers
nikdy neviděl jinde než v /etc
a kromě toho, že nevidím důvod dávat konfigurační soubory do adresáře, který je určen pro programy, nenapadá mne ani důvod, proč by to mělo něco řešit.
sudoers
a ve skutečnosti myslíte sudoedit
. Takže si, prosím, přečtěte dokumentaci. Podle té je sudoedit
je speciální symbol, který znamená něco jiného než spouštění programu. Pokud povolíte pseudopříkaz sudoedit
s nějakým argumentem, tak tím umožníte uživateli editovat konkrétní soubor jakoby pod rootem (resp. jiným cílovým uživatelem) tím, že sudo
ve skutečnosti spustí editor na jeho kopii pod normálním uživatelem a po skončení přepíše původní soubor (podobně jako to dělá třeba vipw
nebo visudo
). Příkaz sudoedit
je pak obvykle link na sudo
, který existuje jen proto, aby bylo kromě sudo -e
psát také sudoedit
. Uvedení /usr/bin/sudoedit
by bylo něco jiného, i když jako částečná náhražka by to asi fungovat mohlo.
Uvedení /usr/bin/sudoedit by bylo něco jiného, i když jako částečná náhražka by to asi fungovat mohlo.Bylo by to stejny, a bylo by to reseni. Nicmene podle toho co pisete to skutecne chyba v sudo je (a dost lamerska).
sudoedit
" (což je speciální symbol, ne jméno souboru nebo cesta k němu) a to nemáte.
Díky ní je při vhodné konfiguraci možné spustit libovolný kód s právy roota.
A to jako má být něco pozitivního??? Viz např. http://www.e-ott.info/2008/02/29/rozdil-mezi-diky-kvuli-apod.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.