Consigo permiso denegado al intentar mover la carpeta Music
a través mv
aunque propietario del directorio se establece en mis permisos de usuario y de usuario se establece en 7. ¿Qué está pasando?
(Sé que podría usar sudo, pero quiero averiguar qué está mal. Algo huele a pescado aquí). Ps: estoy en Mac OS X El Capitan.
Respuestas:
Tenga en cuenta que, cuando está en la carpeta
a
, moviéndoseb
ac
, los permisos de la carpetaa
determinan qué puede hacer.En este caso, los permisos
.
serán los más importantes.Observe que los permisos son más complejos que simplemente
rwx
. Sumusic
carpeta tiene un@
al final, la.
carpeta tiene un+
al final.xattr -h
para determinar los permisos complejos para el símbolo @.getfacl
para determinar la ACL para el símbolo +.fuente
man xattr
podría ser un buen punto de partida.ls -la@e
. Lo más probable es que aquí haya unadeny delete
ACL que también impide el cambio de nombre.Estaba usando Windows Subsystem para Linux. Tenía el directorio abierto en una instancia de bash diferente. Cerrándome me permitió mover el directorio.
fuente
Parece como si hubiera al menos 1 archivo en algún lugar profundo de ese directorio que no tuviera los permisos correctos.
Entonces, lo que hice fue:
Ahora funciona.
fuente
chmod 755
eliminado los permisos especiales '@' en la carpeta Música?chmod -a 'everyone deny delete' Music
eso. Podría ser diferente en El Capitán.El problema aquí probablemente tiene que ver con la Lista de control de acceso (ACL) de la carpeta Música. La ACL es un sistema de permisos separado para los POSIX normales que normalmente se enumeran por
ls -l
. Algunos otros directorios en la carpeta Inicio y en otros lugares también tienen ACL.Para ver las ACL dentro del directorio de inicio, use:
Es probable que vea una regla como
0: group:everyone deny delete
para el directorio de Música. Como notó, podría anular el problema consudo
. Si no quieres hacer eso (o no puedes), tienes otras opciones, dado que eres el propietario del archivo. Puede quitar la entrada ofensiva de la ACL del directorio de música, en función de su índice (0 en el ejemplo que proporcioné anteriormente):O puede quitar todas las entradas en la ACL:
Ahora puede mover el directorio (sujeto a los permisos POSIX normales). Si desea volver a colocar la ACL después del traslado, puede usar:
Y úsela
/bin/ls -le
nuevamente para confirmar que la ACL está como la desea. Consulte los ejemplos de ACLman chmod
para obtener más información. En particular, esta introducción es útil:Orden de ACL
No creo que esa página de manual explique las reglas sobre el pedido, pero esta página explica claramente las reglas de pedido para las ACL. En particular,
deny
se aplicará unaallow
regla explícita antes de una regla explícita . Por lo tanto, mientras lagroup:everyone deny delete
entrada esté en su lugar, no es posible darle permiso a su usuario para eliminar con unaallow
regla. Esto se debe a que se denegó el permiso aleveryone
grupo, que lo incluye a usted, y esa regla se aplicará primero.fuente
everyone deny delete
entrada de ACL en los directorios principales predeterminados de macOS es la razón real por la que los directorios no se pueden mover ni eliminar. (Además, tenga en cuenta que el sistema operativo podría volver a crearlos en cualquier momento.)Tuve este problema cuando un conjunto de programas se estaba ejecutando en un directorio que estaba tratando de eliminar. Para mover el directorio, primero tuve que eliminar todos los programas en ejecución de ese directorio.
En los siguientes comandos, tenga mucho cuidado al seleccionar el nombre de su programa. Usé los siguientes comandos, como referencia:
El procedimiento general es:
kill -9
con mucha precaución ) todos los programas del directoriofuente
grep
y su verificación. Lo que sea que esté poniendo en eso primerogrep
elegirá del grupo de todos los programas en ejecución ykill
con privilegios de root ...Eso también puede suceder cuando uno de los archivos dentro está protegido contra escritura. Tenía el caso borde de hoy cuando
access.log
estaba protegido por escritura para Apache, que ya fue detenido. Acabo de eliminar este archivo, por lo que pude mover el directorio principal.fuente