Che cosa significa "@" nelle autorizzazioni del file unix?

42

Ho un file con le seguenti autorizzazioni sul mio MacBook Pro:

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

Che cosa significa @ ? Non riesco a eseguire il file e questa è l'unica cosa che mi sta distinguendo. Come posso liberarmene?

Proprio come qualche sfondo, l'ho copiato da un backup di Time Machine.

    
posta VinnyD 01.03.2012 - 02:13
fonte

5 risposte

33

Se il file o la directory ha attributi estesi, vedrai un @ nel campo delle autorizzazioni. Per informazioni di sicurezza estesa (ACL), vedrai un +.

Da man ls su OS X:

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

Il programma xattr può essere utilizzato per visualizzare e manipolare attributi estesi. Dai un'occhiata a cosa c'è prima di decidere di andare mentre elimini quegli attributi, però. Sicuramente dare un'occhiata alla pagina man di xattr troppo.

Un rapido esempio tratto da qualche esempio di codice di compromesso PHP che tengo per riferimento:

$ 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 
    
risposta data 01.03.2012 - 02:16
fonte
19

Grazie a @Jeff per la correzione. Mi mancavano i rimedi.

  • Il @ viene visualizzato con un attributo esteso impostato
  • Il + viene visualizzato per un ACL.
  • Se hai sia un attributo che un ACL, vedi @ .

Esegui il comando ls -le filename per vedere se ha impostato un ACL.

Poiché il tuo problema sembra essere quello di accedere al file, scommetto che hai un set ACL oltre a un attributo esteso.

Per eliminare un ACL, esegui echo | sudo chmod -E filename per un file o echo | sudo chmod -R -E directory name per una directory.

Consulta la pagina man chmod .

    
risposta data 01.03.2012 - 02:16
fonte
4

Con l'attributo quarantine apple, chmod non è sufficiente per rimuoverlo.

Devi rimuovere esplicitamente l'attributo:

sudo xattr -d com.apple.quarantine my_file
    
risposta data 24.06.2016 - 05:40
fonte
1

Controlla attributi:

ls -le

Reimposta tutti gli attributi in modo ricorsivo:

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

Controllato su macOS High Sierra (10.13).

    
risposta data 21.11.2017 - 20:11
fonte
0

Ho scoperto che -E o -N sono effettivamente invisibili anche quando si utilizza sudo . L'unico modo per risolvere il problema era accedere come root

    
risposta data 10.03.2012 - 20:38
fonte

Leggi altre domande sui tag