[ pisac @ 09.01.2018. 20:44 ] @
Pera:doktor i Laza:doktor mogu da pišu i brišu u folderu "doktori" jer su prava na tom folderu root:doktor 774. Međutim Pera želi da zaštiti jedan određeni fajl od Laze da ovaj ne može da ga obriše ili izmeni. Kako će to da uradi?

ili isto pitanje u drugačijem (širem) obliku:

Kako da brisanje nekog fajla ograničnim samo na pripadnike grupe kojoj pripada taj fajl?

Problem sa stiki-bitom je što se postavlja na celom folderu i lepljiv je na vlasnika, tako da sve fajlove u tom folderu može da briše samo vlasnik tih fajlova, a meni treba da sve fajlove može da briše samo pripadnik grupe koja je vlasnik fajlova. Recimo Pera koji je član grupe Ludaci postavi fajl /tmp/obrišimeakomožeš, i onda Laza koji je takođe član grupe Ludaci treba da ima pravo da obriše /tmp/obrišimeakomožeš, ali Žika koji je član grupe Pametnjakovići ne sme da ima pravo da obriše taj fajl.

Ručno setovanje grupe na određenom fajlu od strane vlasnika bi bilo standardna stvar, a brisanje od strane onih koji nisu pripadnici grupe bi trebalo biti zabranjeno.

[Ovu poruku je menjao pisac dana 10.01.2018. u 01:50 GMT+1]
[ Tpojka @ 09.01.2018. 20:59 ] @
in a special way so only the file's owner, the directory's owner, or root user can rename or delete the file

Tako da vjerujem da je tek chown organizacijom 0774 ili slično moguće postaviti za grupu.
[ pisac @ 09.01.2018. 22:02 ] @
Nemoguće je, stiki-bit deluje samo na vlasnika a ne na grupu, a chmod 774 nema nikakvog efekta jer grupa i dalje ne može da obriše fajl. Probao sam pre nego što sam postavio pitanje.
[ Tpojka @ 09.01.2018. 22:40 ] @
Iz primjera u prvom postu, je li /tmp direktorijum pripada grupi Ludaci?
[ djoka_l @ 09.01.2018. 23:36 ] @
Da bi ograničio prava brisanja fajla samo na grupu, a oduzeo od vlasnika treba:

1. da fajl ima w na grupi, ali ne i na owner i other
2. da onaj ko briše ima po nekom osnovu w na katalogu u kojem se nalazi fajl, ali ne i vlasnik fajla

Ako oduzmeš vlasniku w na katalog, on ne može ni da napravi fajl u tom katalogu, ali može neko drugi da napravi pa da uradi chown, ako ima prava.

Suvišno je reći da je tvoja ideje besmislena, u smislu da želiš da omogućiš da neko piše u fajl koji ne može da obriše, jer Linux nema posebno razdvojene write i delete privilegije, kao što je na primer imao VMS. To se obilno koristilo na VMSu, da bi se sprečilo slučajno brisanje fajla od strane vlasnika, aii je vlasnik fajla uvek mogao da doda opciju delete naredbe koja bi ignorisala zabranu brisanja.

Uzgred, VMS je imao 4 puta po 4 bita protekcije - RWED, za System, Owner, Group i World (World je kao other na linuxu).
[ djoka_l @ 09.01.2018. 23:54 ] @
Dodatak:
privilegije na linuxu treba posmatrati ne kao 3 puta po 3 bita nego kao 4 puta po 3 bita, s tim da je dodatna grupa suid sgid i sticky.
Ne postoji poseban sticky bit na nivou usera grupe i ostalih, postoji jedan na nivou fajla/kataloga i njegovo značenje je drugačije za exe fajl i katalog.
[ pisac @ 10.01.2018. 00:30 ] @
Citat:
djoka_l:Suvišno je reći da je tvoja ideje besmislena, u smislu da želiš da omogućiš da neko piše u fajl koji ne može da obriše,

