Fórum Ubuntu CZ/SK

Ostatní => Archiv => Téma založeno: klasyc 13 Června 2007, 22:32:53

Název: Jak funguje SUID?
Přispěvatel: klasyc 13 Června 2007, 22:32:53
Ahoj,

mám skript, který mi přes mysql vygeneruje výpis z databáze a uloží ho někam do /tmp. Vlastníkem souboru s výpisem je pak mysql.mysql a práva jsou -rw-rw-rw. Potom ale potřebuji, aby mi skript soubor smazal (když už není potřeba a chci generovat nový). Na to ale nemám právo, protože skript nespouštím jako uživatel mysql.

Vím, že existuje možnost přidat skriptu SUID - chmod u+s soubr a nastavit mu jako vlastníka uživatele a skupinu mysql - chown mysql.mysq soubor. Jestli jsem to dobře pochopil, tak by se pak skript měl tvářit, jako že běží pod uživatelem mysql a měl by mít právo smazat soubr. Bohužel nemá. Co dělám špatně?
Název: Jak funguje SUID?
Přispěvatel: Jakub Lucký 13 Června 2007, 23:02:58
Suid je myslím jen na roota (ale fakt jen tipuju)

Pokud má ten výsledný soubor práva -rw-rw-rw, pak určitě jde i smazat
Název: Jak funguje SUID?
Přispěvatel: klasyc 14 Června 2007, 18:44:45
No to jsem taky zkoušel. Dal jsem skriptu jako vlastníka roota a u+s i g+s, ale stejně mi pořád ten soubor nejde smazat...
Název: Jak funguje SUID?
Přispěvatel: klasyc 14 Června 2007, 20:33:40
Aha, už jsem na to přišel: SUID funguje tak, jak si myslím. Problém byl v tom, že jsem špatně chápal práva v linuxu (což je po několika letech užívání docela trapas...). Pro ty, co jsou na stejném omylu, jako já: Pokud máte na právo právo w (zápis), tak do něj můžete sice psát (na to suid spolehlivě funguje), ale nemůžete ho smazat: Práva vytvořit a smazat soubor vycházejí z oprávnění adresáře, ve kterém jsou soubory - tj. adresář musí mít právo w. Jinak i když má skript suid roota, tak práva jako root rozhodně nemá... To je asi nějaká bezpečnostní ochrana. Nevíte někdo?