Defina a preferência do aplicativo OS X para parar de solicitar senha de administrador

Defina a preferência do aplicativo OS X para parar de solicitar senha de administrador

Estou tentando escrever um applescript que envie algumas ações para um aplicativo (especificamente waterroof). O problema é que o aplicativo me pede periodicamente a senha de administrador quando abro o painel de configurações de meu interesse. Ele funciona com atraso, então se eu já digitei a senha nos x minutos anteriores, ele não avisa. Como não posso confiar na pergunta, não posso considerar fazer uma pausa e inserir a senha como parte do script.

Existe uma maneira de informar ao aplicativo/sistema operacional que desejo permanecer conectado ao aplicativo com privilégios de administrador e que ele não deveria me perguntar? Quero esgotar essa possibilidade antes de tentar verificar sua existência, etc., no código.

Responder1

Pelo que eu sei, o tempo limite para autorização no OS X (se feito corretamente) é definido noBanco de dados de políticaslocalizado em etc/authorization, geralmente de forma programática. Parece um arquivo plist e, se um item não tiver uma chave de 'tempo limite', ele não terá tempo limite.

Eu sei que a preferência geralmente é definida em código usando APIs da Apple (conforme mostrado no Apple'sGuia de programação de serviços de autorizaçãoe afunçãoreferência).

Este é um arquivo protegido. Use algo parecido sudo pico /private/etc/authorizationpara editá-lo.

A entrada neste arquivo terá um título usando um tipo de descritor 'com.company.application.right' ou algo parecido (por exemplo, com.apple.itunes.copy, com.stackexchange.superuser.deleteuser) - que é específico para cada aplicativo, então procure por isso. (Está em ordem alfabética para facilitar as coisas, acredito).

insira a descrição da imagem aqui

Se não houver tal entrada, o aplicativo provavelmente obterá autorização de outra maneira que eu não conheço. Tentei adicionar um tempo limite a um aplicativo que escrevi - funcionou. Em seguida, excluí-o novamente - e o tempo limite desapareceu. Deve funcionar no seu caso, suponho.

Você mencionou um painel de configurações - se isso envolve as Preferências do Sistema, também não sei como funciona. Não há como fazer isso através do applescript.

Editar: se não houver tal entrada

OUTRA maneira pela qual um aplicativo pode autorizar é usar o método agora obsoleto e inseguro AuthorizationExecuteWithPrivileges. Suponho que, se um aplicativo não tiver sua própria entrada no banco de dados de políticas, ele usará arquivos AuthorizationExecuteWithPrivileges. Pode ser que o aplicativo com o qual você está tentando trabalhar use isso.

Há uma entrada no banco de dados de políticas para esse método específico chamado system.privilege.admin, mas observe que modificar isso e excluir o tempo limite provavelmente alterará o tempo limite de todos os aplicativos que usam AuthorizationExecuteWithPrivileges, não apenas daquele que você está tentando alterar. Pode valer a pena tentar.

insira a descrição da imagem aqui

informação relacionada