La clonazione di autorizzazioni di una cartella in un'altra cartella
-
19-09-2019 - |
Domanda
Ci sono modi in OS X per clonare i permessi di una cartella ad un'altra. Giusto per essere chiari, io non voglio copiare l'intera cartella, solo i permessi e poi disporli su un'altra cartella. Credo che questo tipo di cosa potrebbe essere raggiunto su Linux / UNIX utilizzando i comandi setfacl / getfacl, ma io sono sicuro su come fare questo con OS X.
Grazie
Soluzione
Testato su Mac OS X v10.5.7, in bash:
chown $(stat -f%u:%g "$srcdir") "$dstdir" # Copy owner and group
chmod $(stat -f%Mp%Lp "$srcdir") "$dstdir" # Copy the mode bits
(ls -lde "$srcdir" | tail +2 | sed 's/^ [0-9]*: //'; echo) | chmod -E "$dstdir" # Copy the ACL
Note: Queste operazioni (in particolare la modifica di proprietà.) Sono suscettibili di richiedere l'accesso di root; cospargere con sudo
per i migliori risultati. Inoltre, il comando echo
dispari nell'ultima riga è lì per impedire un errore se srcdir non ha nessun accessi ACL allegati (chmod -E
può far fronte a righe vuote, ma non un ingresso completamente vuota).
Altri suggerimenti
Quello che ho finito per fare è stato la creazione di un metodo C Obiettivo (Stavo pensando di utilizzare questo in un'applicazione Cocoa comunque) che trova i permessi di un file utilizzando uno script perl, quindi usa chmod / chown per applicare tali autorizzazioni.