Danas slučajno na jednom serveru naleteh na problem jer servis koji se izvršavao pod non-root UID-om nije mogao da pristupi nekim fajlovima koji su bili u njegovom vlasništvu. Naravno, problem je bilo trivijalno ispraviti, ali naterao me je da stavim prst na čelo. Svedeno na prost primer, evo šta je u pitanju:
Naravno, gledano sa strane kako je sistem dozvola implementiran (iskodiran), jasno je zašto se ovo dešava (sistem prvo proverava da li si vlasnik fajla, i ako jesi, ne gleda dozvole za grupu i ostale, već primenjuje dozvole za vlasnika), ali moje pitanje je: da li bi trebalo da tako bude? Da li je ovo ponašanje koje bi korisnik trebalo da očekuje od Juniks sistema?
P.S. Probano na Linuxu i FreeBSD-ju, verovatno je tako na svim Juniksima.
$ ls -ld dir
drw-r-xr-x 2 random users 4096 Mar 31 03:32 dir
$ cd dir
cd: dir: Permission denied
$ chmod u+x dir
$ cd dir
$ ls -l
total 4
----r--r-- 1 random users 5 Mar 31 03:32 fajl
$ cat fajl
cat: fajl: Permission denied
$
drw-r-xr-x 2 random users 4096 Mar 31 03:32 dir
$ cd dir
cd: dir: Permission denied
$ chmod u+x dir
$ cd dir
$ ls -l
total 4
----r--r-- 1 random users 5 Mar 31 03:32 fajl
$ cat fajl
cat: fajl: Permission denied
$
Naravno, gledano sa strane kako je sistem dozvola implementiran (iskodiran), jasno je zašto se ovo dešava (sistem prvo proverava da li si vlasnik fajla, i ako jesi, ne gleda dozvole za grupu i ostale, već primenjuje dozvole za vlasnika), ali moje pitanje je: da li bi trebalo da tako bude? Da li je ovo ponašanje koje bi korisnik trebalo da očekuje od Juniks sistema?
P.S. Probano na Linuxu i FreeBSD-ju, verovatno je tako na svim Juniksima.
Potpis
int rand(void);
Those who do not understand Unix are condemned to reinvent it, poorly.
Upali lampicu — koristi Jabber!
Those who do not understand Unix are condemned to reinvent it, poorly.
Upali lampicu — koristi Jabber!