it-swarm-es.tech

+ o @ marca después de ejecutar 'ls -al'

En Mac OS X, ejecutar 'ls -al' me da algo como esto.

 drwxrwxrwx + 4 smcho staff 136 5 de mayo 09:18 Público 
 drwxr-xr-x + 6 smcho staff 204 1 de febrero de 2010 Sitios 
 drwxrwxrwx 9 smcho staff 306 2 de febrero 2010 backup 
 drwxr-xr-x @ 36 smcho staff 1224 4 de septiembre 22:51 bin 
  • ¿Qué significa + o @ al final de la primera columna?
  • ¿Es exclusivo de Mac o común en UNIX?

ADICIONAL

Después de la respuesta de Michael Mrozek, ejecuté 'ls -ale' para obtener lo siguiente.

 drwx ------ + 66 smcho staff 2244 30 de agosto 13:40 Biblioteca 
 0: grupo: com.Apple.sharepoint.group.3 permitir búsqueda 
 1: grupo: todos niegan borrar 
 drwxr-xr-x 3 smcho staff 102 4 de septiembre 15:01 Mail 
 drwx ------ + 13 smcho staff 442 28 de agosto 17:55 Películas 
 0: grupo: todos niegan borrar 
 Drwx ------ + 6 smcho staff 204 9 de julio 09:37 Música 
 0: grupo: todos niegan borrar 
 drwx ------ + 11 smcho staff 374 28 de agosto 16:55 Imágenes 
 0: grupo: todos niegan borrar 
 drwxr-xr-x 3 smcho staff 102 18 de marzo 15:43 Proyectos 
 drwxrwxrwx + 4 smcho staff 136 5 de mayo 09:18 Público 
 0: grupo: todos niegan borrar 
 drwxr-xr-x + 6 smcho staff 204 1 de febrero de 2010 Sitios 
 0: grupo: todos niegan borrar 

¿Qué significan esos mensajes adjuntos? ¿Por qué los tengo para algunos de los archivos? No recuerdo haber hecho nada en particular por ellos.

30
prosseek

Los @ el sufijo es exclusivo de Mac OS y está cubierto por esta pregunta , así que copié esta parte de mi respuesta desde allí; significa que el archivo tiene atributos extendidos . Puede usar la utilidad de línea de comandos xattr para verlos y modificarlos:

xattr --list filename
xattr --set propname propvalue filename
xattr --delete propname filename

Los + sufijo significa que el archivo tiene una lista de control de acceso y es común en cualquier * nix que admita ACL. Dando ls el -e flag hará que muestre las ACL asociadas después del archivo, y chmod puede usarse para modificar en ese momento. La mayor parte de esto es de la página del manual chmod:

Agrega una ACL con chmod +a "type:name flag permission,...", y elimínelo con chmod -a. El argumento de chmod es bastante complicado:

  • tipo es user o group, para aclarar si name se refiere a un nombre de usuario o Un nombre de grupo. Si name no es ambiguo, puede omitir el tipo
  • nombre es el nombre de usuario o grupo al que se aplica la ACL
  • el indicador es allow si esta entrada de ACL está otorgando un permiso, o deny si está negando un permiso
  • permiso es el permiso real que se está modificando; puede enumerar tantos como desee, separados por comas
    • eliminar - Permitir que se elimine el archivo/directorio
    • readattr - Leer atributos básicos
    • writeattr - Escribe atributos básicos
    • readextattr - Leer atributos extendidos (usando xattr, desde arriba)
    • writeextattr - Escribe atributos extendidos
    • seguridad de lectura - Leer información de ACL
    • seguridad de escritura - Escribir información de ACL
    • chown - Cambiar propietario
    • Permisos específicos de directorio
      • lista - Muestra los archivos/carpetas en el directorio
      • buscar - Encuentra un archivo/carpeta en el directorio por nombre
      • add_file - Crea un nuevo archivo en el directorio
      • add_subdirectory - Crea un nuevo directorio en el directorio
      • delete_child - Eliminar un archivo/directorio en el directorio
      • Control de herencia
        • file_inherit - Las ACL en el directorio son heredadas por los archivos
        • directorio_inherir - Los subdirectorios heredan las ACL del directorio
        • limit_inherit - Impide que los subdirectorios hereden las ACL heredadas por este directorio
        • only_inherit - Heredado por todos los elementos recién creados pero ignorado
    • Permisos específicos de archivo
      • leer - Abre el archivo para leer
      • escribir - Abre el archivo para escribir
      • append - Abre el archivo para agregar
      • ejecutar - Ejecuta el archivo

En su ejemplo particular, la mayoría de las entradas de ACL son group:everyone deny delete. Es decir, a todos los usuarios en el grupo everyone (que naturalmente son todos) se les niega el permiso para eliminar la carpeta. Creo, aunque no puedo encontrar ninguna documentación al respecto, que estas son ACL predeterminadas para evitar que elimines las carpetas raíz esenciales; alguien corrige esto si ese no es el caso. La única otra entrada es group:com.Apple.sharepoint.group.3 allow search, que permite a los Servicios de directorio buscar archivos por nombre en el /Library carpeta

40
Michael Mrozek