Większość pochodnych unix może kopiować listy ACL z jednego pliku do drugiego za pomocą:
getfacl filename1 | setfacl -f - filename2
Niestety Mac OS X nie ma komend getfacl i setfacl, ponieważ dodały obsługę ACL do chmod. chmod -E akceptuje listę ACL na stdin, ale nie znalazłem polecenia, które wypluwa ACL w odpowiednim formacie na stdout. Najlepsze, co wymyśliłem, to:
ls -led filename1 | tail +2 | sed 's/^ *[0-9][0-9]*: *//' | chmod -E filename2
Czy istnieje bardziej niezawodne rozwiązanie?
Dodatkowe pytanie: czy istnieje dobry sposób na zrobienie tego w Pythonie bez użycia modułów, które nie są dostarczane z 10.6?
mac-osx
access-control-list
chmod
MagerValp
źródło
źródło
getfacl
/setfacl
. Dość niezwykłe. github.com/jvscode/getfacl ma 10 lat Nie byłem w stanie sprawić, żeby działał. serverfault.com/a/303752/104173 wygląda na skomplikowane i nie jestem pewien, czy próbuje zastąpićget/setfacl
funkcjonalność. Rozumiem, że macOS nie jest platformą serwerową, ale wciąż może doświadczać ingerencji w bezpieczeństwo. Czy warto wznowić tę rozmowę na apple.stackexchange.com ?Odpowiedzi:
ls -e
Wydrukuj listę kontroli dostępu (ACL) powiązaną z plikiem, jeśli jest dostępna, na długim (-l) wyjściu.daje to wynik taki jak ...
Osobiście mam w sobie „eksport”
~/.bash_profile
które sprawiają, że jest to
chmod
możliwe ...sudo chmod + „allow localadmin $ DIR_ALL” / APPBUNDLE
Na
chmod
stronie podręcznika znajduje się trochę informacji ... które sugerują, że rzeczywiście można zrobić coś takiego, jak opisujesz ...„Listami ACL manipuluje się za pomocą rozszerzeń gramatyki trybu symbolicznego. Każdy plik ma jedną listę ACL, zawierającą uporządkowaną listę wpisów. Każda pozycja odnosi się do użytkownika lub grupy i przyznaje lub odmawia zestawu uprawnień. W przypadkach, gdy użytkownik i grupa istnieje o tej samej nazwie, nazwa użytkownika / grupy może być poprzedzona słowem „użytkownik:” lub „grupa:” w celu określenia rodzaju nazwy. ”
Ponadto przekażę okrzyk BatchMod , staruszkowi, ale dobry prezent dla list ACL, a także TinkerToolSystem .
źródło
sudo chmod +a "localadmin allow $DIR_ALL" /APPBUNDLE
(zmiana nazwy użytkownika iallow
)Powinieneś być w stanie
stat
sformatować swoje wyjście w odpowiedni sposób.źródło
Może zajrzyj na https://github.com/jvscode/getfacl .
źródło
setfacl
(tylkogetfacl
), agetfacl
funkcjonalność wydaje się być dość ograniczona. Niestety nie znalazłem lepszego rozwiązania.