cp setattrlist Отказано в доступе на MacOS

cp setattrlist Отказано в доступе на MacOS

Я второй пользователь "Администратор" на Mac OS. Я в группе adminи пытаюсь использовать homebrew, который был установлен первым пользователем.

Я убедился, что все файлы /usr/local/*доступны для записи admin, sudo chmod -R g+w /usr/local/*т.е.

При попытке запустить brew installнесколько разных пакетов я получаю несколько из этих ошибок

cp: setattrlist: /usr/local/Cellar/[email protected]/.: Permission denied
cp: chmod: /usr/local/Cellar/[email protected]/.: Operation not permitted
Error: Failure while executing; `cp -pR /private/tmp/d20210523-60782-14t7vu8/[email protected]/. /usr/local/Cellar/[email protected]` exited with 1. Here's the output:
cp: setattrlist: /usr/local/Cellar/[email protected]/.: Permission denied
cp: chmod: /usr/local/Cellar/[email protected]/.: Operation not permitted

Но при проверке папка имеет те разрешения, которые я ожидал.

:; ls -al /usr/local/Cellar/icu4c/
total 0
drwxrwxr-x  3 user1 admin   96 May 23 14:06 .
drwxrwxr-x 73 user1 admin 2336 May 23 14:05 ..
drwxrwxr-x 12 user1 admin  384 May 23 14:06 67.1

Кто-нибудь знает, что я здесь упускаю?

решение1

У меня нет ответа, хотя я столкнулся с той же проблемой, но, возможно, есть какие-то подсказки, которые помогут продвинуться в поиске первопричины и, возможно, решить проблему. Со своей стороны, я использую ACL при установке brew, поскольку у меня две учетные записи администратора, но поскольку вы не используете ACL, это означает, что это, скорее всего, не проблема ACL, как я думал.

У меня есть скрипт после установки, который устанавливает ACL для администраторов, так что любой администратор может использовать brew. Каждый раз, когда я использую brew для установки, я использую этот скрипт для восстановления владельца и установки ACL

Что я знаю, так это то, что setattrlist и fsetattrlist касаются метаданных, так что информация finder/spotlight. Я не нашел способа с ACL избавиться от этой ошибки чисто.

Я могу воспроизвести его вне установки Homebrew, если использовать тот же способ, которым Homebrew выполняет копирование.

например $ cp -pR /usr/local/Cellar/webp ~/webp $ cp -pR ~/webp/. /usr/local/Cellar/webp # ⇒ выдаст ошибку прав доступа или ошибку setattrlist $ cp -pR ~/webp /usr/local/Cellar/webp # ⇒ работает, так что, вероятно, в homebrew есть исправление для поиска и удаления /. из исходного кода cp.

До сих пор, когда я получаю эту ошибку, я удаляю каталог из Cellar и перезапускаю команду brew install.

утомительно, когда brew обновляет много вещей, но это единственный обходной путь, который я нашел на данный момент.

Связанный контент