Fórum Ubuntu CZ/SK
Ostatní => Archiv => Téma založeno: 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ě?
-
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
-
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...
-
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?