Насколько я знаю, время ожидания для авторизации в OS X (если все сделано правильно) устанавливается в Базе данных политики, расположенной в etc/authorization
, обычно программно. Он выглядит как файл plist, и если у элемента нет ключа 'timeout', то у него нет тайм-аута.
Я знаю, что предпочтение обычно задается в коде с использованием API Apple (как показано в Руководстве по программированию служб авторизации Apple и в справочнике по функциям ).
Это защищенный файл. Используйте что-то вроде sudo pico /private/etc/authorization
для редактирования.
Запись в этом файле будет иметь заголовок с использованием своего рода дескриптора com.company.application.right или чего-то в этом роде (например, com.apple.itunes.copy, com.stackexchange.superuser.deleteuser), который является специфическим для каждое приложение, так что ищите это. (В алфавитном порядке, чтобы сделать вещи проще, я считаю).
Если такой записи нет, то приложение, вероятно, получает авторизацию другим способом, о котором я не знаю. Я просто попытался добавить тайм-аут в приложение, которое я написал - это сработало. Затем я снова удалил его - и таймаут исчез. Это должно работать в вашем случае, я думаю.
Вы упоминаете панель настроек - если это связано с Системными настройками, то я тоже не знаю, как она работает. Нет никакого способа сделать это через яблочный скрипт.
Изменить: если такой записи нет
ДРУГОЙ способ авторизации приложения - использование устаревшего и небезопасного метода AuthorizationExecuteWithPrivileges
. Я предполагаю, что если приложение не имеет своей собственной записи в базе данных политики, оно использует AuthorizationExecuteWithPrivileges
. Может случиться так, что приложение, с которым вы пытаетесь работать, использует это.
В базе данных политики есть запись для этого конкретного метода, называемая system.privilege.admin
, но обратите внимание, что изменение этого значения и удаление тайм-аута, вероятно, изменят тайм-аут для всех приложений, использующих AuthorizationExecuteWithPrivileges
, а не только тот, который вы пытаетесь изменить. Возможно, стоит попробовать.