[Tech] Concorso chmod
Szymon Stefanek
pragma@firenze.linux.it
Ven 23 Feb 2007 04:46:30 CET
On Thursday 22 February 2007 22:24, Leonardo Boselli wrote:
> concorso (senza premi in denaro o natura):
> il più elegante script che:
> data una directory o un inseme di directory (con wildcard)
> a tutte le sottodirectory e i file presenti se già non presenti dia al
> gruppo le permission date dal comando AND quelle dell'owner, e a all
> quelle del gruppo AND gruppo.
> per intendersi se un file ha rwxr-xr--
> e do come parametro 766 mi diventa 770 e se lo ripeto 776.
> se detti 755 mi diverrebbe 755 e li si ferma ...
Forse non ho capito bene, ma non mi tornano del tutto gli esempi.
Attuale: 754 rwxr-xr--
Parametro: 766 rwxrw-rw-
Se devo dare al gruppo "owner attuale AND owner parametro" (rwx and rwx = rwx)
e ad all "gruppo attuale AND gruppo parametro" ottengo (r-x and rw- = r--)
Risultato: 774 rwxrwxr--
Se ripeto con parametro 766 ottengo 776 (e qui ok).
Con parametro 755 (rwxr-xr-x) ottengo invece 775 che rimane a oltranza.
Insomma, se gli esempi son leggermente errati ma ho capito bene quello
che vuoi allora:
find /dir | perl -e 'while(<>){ chomp; $o=(stat)[2] & 0777; $p=0775; \
chmod (($o & 0700) | (($p >> 3) & ($o >> 3))), $_; }'
dovrebbe risolvere il tuo problema.
Il parametro lo devi passare alla variabile $p (che volendo si potrebbe
pure far sparire...)
Includere questa riga in uno script di shell e passare
la directory e i permessi come parametri è lasciato al lettore come
esercizio :D
--
Szymon Stefanek
------------------------------------------------------------------------------
-
- Will design spacecraft for food.
-
------------------------------------------------------------------------------
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome: non disponibile
Tipo: application/pgp-signature
Dimensione: 189 bytes
Descrizione: non disponibile
URL: <http://lists.linux.it/pipermail/flug-tech/attachments/20070223/75381e54/attachment.pgp>
Maggiori informazioni sulla lista
flug-tech