File Chmod per assegnare in modo ricorsivo le stesse autorizzazioni dell'utente


15

Esiste un comando unix per assegnare al gruppo le stesse autorizzazioni dell'utente attualmente in modo ricorsivo file per file per un albero di directory? Vale a dire se un file è scrivibile dall'utente dovrebbe diventare scrivibile in gruppo, altrimenti non dovrebbe essere scrivibile in gruppo e così via.

chmod 

Risposte:


24

Complimenti a Jamessan per averci mostrato g = u. Sul mio sistema, questo sembra funzionare:

chmod -R g=u dir

1
Ciò modifica anche le autorizzazioni delle directory. La domanda originale ha specificato i file.
Jamessan,

@jamessan, quali directory sono.
Mike Graham,

@Mike, solo perché * nix ti consente di trattare praticamente tutto come un file, non significa che le directory in realtà siano file. Anche se si dovesse ammettere che sono uguali, esiste una netta differenza funzionale tra la modifica delle autorizzazioni di tutti i file in un albero di directory e la modifica delle autorizzazioni di tutti i file e directory in un albero di directory.
Jamessan,

Ancora una volta c'è una soluzione semplice al mio problema. Perché non sono sorpreso?
rzetterberg,


0

Non riesco a pensare a un modo semplice per farlo con i comandi esistenti. Forse una sceneggiatura come questa sarebbe di aiuto:

#!/bin/bash

DIR="$1"

find "$DIR" -ls | while read a b perm c d e f g h i file; do
   uperm=${perm:1:3}
   uperm=$(echo "$uperm" | tr -d '-')
   chmod g=$uperm "$file"
done

Inoltre, tieni presente che alcuni permessi per gli utenti potrebbero non essere applicabili ai gruppi e viceversa.


0

Non so se esiste un comando del genere, ma facendo uso di find e invocandolo alcune volte puoi ottenere
ciò che stai cercando di fare, ad esempio

Per esempio:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;

Il comando precedente attraversa la directory corrente ".", Trova tutti i file che dispongono dell'autorizzazione di scrittura per
l'utente ma non dispone delle autorizzazioni di scrittura per il gruppo e modifica l'autorizzazione di scrittura del gruppo.

Allo stesso modo si utilizza la variante sopra l'invocazione per modificare le autorizzazioni del file per la modalità di lettura ed esecuzione per il gruppo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.