¿Qué significa "@" en los permisos de archivos Unix?


49

Tengo un archivo con los siguientes permisos en mi MacBook Pro:

-rwxr-xr-x@ 1 root wheel 101K Feb 29 17:09 apachectl

¿Qué significa el @soporte? No puedo ejecutar el archivo y esto es lo único que me destaca. ¿Cómo puedo deshacerme de él?

Al igual que algunos antecedentes, copié esto de una copia de seguridad de Time Machine.

Respuestas:


35

Si el archivo o directorio tiene atributos extendidos, verá una @ en el campo de permisos. Para obtener información de seguridad extendida (ACL), verá un +.

Desde man lsOS X:

-@      Display extended attribute keys and sizes in long (-l) output.

El xattrprograma se puede usar para mostrar y manipular atributos extendidos. Sin embargo, eche un vistazo a lo que hay allí antes de decidir ir mientras elimina esos atributos. Definitivamente, eche un vistazo rápido a la página de manual de xattr también.

Un ejemplo rápido de algún ejemplo de código de compromiso PHP que mantengo para referencia:

$ ls -@l php-compromise.php 
-rw-r--r--@ 1 user  group  502620 Jul  5  2011 php-compromise.php
    com.apple.FinderInfo        32 
    com.apple.TextEncoding      15 

22

Gracias a @Jeff por la corrección. Estaba recordando mal.

  • El @se muestra con un atributo extendido establecido
  • El +se muestra para una ACL.
  • SI tiene tanto un atributo como una ACL, entonces verá @.

Ejecute el comando ls -le filenamepara ver si tiene alguna ACL establecida.

Dado que su problema parece ser el acceso al archivo, apuesto a que tiene un conjunto de ACL además de un atributo extendido.

Para deshacerse de una ACL, ejecute echo | sudo chmod -E filenameun archivo o echo | sudo chmod -R -E directory nameun directorio.

Vea la página de manual de chmod .


Gracias por la respuesta. ¿Cómo puedo deshacerme de él?
— VinnyD

Actualizado con una respuesta que creo que debería funcionar.
— Zoredache

Los permisos de @Zoredache ACL vienen con un signo más. El @ es "atributos extendidos".

Sí, lo estoy viendo mientras reviso dos veces. Debo haber recordado al revés. ¿Y qué sucede cuando un archivo tiene ambos?
— Zoredache

No importa, tengo una Mac arrancada. Si tiene un @atributo extendido y un +conjunto de acl, parece que ls mostrará a @. Como tiene problemas para acceder a un archivo, me parece probable que el problema sea más probable que tenga un problema con una ACL.
— Zoredache

8

Con el atributo de cuarentena de manzana, chmod no es suficiente para eliminarlo.

Debe eliminar el atributo explícitamente:

sudo xattr -d com.apple.quarantine my_file

OP también preguntó "¿Qué significa el @ representan?"
— Kamafeather

3

El @representa los atributos extendidos, además de los permisos de archivo UNIX estándar.

Verifique los atributos extendidos:

ls -l@

Restablezca todos los atributos extendidos para un solo archivo:

sudo xattr -c <filepath>

Restablezca todos los atributos extendidos de forma recursiva:

sudo xattr -rc <directory>
sudo chmod -R -N <directory>

Marcado en macOS High Sierra (10.13) y macOS Mojave (10.14.6).


0

Descubrí que los -Eo -Nson realmente invisibles incluso cuando se usan sudo. La única forma en que pude solucionarlo fue iniciando sesión como root


Eso no es una respuesta. Probablemente debería ser un comentario a la respuesta a la que se refiere.
— Kamafeather
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.