Большинство производных Unix могут копировать ACL из одного файла в другой с помощью:
getfacl filename1 | setfacl -f - filename2
К сожалению, Mac OS X не имеет команд getfacl и setfacl, поскольку они свернули обработку ACL в chmod. chmod -E принимает список ACL на stdin, но я не нашел команду, которая будет выдавать ACL в подходящем формате на stdout. Лучшее, что я придумал, это:
ls -led filename1 | tail +2 | sed 's/^ *[0-9][0-9]*: *//' | chmod -E filename2
Есть ли более надежное решение?
Дополнительный вопрос: есть ли хороший способ сделать это в Python, без использования каких-либо модулей, которые не поставляются с 10.6?
mac-osx
access-control-list
chmod
MagerValp
источник
источник
getfacl
/setfacl
. Весьма замечательно. github.com/jvscode/getfacl 10 лет, я не смог заставить его работать. serverfault.com/a/303752/104173 выглядит сложным, и мне не ясно, пытается ли он заменитьget/setfacl
функциональность. Я понимаю, что macOS не является серверной платформой, но она все еще может подвергаться вторжениям в систему безопасности. Стоит ли возобновить этот разговор на apple.stackexchange.com ?Ответы:
ls -e
Распечатайте список контроля доступа (ACL), связанный с файлом, если он есть, в длинном (-l) выводе.это дает такой результат, как ...
Лично у меня "экспорт" в моем
~/.bash_profile
что делает такое
chmod
возможным ...sudo chmod + a "разрешить localadmin $ DIR_ALL" / APPBUNDLE
Со
chmod
страницы руководства есть немного информации ... которая намекает на то, что действительно возможно сделать что-то, как вы описываете ...«Списки управления доступом обрабатываются с использованием расширений грамматики символьного режима. Каждый файл имеет один список управления доступом, содержащий упорядоченный список записей. Каждая запись относится к пользователю или группе и предоставляет или запрещает набор разрешений. В случаях, когда пользователь и Группа существует с тем же именем, имя пользователя / группы может иметь префикс «user:» или «group:» для определения типа имени. »
Кроме того, я дам привет BatchMod , старому , но полезному для ACL, а также TinkerToolSystem .
источник
sudo chmod +a "localadmin allow $DIR_ALL" /APPBUNDLE
(переключение имени пользователя и имениallow
)Вы должны быть в состоянии
stat
отформатировать его вывод подходящим способом.источник
Может быть, посмотрите на https://github.com/jvscode/getfacl .
источник
setfacl
(толькоgetfacl
), аgetfacl
функциональность кажется довольно ограниченной. Я, к сожалению, не нашел лучшего решения.