Re: Rekurzivni chmod

Kaminar Kaminar at seznam.cz
Sun Sep 26 12:15:43 CEST 2010


Diky za reakci na muj dotaz.

> > mam takovou zacatecnickou otazku, kterou bych se chtel jen ujistit, ze
> > mi neco neuniklo.
> 
>   ^-- Rychlejsie, ako napisat do fora, bolo asi vyskusat to. Ale
> povedzme, ze nebola prave poruke moznost vyskusat to. :-)

Asi jsem svuj dotaz prve nenapsal dostatecne srozumitelne. Slo o
splneni daneho zadani rekurzivnim pouzitim POUZE prikazu chmod.
Kdybych se o tom chtel presvedcit pokusem, tak by to znamenalo
vyzkouset pravdepodobne nekonecne mnozstvi pokusu. :)

Podle me nelze daneho zadani dosahnout za pouziti vyhradne prikazu
chmod bez prav roota nebo bez pouziti dalsich nastroju, napr. find ci
ridicich struktur shellu. Nicmene jsem na Internetu nalezl nekolik
ruznych prikladu postupu, ktere by toho pry mely dosahnout. Podle mych
znalosti to nebylo mozne, coz se mi take potvrdilo, kdyz jsem tyto
postupy zkusil. Pro jistotu jsem je zkusil i na Linuxu, jehoz chmod se
chova odlisne od chmodu z FreeBSD. Tyto nefunkcni priklady z Internetu
me ale privedly na ciste teoreticky dotaz, zda preci jen neni neco
takoveho mozne, nebot je to pomerne casty prakticky problem. Napriklad
pri kopirovani obsahu CD/DVD disku s Joliet rozsirenim ISO 9660.

Kdyz jsem na to narazil, tak bych se pri te prilezitosti zeptal,
jestli neexistuje na FreeBSD moznost primontovat CD/DVD s Joliet, tak
aby obycejne soubory nemely prava "x".


> > V adresari adr bude adresarova struktura, ve ktere budou mit vsechny
> > soubory i adresare prava 777 vcetne adresare adr. Cilem je zmenit
> > prava vsech obycejnych souboru na 600 a u adresaru na 700. Lze toho
> > dosahnout pouze za pomoci prikazu "chmod -R ... adr" bez pouziti
> > rootovskych prav?
> 
>   ^-- Otazka sa nezmienuje, kto je vlastnikom suborov. Prava moze
> zmenit vlastnik alebo root.

To jsem zapomnel zduraznit. Menit prava souboru bude jejich vlastnik.


> Chmod samotny asi pouzit nepojde, lebo -R nerozlisuje subory a
> adresare. Takze to pojde na dva kroky:

Chmod -R sice nerozlisuje obycejne soubory od adresaru, ale velke "X"
tuto diferencni vlastnost ma.

Jedine co me napada, je me zadani vyresit pomoci chmod tak, ze v
druhem kroku jsou nutna prava roota.

$ chmod -R u-x,go= adr
# chmod -R u+X adr


> find /path/to/adr -type f -print0 | xargs -0 chmod 600
> 
> find /path/to/adr -type d -print0 | xargs -0 chmod 700

Ano, toto je asi obecne nejefektivnejsi reseni. Ja bych ale asi pouzil
variantu s -exec

$ find adr -type ... -exec chmod ...

A proto me to neda se nezeptat, jak se co do efektivnosti budou lisit
pristupy find s -exec a find + xargs?


> Cele mi to priapada ako workaround na nejaky upload. Ak je tomu tak,
> neslo by to riesit priamo konfiguraciou prislusneho demona ci
> nastaveniami konta pouzivatela, pod ktorym demon bezi? Inak povedane -
> je lepsie opisat problem, ako podsuvat riesenie.

K tomuto problemu me zavedlo kopirovani obsahu CD/DVD disku s Joliet
rozsirenim ISO 9660 a zminky na Internetu, ze to jde. Takze je to
ciste teoreticky dotaz pro me studijni uspokojeni, ale prakticke
opodstatneni to ma take. :)

Karel


More information about the Users-l mailing list