¿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.