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. :-)
Citace od: JardaP . kdy 09. 04. 2013, 16:38:01
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.
Citace od: Franta. kdy 09. 04. 2013, 16:32:18
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
Citace od: Franta. kdy 09. 04. 2013, 17:03:23
Citace od: JardaP . kdy 09. 04. 2013, 16:38:01
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.