Cosa significa "@" nelle autorizzazioni per i file unix?


49

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

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

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

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

Risposte:


35

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

Da man lssu OS X:

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

Il xattrprogramma può essere utilizzato per visualizzare e manipolare attributi estesi. Dai un'occhiata a cosa c'è prima di decidere di andare durante l'eliminazione di quegli attributi, però. Sicuramente dai un'occhiata anche alla pagina man di xattr.

Un rapido esempio da alcuni esempi di codice di compromesso PHP che tengo in giro 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 

22

Grazie a @Jeff per la correzione. Mi mancava la memoria.

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

Esegui il comando ls -le filenameper vedere se è stato impostato alcun ACL.

Poiché il tuo problema sembra riguardare l'accesso al file, scommetto che hai un ACL impostato oltre ad un attributo esteso.

Per sbarazzarsi di un ACL eseguire echo | sudo chmod -E filenameper un file o echo | sudo chmod -R -E directory nameper una directory.

Vedi la pagina man di chmod .


Grazie per la risposta. come posso liberarmene?
VinnyD

Aggiornato con una risposta che credo dovrebbe funzionare.
Zoredache

Le autorizzazioni ACL di @Zoredache hanno un segno più. @ È "attributi estesi".

Sì, lo vedo mentre ricontrollo. Devo aver ricordato all'indietro. E cosa succede quando un file ha entrambi?
Zoredache

Non importa, ho avviato un mac. Se hai un @attributo esteso e +acl impostati, sembra che ls mostrerà a @. Dal momento che sta riscontrando problemi di accesso a un file, mi sembra probabile che il problema abbia più probabilità di avere un problema con un ACL.
Zoredache

8

Con l'attributo quarantena mela, chmod non è sufficiente per rimuoverlo.

Devi rimuovere l'attributo esplicitamente:

sudo xattr -d com.apple.quarantine my_file

OP ha anche chiesto "Cosa significa @?"
Kamafeather,

3

La @sta per attributi estesi, oltre ai permessi standard di file UNIX.

Controlla gli attributi estesi:

ls -l@

Reimposta tutti gli attributi estesi per un singolo file:

sudo xattr -c <filepath>

Ripristina ricorsivamente tutti gli attributi estesi:

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

Controllato su macOS High Sierra (10.13) e macOS Mojave (10.14.6).


0

Ho scoperto che -Eo -Nsono in realtà invisibili anche durante l'utilizzo sudo. L'unico modo per risolverlo è stato accedendo come root


Questa non è una risposta. Probabilmente dovrebbe essere un commento alla risposta a cui ti stai riferendo.
Kamafeather,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.