Клонирование разрешений папки в другую папку - PullRequest
4 голосов
/ 20 августа 2009

Существуют ли в OS X способы клонирования разрешений одной папки в другую. Просто чтобы прояснить, я не хочу копировать всю папку, только разрешения, а затем устанавливать их в другой папке. Я думаю, что такого рода вещи могут быть достигнуты в Linux / UNIX с помощью команд setfacl / getfacl, но я не уверен, как это сделать с OS X.

Спасибо

Ответы [ 3 ]

8 голосов
/ 25 августа 2009

Протестировано на Mac OS X v10.5.7, в bash:

chown $(stat -f%u:%g "$srcdir") "$dstdir" # Copy owner and group
chmod $(stat -f%Mp%Lp "$srcdir") "$dstdir" # Copy the mode bits
(ls -lde "$srcdir"  | tail +2 | sed 's/^ [0-9]*: //'; echo) | chmod -E  "$dstdir" # Copy the ACL

Примечания. Эти операции (особенно смена владельца), вероятно, потребуют root-доступа; посыпать sudo для достижения наилучших результатов. Кроме того, эта нечетная команда echo в последней строке предназначена для предотвращения ошибки, если srcdir не имеет прикрепленных записей ACL (chmod -E может обрабатывать пустые строки, но не полностью пустой ввод).

1 голос
/ 20 августа 2009

Полагаю, вы гуглили и нашли по крайней мере:

И эта веб-страница также, по-видимому, содержит некоторую важную информацию (например, fsaclctl).

0 голосов
/ 23 августа 2009

Я закончил тем, что создал метод Objective C (я все равно планировал использовать его в приложении Какао), который выясняет права доступа к файлу с помощью сценария perl, а затем использует chmod / chown для применения этих разрешений.

...