Articoli con tag comandi
chmod ricorsivo solo directory o solo su file
Scritto da bubbakk in sistemista il 12 gennaio 2010
Problema
Voglio attivare, in tutte le cartelle e relative sottocartelle, il permesso di esecuzione per il gruppo, mentre voglio rendere tutti i file leggibili da tutti ma modificabili solo da me.
Risoluzione
Dal momento che il comando chmod con l’opzione per la risorsività -R applica i permessi indistintamente sia ai file che alle directory (*), devo fare diversamente se non voglio essere costretto a fare le cose “a mano”.
Le due possbilità sono:
- utilizzare il comando find
- utilizzare il permesso X (maiuscolo) invece del minuscolo nel comando chmod
1. Utilizzare find
Con il comando:
find . -type d -exec chmod g+x {} \;
si chiede al find una ricerca ricorsiva a partire dalla directory corrente (ad iniziare da . ‘punto’) e, al risultato, si applica il comando and chmod g+x alle sole directory. Similmente, per i file, si può utilizzare
find . -type f -exec chmod 644 {} \;
2. Utilizzare il permesso X per chmod
Il comando
chmod g+x -R .
che conosciamo ed utilizziamo, setta i permessi di esecuzione a tutti i file e a tutte le cartelle a partire dal quella corrente. Invece il comando
chmod g+X -R .
imposta il bit del permesso di esecuzione corrispondente al gruppo solo per le cartelle (e anche ai file il cui permesso originale ha il permesso di l’esecuzione). Perciò, eseguendo 2 comandi consecutivamente otteniamo il risultato da noi cercato:
chmod 644 -R .;chmod g+X -R .
Fonti: Movabletripe , Peterbe e ManPagez
() nel mondo Unix-like, anche le directory sono dei file: “Una directory è un file contenente una tabella che elenca i file contenuti nella directory stessa”.