Nisi ti to dobro razumeo. A trudio sam se lepo da objasnim u prvom postu. Evo sada drugačije:

Pera:doktor i Laza:doktor mogu da pišu i brišu u folderu "doktori" jer su prava na tom folderu root:doktor 774. Međutim Pera želi da zaštiti jedan određeni fajl od Laze da ovaj ne može da ga obriše ili izmeni. Kako će to da uradi?

P.S. Inače ovaj tvoj citat iako se odnosi na pogrešno shvaćeno pitanje, nije nemoguć. Neko može da piše u fajl a da ne može da ga obriše ako root uradi `chattr +a fajl`
[ djoka_l @ 10.01.2018. 02:16 ] @
Nemam pojma šta pitaš. Da li Pera hoće da zaštiti svoj fajl od Laze, ili Lazin od Laze.
Da li si koristio ACL na Linuxu za fine-grain prava nad fajlovima?
Zašto ne bi koristio hard linkove ili simboličke linkove nad deljenim fajlovima, pa da svako može da obriše link u svom katalogu, ako baš hoće, a da fajlove držiš na nekom bezbednom mestu?
Sve mi se čini da si zamislio da teraš vodu uzbrdo i da praviš neku vrstu DMSa samo koristeći linuxov low-level pristup privilegijama nad fajlovima.
[ pisac @ 10.01.2018. 03:12 ] @
Ne postoji "zašto ne bi ..." kao opcija, već postoji samo zajednički folder u koji članovi grupe spuštaju svoje fajlove, i svi drugi članovi grupe treba da mogu da ih menjaju ili brišu, sem ukoliko neko ne odluči da zaštiti neki svoj fajl od drugih.

Da zaštiti fajl od čitanja i upisivanja može pomoću chmod 600, ali od brisanja ne može. Pitanje je kako zaštiti i od brisanja.

acl nisam koristio.
[ Branimir Maksimovic @ 10.01.2018. 04:49 ] @
Pa stavi `chattr +a dir`, na taj nacin mozes da menjas i dodajes fajlove u diru ali ne mozes da ih brises.
[ pisac @ 10.01.2018. 21:10 ] @
Cilj je da vlasnik može da zaštiti samo neke određene fajlove u folderu od brisanja (od čitanja već može da zaštiti), a svi ostali fajlovi treba da budu slobodni za pisanje/brisanje. To ne može sa chattr +a
To bi se lako rešilo kada bi se stiki-bit foldera lepio na grupu, pa vlasnik fajla samo promeni grupu na tom fajlu, ali stiki-bit se lepi samo za vlasnika tako da se ne može primeniti.

Koliko vidim ovde nema konkretnih rešenja, sem što je uzgred pomenut neki acl koji ja nisam nikada ni koristio niti znam da li uopšte može to što mi treba.
[ djoka_l @ 11.01.2018. 02:41 ] @
ACL, ako fajl sistem podržava, može da definiše prava pristupa na pojedinačnog usera. Ili na grupu.
Opet je pitanje, ko će da održava privilegije, pravi nove grupe, ako treba pojedinačno da dodeljuješ ili oduzimaš pravo na pojedinačnog usera ili da smišljaš grupe.

https://wiki.debian.org/Permissions
(pogledaj poglavlje 6)
[ pisac @ 15.01.2018. 05:42 ] @
Ma džaba acl, pogledao sam i zaključio da je to samo ubacivanje dodatnih korisnika i grupa na određenoj fajlu ili folderu, a da nije dodavanje novih mogućnosti/zabrana na postojeća prava.

Više od decenije se ne bavim Windowsom, ali se sećam da su tamo prava pristupa drastično bolje odrađena nego na linuxu, i da bi ovaj problem verovatno bio rešen u roku od 5 minuta. Ponekad poželim da se vratim na Windows samo zbog tih prava pristupa i zbog mogućnosti instalacije mnogo godina starih programa (što Linux ne može da proguta).