La mayoría de los derivados de Unix pueden copiar ACL de un archivo a otro con:
getfacl filename1 | setfacl -f - filename2
Desafortunadamente, Mac OS X no tiene los comandos getfacl y setfacl, ya que han incorporado el manejo de ACL en chmod. chmod -E acepta una lista de ACL en stdin, pero no he encontrado un comando que escupe ACL en un formato adecuado en stdout. Lo mejor que se me ocurrió es:
ls -led filename1 | tail +2 | sed 's/^ *[0-9][0-9]*: *//' | chmod -E filename2
¿Hay una solución más robusta?
Pregunta adicional: ¿hay una buena manera de hacerlo en Python, sin usar ningún módulo que no se envíe con 10.6?
mac-osx
access-control-list
chmod
MagerValp
fuente
fuente
getfacl
/setfacl
. Muy notable github.com/jvscode/getfacl tiene 10 años y no he podido hacerlo funcionar. serverfault.com/a/303752/104173 parece complicado, y no estoy claro si intenta reemplazar laget/setfacl
funcionalidad. Entiendo que macOS no es una plataforma de servidor, pero aún puede experimentar intrusiones de seguridad. ¿Vale la pena reiniciar esta conversación en apple.stackexchange.com ?Respuestas:
ls -e
Imprima la Lista de control de acceso (ACL) asociada con el archivo, si está presente, en una salida larga (-l).esto da un resultado como ...
Personalmente, tengo "exportaciones" en mi
~/.bash_profile
que lo hacen
chmod
posible ...sudo chmod + a "permitir localadmin $ DIR_ALL" / APPBUNDLE
Desde la
chmod
página del manual, hay un poco de información ... que sugiere que de hecho puede ser posible hacer algo como lo que usted describe ..."Las ACL se manipulan utilizando extensiones de la gramática del modo simbólico. Cada archivo tiene una ACL, que contiene una lista ordenada de entradas. Cada entrada se refiere a un usuario o grupo, y otorga o niega un conjunto de permisos. En los casos en que un usuario y un existen grupos con el mismo nombre, el nombre de usuario / grupo puede tener como prefijo "usuario:" o "grupo:" para especificar el tipo de nombre ".
Además, le daré un saludo a BatchMod , un viejo , pero un regalo para ACL, así como para TinkerToolSystem .
fuente
sudo chmod +a "localadmin allow $DIR_ALL" /APPBUNDLE
(cambiando el nombre de usuario y elallow
)Debería poder
stat
formatear su salida de manera adecuada.fuente
Quizás eche un vistazo a https://github.com/jvscode/getfacl .
fuente
setfacl
(sologetfacl
) y lagetfacl
funcionalidad parece ser bastante limitada. Desafortunadamente no he encontrado una solución mejor.