Jeśli plik lub katalog ma rozszerzone atrybuty, zobaczysz @ w polu uprawnień. W przypadku rozszerzonych informacji o bezpieczeństwie (ACL) zobaczysz znak +.
W man ls
systemie OS X:
-@ Display extended attribute keys and sizes in long (-l) output.
xattr
Program może być używany do wyświetlania i manipulować rozszerzonych atrybutów. Sprawdź jednak, co tam jest, zanim zdecydujesz się przejść, usuwając te atrybuty. Zdecydowanie rzuć też okiem na stronę podręcznika dla xattr.
Szybki przykład z przykładowego kodu kompromisowego PHP, który trzymam w celach informacyjnych:
$ 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
@
rozszerzony+
zestaw atrybutów i acl, wygląda na to, że ls pokaże@
. Ponieważ ma on problemy z dostępem do pliku, wydaje mi się prawdopodobne, że problem jest bardziej prawdopodobny, że ma on problem z listą ACL.Dzięki atrybutowi kwarantanny jabłka chmod nie wystarczy, aby go usunąć.
Musisz jawnie usunąć atrybut:
źródło
@
Oznacza rozszerzonych atrybutów, w uzupełnieniu do standardowych uprawnień plików UNIX.Sprawdź rozszerzone atrybuty:
Zresetuj wszystkie atrybuty rozszerzone dla jednego pliku:
Zresetuj rekurencyjnie wszystkie atrybuty rozszerzone:
Sprawdzone na macOS High Sierra (10.13) i macOS Mojave (10.14.6).
źródło
Odkryłem, że
-E
lub-N
są w rzeczywistości niewidoczne, nawet podczas używaniasudo
. Jedynym sposobem, aby to naprawić, było zalogowanie się jako rootźródło