관리자 비밀번호 요청을 중지하도록 OS X 응용 프로그램 기본 설정 설정

관리자 비밀번호 요청을 중지하도록 OS X 응용 프로그램 기본 설정 설정

응용 프로그램(특히 waterroof)에 일부 작업을 보내는 AppleScript를 작성하려고 합니다. 문제는 관심 있는 설정 패널을 열 때 애플리케이션이 주기적으로 관리자 비밀번호를 묻는다는 것입니다. 시간 지연으로 작동하므로 이전 x분 내에 이미 비밀번호를 입력한 경우 메시지가 표시되지 않습니다. 요청을 받을 수밖에 없기 때문에 일시 중지하고 스크립트의 일부로 비밀번호를 입력하는 것을 고려할 수 없습니다.

관리자 권한으로 앱에 로그인 상태를 유지하고 싶고 앱에서 묻지 말라고 앱/OS에 알릴 수 있는 방법이 있나요? 코드에서 그 존재 여부 등을 확인하기 전에 이 가능성을 모두 소진하고 싶습니다.

답변1

내가 아는 한, OS X에서 인증 시간 제한은(제대로 수행된 경우)정책 데이터베이스일반적으로 프로그래밍 방식으로 에 위치합니다 etc/authorization. 이는 plist 파일처럼 보이며 항목에 'timeout' 키가 없으면 시간 초과가 없는 것입니다.

나는 기본 설정이 일반적으로 Apple의 API를 사용하여 코드에서 설정된다는 것을 알고 있습니다(Apple의인증 서비스 프로그래밍 가이드그리고기능참조).

보호된 파일입니다. 그것을 편집하는 것과 같은 것을 사용하십시오 sudo pico /private/etc/authorization.

이 파일의 항목에는 일종의 설명자 'com.company.application.right' 또는 이와 유사한 것(예: com.apple.itunes.copy, com.stackexchange.superuser.deleteuser)을 사용하는 제목이 있습니다. 각 응용 프로그램을 찾으십시오. (일을 더 쉽게 하기 위해 알파벳 순서로 나열했습니다.)

여기에 이미지 설명을 입력하세요

그러한 항목이 없으면 앱은 아마도 내가 모르는 다른 방식으로 인증을 받을 것입니다. 방금 제가 작성한 앱에 시간 제한을 추가해 보았습니다. 작동했습니다. 그런 다음 다시 삭제했는데 시간 초과가 사라졌습니다. 귀하의 경우에는 효과가 있을 것 같습니다.

설정 패널에 대해 언급하셨습니다. 시스템 환경 설정과 관련된 경우 어떻게 작동하는지 모르겠습니다. AppleScript를 통해 이를 수행할 수 있는 방법은 없습니다.

편집: 해당 항목이 없는 경우

애플리케이션이 인증할 수 있는 또 다른 방법은 현재 더 이상 사용되지 않으며 안전하지 않은 방법을 사용하는 것입니다 AuthorizationExecuteWithPrivileges. 응용 프로그램의 정책 데이터베이스에 자체 항목이 없으면 AuthorizationExecuteWithPrivileges. 작업하려는 응용 프로그램이 이 기능을 사용하고 있을 수 있습니다.

정책 데이터베이스에는 이 특정 방법에 대한 항목이 있지만 system.privilege.admin이를 수정하고 시간 초과를 삭제하면 변경하려는 응용 프로그램 AuthorizationExecuteWithPrivileges뿐만 아니라 를 사용하는 모든 응용 프로그램의 시간 초과도 변경될 수 있습니다. 시도해 볼 가치가 있습니다.

여기에 이미지 설명을 입력하세요

관련 정보