Это продолжение моего поста: Разрешения приложений для обычного пользователя
Сейчас я использую MacOS High Sierra 10.13.5, и эта проблема все еще раздражает.
Я использую свой Mac как стандартный пользователь. Когда я впервые настроил его, все приложения были загружены/установлены с использованием пользователя Admin.
При использовании моего Mac в качестве стандартного пользователя каждый раз, когда я запускаю приложение, я получаю следующее сообщение:
"Whatever.app" is an application downloaded from the Internet.
Are you sure you want to open it?
С опциями Cancel
и Open
. Конечно выбираю Open
и все работает нормально.
Теперь я привык к этому уведомлению, которое появляется при первой попытке запустить приложение из Интернета. Моя проблема в том, что он появляется каждый раз.
Обратите внимание, что у меня не запрашиваются учетные данные администратора, и эти приложения уже были установлены в /Applications
каталоге в качестве администратора.
Я пробовал с другим стандартным пользователем и все еще имею ту же проблему. Я также уже использовал Дисковую утилиту для восстановления прав доступа к диску на всякий случай.
Как сделать так, чтобы это уведомление появлялось только при первом запуске?
================================================= ========
Подробнее:
Если я устанавливаю приложение, войдя в систему как стандартный пользователь, но аутентифицируясь как администратор, то оно только предупредит меня о приложении при первом запуске, а затем никогда больше, пока я все еще вошел в систему как этот стандартный пользователь .
Но все приложения, которые я установил , войдя в систему как администратор, каждый раз выдают мне всплывающее предупреждение, если я пытаюсь запустить их , войдя в систему как обычный пользователь.
У этой проблемы есть «решение», но оно невероятно неэлегантно. Для каждого приложения, которое я загрузил и установил, войдя в систему как администратор, просто установить приложение недостаточно. Я должен войти в систему как администратор и запустить приложение хотя бы один раз, чтобы убрать предупреждение для всех остальных пользователей. Это кажется невероятно глупым. Наверняка должен быть лучший способ сделать это?
Основная проблема заключается в том, что все приложения помечены как находящиеся в карантине (у них есть расширенный атрибут «com.apple.quarantine»), потому что они были загружены из сети. Запуск приложения удаляет атрибут карантина, если права доступа к файлу позволяют вам изменять файл (например, если вы являетесь владельцем файла — в данном случае пользователем с правами администратора). Если у вас нет разрешения, атрибут карантина остается, и вы продолжаете получать сообщение «загружено из Интернета» снова и снова.
Решение: так или иначе, вам нужно убрать этот атрибут карантина. Вы можете сделать это сразу для нескольких приложений в Терминале.
Сначала используйте su
(сменить пользователя), чтобы переключиться на пользователя-администратора (введите " su
", затем пробел, затем имя учетной записи вашего пользователя-администратора, затем нажмите клавишу возврата и введите пароль учетной записи администратора; обратите внимание, что пароль не будет отображаться как вы печатаете). Это должно выглядеть примерно так:
Dans-Mac:~ dan$ su adminacct
Password:
bash-3.2$
Если это работает, введите « xattr -r -d com.apple.quarantine
», затем пробел, затем перетащите все приложения, которые вы хотите удалить из карантина, из Finder в окно терминала; когда они все будут перечислены, нажмите клавишу возврата. Обратите внимание, что вы можете перетаскивать их по одному или группами, как вам удобно. Что-то вроде этого:
bash-3.2$ xattr -r -d com.apple.quarantine /Applications/BBEdit.app /Applications/Firefox.app
Ответ Гордона Дэвиссона сработал для меня, но по какой-то причине моя папка «Приложения» отображалась как пустая в Finder и с помощью ls . Итак, чтобы получить путь/имя для приложения, которое я хотел очистить, мне пришлось использовать
sudo find / -iname *.app
чтобы получить пути для всех установленных приложений (как можно найти на https://www.howtogeek.com/409377/how-to-list-all-applications-on-a-mac/ ).
Даниэль
xattr -r -d com.apple.quarantine /Applications/*.app
сработало. Это не так.Гордон Дэвиссон
ls -l@ /Applications
и найти «com.apple.quarantine в списке после любого из приложений. Если они есть, вам, возможно, придется работатьxattr
от имени их владельца или, возможно, от имени пользователя root, добавив к команде префиксsudo
(примечание что вы уже должны работать как администратор, чтобы использоватьsudo
).qwerty_so
sudo xattr ...
с самого начала? Полное переключение на root просто немного жутко, если вы время от времени запускаете и случайноrm -r ...
запускаете его ./
qwerty_so
/Application/<...>
где вы можете использовать подстановочные знаки, регулярное выражение или табуляцию для того, что необходимо.Гордон Дэвиссон
sudo
не будет работать из учетной записи без прав администратора; вот почему я рекомендовал использоватьsu
для переключения на учетную запись администратора, которая установила приложения ( не на root). Что касается завершения табуляции, подстановочных знаков и т. д.: да, здесь они отлично сработают, но я нацеливался на инструкции для тех, кто не привык к синтаксису оболочки.qwerty_so