Fórum Root.cz
Hlavní témata => Desktop => Téma založeno: Pavel 'TIGER' Růžička 09. 04. 2013, 00:12:31
-
Zdravíčko, objevil jsem asi bug v LXDE. Ať dám jakékoliv práva souboru.desktop na ploše LXDE, soubor jde smazat. Může to prosím někdo ověřit? (PCManFM 1.1.0)
-
Já nechci bejt ani za chytrýho, ani za hloupýho, ale jedno z toho teď budu a ptám se:
Pokud jsem vlastníkem, tak je jedno, jaká jsou práva, já ten soubor tak jako tak můžu smazat, nebo ne? Tím pádem by to nebyl bug, ale správné chování.
-
Tady totiž nejde o práva k tomu souboru, ale o práva k adresáři
$ mkdir TEST
$ touch TEST/soubor.txt
$ chmod 000 TEST/soubor.txt
$ echo ahoj > TEST/soubor.txt
bash: TEST/soubor.txt: Operace zamítnuta
$ rm TEST/soubor.txt
rm: smazat proti zápisu chráněný běžný prázdný soubor „TEST/soubor.txt“? y
$ touch TEST/soubor.txt
$ chmod 500 TEST/
$ ls -ld TEST/
dr-x------ 2 kuceraf kuceraf 4096 dub 9 12:27 TEST/
$ rm TEST/soubor.txt
rm: nelze odstranit „TEST/soubor.txt“: Operace zamítnuta
-
Ano, jde o práva k adresáři, pokud hodím práva na celý adresář ~/Desktop tak je dodžuje správně, ale jestli je hodím jen na konkrétní soubor, tak mohou být jakákoliv a neakceptují se. Takže se zeptám jinak, lze udělat v LXDE odkaz na aplikaci tak, aby nemohl být odstraněn, ale zároveň si uživatel mohl své věci umísťovat na plochu? A je to chyba, tak jak se to chová, nebo správné chování? Podle mne je to bug. Měly by být přeci i akceptovaná práva k danému souboru a nejen na složku, ne?
-
Pokud uživatel vlastní adresář ~/Desktop a má na něm právo w pak v něm může cokoliv smazat.
U mě má tento adresář tyto permisson flagy drwxr-xr-x
IMHO se to chová naprosto standardně.
Pokud chcete jiné chování tak adresáři změňte vlastníka:skupinu a nastavte sticky bit a je to podobně jako v /tmp.
Pokud chcete ještě speciálnější chování pak si prostudujte rozšířená práva tedy ACL.
-
Tohle je vlastnost linuxových/posixových adresářů a souborů. Adresář je zvláštní soubor, který obsahuje seznam inodů a jmen souborů.
Inode obsahuje všechno o souboru, kromě jeho názvu a samotných dat. (díky tomu můžeš mít jeden inode napojený ve víc adresářích nebo v jednom pod různými jmény - pevné odkazy)
Z toho vyplývá, že smazání souboru je úpravou adresáře, nikoli souboru - soubor, resp. inode se smaže ve chvíli, kdy na něj už nikdo neodkazuje.
Pokud nechceš, aby uživatel mazal soubory, tak je nedávej do adresářů, které uživateli patří :-)
Maximálně by to desktopové prostředí mohlo zobrazovat nějaké varování - stejně jako rm na příkazové řádce výše - s tím, že mažeš soubor chráněný proti zápisu.
Vždycky se to dá nějak ohackovat, ale podle mého to nedává moc smysl. K čemu to má být?
-
Jeste by se tam ty soubory daly vracet z cronu, treba kazdych 10 minut, coz by uzivatele obzvlaste pekne vytacelo. :-)
-
Jeste by se tam ty soubory daly vracet z cronu, treba kazdych 10 minut, coz by uzivatele obzvlaste pekne vytacelo. :-)
Nebo by ajťák mohl s uživatelem přestat bojovat a mohl by mu pomáhat – dovolit mu si ikony smazat, když chce, a udělat mu skript, který obnoví smazané ikony, pokud by si je smazal omylem.
-
Tohle je vlastnost linuxových/posixových adresářů a souborů. Adresář je zvláštní soubor, který obsahuje seznam inodů a jmen souborů.
Inode obsahuje všechno o souboru, kromě jeho názvu a samotných dat. (díky tomu můžeš mít jeden inode napojený ve víc adresářích nebo v jednom pod různými jmény - pevné odkazy)
Z toho vyplývá, že smazání souboru je úpravou adresáře, nikoli souboru - soubor, resp. inode se smaže ve chvíli, kdy na něj už nikdo neodkazuje.
Pokud nechceš, aby uživatel mazal soubory, tak je nedávej do adresářů, které uživateli patří :-)
Maximálně by to desktopové prostředí mohlo zobrazovat nějaké varování - stejně jako rm na příkazové řádce výše - s tím, že mažeš soubor chráněný proti zápisu.
Vždycky se to dá nějak ohackovat, ale podle mého to nedává moc smysl. K čemu to má být?
Tohle je nakopnutí správným směrem, říkal jsem si, že někde dělám chybu ... chtělo by to méně makat a více spát. ;D
-
Jeste by se tam ty soubory daly vracet z cronu, treba kazdych 10 minut, coz by uzivatele obzvlaste pekne vytacelo. :-)
Nebo by ajťák mohl s uživatelem přestat bojovat a mohl by mu pomáhat – dovolit mu si ikony smazat, když chce, a udělat mu skript, který obnoví smazané ikony, pokud by si je smazal omylem.
Ono nejde o boj s uživatelem, je to spíše o vzájemné pomoci. Než uživateli vysvětlovat, jak obnovit ikony ze skriptu, je jednodušší je udělat nesmazatelné. ;)
-
Každopádně děkuji všem.
-
Ak chces subor urobit nezmazatelny, mas aj nasledujuce moznosti:
1. Pouzit sticky-bit (chmod +t) na adresar, uzivatel nebude vlastnikom daneho adresara, ale bude nan mat pravo zapisu (napriklad aj cez skupinove prava) - uzivatel si bude moct v adresari vytvarat vlastne subory/podadresare, aj ich mazat, ale nebude moct mazat subory vytvorene inym uzivatelom. Pouziva sa to na adresar /tmp. man chmod, sekcia sticky directories
2. Na ext2/3/4 mozes pouzit chattr +i na subor, subor bude nemodifikovatelny a nezmazatelny. Atribut 'i' (ako immutable) moze menit len root, takze uzivatel nedokaze takyto subor zmazat (ani ak vlastni dany adresar i subor - a nedokaze zmazat ani adresar v ktorom sa takyto subor nachadza). man chattr
-
Jasně, mrknu na to, díky.