2014-01-10 2 views
4

MacOSX 10.9.1 (Mavericks)에서 로그인 화면을 확장하려고합니다. 내가 알기에 새로운 인증 플러그인을 구현하여 authorization database에 설치하면 가능합니다.로그인 화면 사용자 지정 Mac OSX (SFAuthorizationPluginView)

인터페이스를 구현하고 SFAuthorizationPluginView을 덮어 쓰거나 늘리는 방법을 보여주는 NameAndPassword 예제를 다운로드했습니다. 하지만 문제는 내가 매버릭스 밑에 만들 수 없다는 것입니다. 그래서 NullAuthPlugin이라는 두 번째 예제를 다운로드하기로 결정했습니다. 이 컴파일하지만 그것을 설치하는 방법을 찾지 못했습니다.

제 질문은 좋은 내용이고 업데이트 된 튜토리얼이 있다면 (TechNotes 양식은 2008-09-16)?

질문 2는 C# (Xamarin.Mac/MonoMac)으로 개발할 수 있다면 Objective-C/C/C++를 개발하는데별로 좋지 않기 때문입니다.

감사합니다.

+0

나는 Mavericks에서 작동하지만 Mountain Lion에서 컴파일되는 NameAndPassword 예제를 기반으로하는 플러그인이 있습니다. Mavericks에서 컴파일하는 데 문제가 있습니까? – TheDarkKnight

+0

빌드 옵션 메뉴에서 SDK를 현재 (10.9)로 지정하면 빌드 가능합니다 (NameAndPassword의 경로는 10.9에없는 10.5 SDK로 하드 코드됩니다). 또한 기본 플랫폼 목록을 사용하여 무언가를 수행해야합니다. 그러면 문제없이 빌드됩니다. 그러나 문제는 무엇인가? NameAndPassword 예제를 인증 할 수 없다는 것입니다. 암호를 입력하고 버튼을 누르거나 아무 반응이 없으면 SSH를 통해 비활성화해야합니다. @ Merlin069 당신이 그걸 도울 수 있다고 생각하니? Xcode로 디버깅하는 방법을 알고 있지만 근처에 다른 Mac이 없습니다. –

+0

@ MichałSiwek, 예제와 다른 경우, 코드에 대한 예제를 제공하므로 새로운 질문으로 추가 할 수 있습니까? – TheDarkKnight

답변

4

버그는 Apple에 여러 번보고되었지만 지금까지는 아무 것도하지 않았습니다. 가장 간단한 대답은 NameAndPassword 플러그인의 패치 된 버전이 필요합니다. 공식 플러그인이 손상되었습니다. https://github.com/skycocker/NameAndPassword

당신이 그렇지 않으면 로그온 할 것

<string>NameAndPassword:invoke</string> 

과 권한 policy 데이터베이스에

<string>loginwindow:login</string> 

라인을 대체 하는 것이 중요하다 : 나는 GitHub의 내 고정 플러그인을 넣어 나는 Merlin69 도움없이 이것을 알아 내지는 않겠다.

+0

이것을 실행하는 프로세스와 그 행을 대체 할 위치를 설명 할 수 있습니까? – xdumaine

+0

@xdumaine sure - http://stackoverflow.com/a/21618085/2113110 :) –

-2

우선 : 결코 로그인 플러그 인을 콘솔 로그인 권한으로 디버깅하기 시작하지 마십시오. 운영 체제가 운영 중에 호출해야하는 다른 권한과는 완전히 독립적 인 auth db에 특수 테스트 "더미"권한을 만들어야합니다. "MyTestRight-RemoveMeAfterTest"와 같이 호출합니다.

"보안 authorizationdb 쓰기 MyTestRight-RemoveMeAfterTest < MyTestRight-RemoveMeAfterTest_plist_file"

:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>class</key> 
    <string>evaluate-mechanisms</string> 
    <key>comment</key> 
    <string>Used to validate a terminal user.</string> 
    <key>mechanisms</key> 
    <array> 
     <string>NameAndPassword:invoke</string> 
    </array> 
</dict> 
</plist> 

하면 터미널에서 "보안"명령으로 설치 :

처럼 뭔가를 보이는 PLIST 파일을 만듭니다

auth db를 여전히 손으로 편집하지 마십시오. 10.9 이전의 osx의 경우와 마찬가지입니다. 실수로 파일을 구문 분석 할 수 없으면 상처를 입을 수 있습니다. 나는 거기에 있었다. 나는 수년간 이러한 플러그인을 해왔다. os가 파일을 읽을 수 없다면 로그인 할 때 플러그인이 멈추지 않는 한 같은 상황에 처하게 될 것입니다. SSH를 사용할 수있는 예지력이 없다면 다른 파티션으로 부팅하거나 타임머신 백업에서 부팅해야합니다. 후자의 경우 최근 편집 내용을 일부 외장 드라이브에 저장 한 것이 좋습니다.

db를 설치 한 후에는 외부 프로그램에서 테스트해야합니다.

이름과 암호 예제에 포함 된 readme 파일에 나와있는 보안 인프라를 호출하고 운영 체제처럼 권한을 요청해야합니다.

사과 샘플을 사용할 때는주의하십시오. 지침으로 만 사용하십시오. NameAndPassword는 오류가 있으며 결코 실행될 수 없습니다. 2006 년에 마지막으로 업데이트되었으며 현재 사용되지 않는 많은 기능을 사용합니다. 실제로 아무것도하지 않지만 단지 쉘입니다.