Opravneni na adresare - dotaz

Alexandr Malusek malusek na hroch.ujf.cas.cz
Pondělí Únor 12 15:07:29 CET 2001


Blasko na vuje.sk (Blasko Marek) writes:

> > Prava u adresaru zmente na 755 (drwxr-xr-x). Neni-li u adresare x-bit,
> > coz je pripad 644 (drw-r--r--), pak do nej nemuzete vstoupit (detaily
> > najdete u popisu systemoveho volani stat()). Je to vlastnost, nikoliv
> > chyba - nejak se s tim smirte ;-).
> 
> vstupit sa da ale nemozte ich listovat. v nejakej zaciatocnickej
> prirucke som to cital.

Je to naopak - obsah takoveho adresare muzete vypsat, ale nemuzete do
nej vstoupit. Kdybyste si radsi precetl stat(2) nez zacatecnicke
prirucky, udelal byste lepe ;-).

> teda dir ./adresar neprejde

To je ptakovina:
$ ls -ld d1
drw-r--r--   2 malusek  malusek      4096 Feb 12 14:39 d1
$ /bin/ls d1   # Vypis obsahu projde.
s1

> ake ./adresar/a.out spustit pojde.

To je take ptakovina:
$ d1/s1
bash: d1/s1: Permission denied  # Tam ulozene programy spoustet nelze

V "man stat" to mate napsane v 1. odstavci:

       These  functions  return  information  about the specified
       file.  You do not need any access rights to  the  file  to
       get  this  information  but  you need search rights to all
       directories named in the path leading to the file.

Aby system mohl spustit program, musi zjistit jeho pristupova prava.
Ta se zjistuji volanim stat(). No a stat() zafunguje jen v pripade, ze
mate x-bit u vsech adresaru v ceste (v man page tomu rikaji search
rights).

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux