2012-08-05 6 views
25

Mac에서 프록시를 변경하는 데 사용하는 앱이 있습니다. networksetup 명령을 사용하여 프록시 설정을 지정하면 Lion에서 제대로 작동합니다. Mountain Lion에서는 프록시 설정을 변경할 때마다 관리자 암호를 묻습니다.네트워크 설정에서 비밀번호를 묻는 것을 막으십시오.

networksetup이 시스템 네트워크 구성을 수정하려고합니다. 이를 허용하려면 암호를 입력하십시오.

이 문제를 방지 할 수있는 방법이 있습니까? 아니면 Cocoa에서 프록시 설정을 변경하는 더 좋은 방법이 있습니까? 라이온스에서는 암호를 입력 할 때 시스템이 기억되어 재부팅 후에 만 ​​인증해야했습니다.

크롬에서 Proxy Switchy 플러그인도 동일한 문제를 겪고있는 것으로 나타났습니다. 그것은

scutil은 시스템 네트워크 구성을 수정하려고합니다. 이를 허용하려면 암호를 입력하십시오.

답변

0

나는 이것을 알아 내려고 노력해 왔습니다. 맨 페이지에 다음과 같이 언급되어 있습니다.

암호를 사용하는 모든 플래그는 암호 대신 stdin에서 암호를 읽어야 함을 나타 내기 위해 암호 대신 "-"를 사용합니다.

확실하지 꽤 그것을 사용하지만 더 이상 패스워드를 입력 할 필요가 없습니다 그것은

+1

당신은 네트워크 설정에 대해 기대하는 명령에 대한 암호를 제공하는 것에 대해 이야기하고 있습니다. OP의 문제는 networksetup이 관리자 권한을 가진 사용자에 의해 실행되어야한다는 것입니다. 여기에 암호를 요구하는 networksetup이 아니라 인증 관리자입니다. – SirDarius

7

당신은 /usr/sbin/networksetup 권한 suid을 설정할 수 있습니다 ... 가능한 것 같다 다음 networksetup 루트 권한으로 실행하는 방법 . SUID 소개

sudo chmod u+s /usr/sbin/networksetup 

: http://www.linuxnix.com/2011/12/suid-set-suid-linuxunix.html

+1

이것은 OS X 10.8에서 작동하는 것으로 보였지만 Disk Util을 사용하여 권한을 복구하면이 수정 사항이 사라질 것입니다. – sorin

+0

이렇게하면 "cp : /Library/Preferences/SystemConfiguration/preferences.plist.old : Permission denied"오류가 발생합니다. – Sean

+1

바이너리를 설정하지 마십시오. suid - 처음에는 sudo가 존재하는 것이 좋지 않습니다. 나는이 문제에 대해 보안에 더 신경을 쓴 솔루션을 보여주기 위해이 질문에 대한 sudo 기반 응답을 추가했습니다. – synthesizerpatel

12

sudo를 사용하면이 명령을 실행 할 수 있도록 할 사용자에 대한 암호없이 규칙을 추가하여이를 수행 할 수 있습니다. 은/etc /의 sudoers 파일의 끝에서

visudo -f /etc/sudoers 
  • 파일

    • 실행 visudo를 라인

    $USERNAME ALL=(root) NOPASSWD: /usr/sbin/networksetup 
    
    을 추가, 수정 편집기를 시작합니다 $ USERNAME은 networksetup 명령에 nopassword 액세스를 제공하려는 실제 사용자 이름을 입력합니다.

    • 이 올바르게 설정되어있는 경우 버전 메시지를 에코, 또는 경우 '암호를 입력하라는 메시지가 표시됩니다

      /usr/bin/sudo /usr/sbin/networksetup -version 
      

    을 실행하여 파일을 사용자로

  • 테스트를 저장 ve 실수.

    이 명령은 특정 사용자에게 루트 권한으로 명령을 실행할 수있는 사람을 제한하고 networksetup 바이너리 자체를 suid root로 설정하면 시스템에 로그인하여 네트워크 구성을 수정할 수 있습니다. OSX는 다중 사용자 운영 체제이므로 하나처럼 취급해야합니다.

    정말 편집증이라면/usr/bin/sudo를 호출 할 때 전체 경로를 사용해야합니다.

  • +0

    자세한 내용을 참조하십시오. 위의 내용을 시도해 보았습니다 (관리자 사용자 이름이 'fred'라고 가정). {fred ALL = (root) NOPASSWD :/usr/sbin/networksetup} 오류가 계속 발생했습니다 (NB sbin not 큰 상자). 명령을 어떻게 포맷해야합니까? – dcnicholls

    +0

    경로를 수정하고 테스트를 명확하게 해주는 답을 편집했습니다. 매개 변수없이 networksetup을 호출하면 사용 팁에 대한 긴 페이지가 표시됩니다. 그러나 그것은 암호없이 작동한다는 것을 증명합니다. – nanoamp

    +0

    이러한 지시 사항은 이제이 오류를 생성합니다. "sudo : 48 행 근처의/etc/sudoers에서 구문 분석 오류가 발생했습니다. sudo : 유효한 sudoers 소스를 찾을 수 없습니다."지금 어떻게 파일을 편집합니까? – thefonso