IT

Xcode / Mac OS에서 관리자가 아닌 개발자에게 권한 부여

lottoking 2020. 8. 10. 07:31
반응형

Xcode / Mac OS에서 관리자가 아닌 개발자에게 권한 부여


Mac OS에서 일상적인 작업에 표준 사용자 계정을 사용합니다. Snow Leopard로 업그레이드 한 후 Xcode 내에서 프로그램을 사용할 때 다음을 수행해야합니다.

" '개발자 이름'그룹에있는 사용자의 이름과 비밀번호를 입력하여 개발자 도구 액세스 권한을 매체 도구 수 있습니다."

사용자 이름 / 암호를 알고 싶습니다. 성가신 일입니다 (로그인 당 한 번만 필요함).

개발자 도구 액세스는 애플리케이션 gdb-i386-apple-darwin에서 "system.privilege.taskport.debug"에 대한 권한을 요청합니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?


OS X 사용자 이름을 _developer그룹 에 추가해야합니다 . 자세한 내용은 이 콘텐츠 의 게시물 을 참조하십시오. 다음 명령이 트릭을 수행해야합니다.

sudo dscl . append /Groups/_developer GroupMembership <username>

마지막으로 DevToolsSecurity -enable터미널에서 제거 할 수 있습니다 . @joar_at_work 에게 감사드립니다 !

참고 : 나는 엑스 코드 4.3 사용 중이며을 보기 처음 시작했을 때 비활성화 버튼을 눌렀습니다. 왜 그런지 묻지 말고 내 강아지가 나를 가정하십시오 :)


$ dseditgroup -o edit -u <adminusername> -t user -a <developerusername> _developer

개발자 도구 그룹에 자신을 추가해야합니다. OS X에서 그룹에 사용자를 추가하는 일반적인 구문은 다음과 가변합니다.

sudo dscl . append /Groups/<group> GroupMembership <username>

DevTools 그룹의 이름은 _developer.


Ned Deily의 솔루션은 사용자가 sudo.

않은 경우 오는가 su관리자 계정에 그의를 사용할 수 있습니다 dscl . append /Groups/_developer GroupMembership $user. 여기서 $ user는 사용자 이름입니다.

그러나 명령에 사용자 이름을 잘못 입력하고 조용히 실패 때문에 잘못 생각했습니다.

따라서 명령을 입력 한 후에는이를 증명해야합니다. $ user가 $ group에 있는지 확인합니다. 여기서 변수는 각각 사용자 이름과 그룹 이름을 나타냅니다.

dsmemberutil checkmembership -U $user -G $group

이 명령은 메시지 user is not a member of the group또는 user is a member of the group.


@Stacy Simpson이 제안한 답변 :

이 경우에 사용하는 문제 해결 방법이 작동하지 않는 것입니다.

나는 처음에도 어느 하나의 게시 할 수 없습니다. (첫 번째는 실제로 닫혀 있으며 현지화 추론에 동의하지 않습니다 ...)

어쨌든, 우리는 관심을 방법을 사용하여 만들었습니다. 아래부터 시작하기 전에 자동화 된 테스트를 시작하기 시작합니다.

osascript <script name> <password> &

다음은 펼쳐입니다.

on run argv
    # Delay for 10 seconds as this script runs asynchronously to the automation process and is kicked off first.
    delay 10

    # Inspect all running processes
    tell application "System Events"
        set ProcessList to name of every process
        # Determine if authentication is being requested
        if "SecurityAgent" is in ProcessList then
            # Bring this dialogue to the front
            tell application "SecurityAgent" to activate
            # Enter provided password
            keystroke item 1 of argv
            keystroke return
        end if
    end tell
end run

그다지 안전하지 않는 사용자 개입없이 테스트를 사용하는 경우 해결 방법입니다.

답변을 게시 성취 점수를받을 수 있기를 바랍니다. 또는 누군가가 질문을 보호 해제 할 수 있습니다. 문안 인사.


다음은 Mac OS X에서 프로젝트를 사용할 때 시스템 키 체인을 사용하려는 더 나은 솔루션입니다.

  1. 키 체인 접근을 도달 다.
  2. 왼쪽 상단 모서리에서 키 체인을 잠금 해제합니다 (잠긴 경우).
  3. 왼쪽 상단 모서리에서 시스템 키 체인을 선택합니다.
  4. 배포 인증서를 찾고 공개 삼각형을 클릭하십시오.
  5. 배포 인증서 아래의 '개인 키'를 두 번 클릭합니다.
  6. 팝업에서 액세스 제어 탭으로 이동합니다.
  7. '모든 애플리케이션이이 항목에 액세스하도록 허용'을 선택합니다.
  8. 변경 사항을 저장하십시오.
  9. 모든 창을 닫습니다.
  10. 응용 프로그램을 실행하십시오.

나는 Snow Leopard를 사용하고 있는데 이것은 나에게 잘 맞지 않았습니다. 그러나 다음 절차는 작동했습니다.

  1. 먼저 계정에서 "사용자가이 컴퓨터를 관리하도록 허용"을 선택하여 관리자 권한이있는 다른 계정을 추가했습니다 (예 : 사용자 이름 테스트가 있는 계정).
  2. 에 로그인 테스트 계정
  3. Xcode를 시작하고 내 iPhone 프로젝트를 컴파일하고 실행했습니다. 모두 좋아, 권한과 관련된 오류가 발생하지 않았습니다.
  4. 테스트 계정 에서 로그 아웃했습니다.
  5. 관리자 권한이있는 다른 계정으로 로그인했습니다.
  6. 계정 아래의 "사용자가이 컴퓨터를 관리하도록 허용"확인란을 제거 하여 테스트 계정 에서 관리자 권한을 제거했습니다.
  7. 테스트 계정에 다시 로그인했습니다.
  8. iPhone 프로젝트 디렉토리를 삭제하고 저장소에서 다시 체크 아웃했습니다 (제 경우에는 svn).
  9. Xcode를 시작하고 프로젝트를 컴파일하고 실행했습니다. 오류가 발생하지 않았고 앱이 iPhone Simulator에서 잘 실행되었습니다.

실행 후 :

sudo dscl . append /Groups/_developer GroupMembership <username>

위의 답변 에 따라 자신의 비밀번호를 입력하라는 메시지 계속 표시 될 수 있습니다 .

디버거를 실행하려면 관리자의 권한이 필요합니다. 이것은 로그인 세션 당 한 번만 발생합니다.

실제로 의미하는 것은 모든 _developer groupmember 사용자이므로 관리자가 아닌 사용자 / 암호 만 여기에서 작동하지만 완전히 제거하려면 (재부팅 후 프롬프트 없음) 다음을 실행해야합니다.

sudo DevToolsSecurity -enable

(관리자 / 루트로 sudo로 실행하면 GUI 암호 프롬프트없이 원격으로 수행 할 수 있습니다.)


나를 위해 다음 스레드의 제안이 도움이되었음을 알았습니다.

"계속하려면 디버깅을 위해 다른 프로세스를 제어해야하는 개발자 도구 액세스"경고 중지

터미널 애플리케이션 에서 다음 명령을 실행할 것을 제안했습니다 .

sudo /usr/sbin/DevToolsSecurity --enable

참고 URL : https://stackoverflow.com/questions/1837889/authorize-a-non-admin-developer-in-xcode-mac-os

반응형