homebrew 'no-sudo'철학 및 질문 FAQ 이해하기


4

OS X을 새로 설치 한 후 Python 패키지 관리자를 적절한 방법으로 설치하기로 결정했습니다. 그래서 나는 인터넷 검색을 시작했고 자작 나무가 가장 좋은 방법이라고 생각했다. 이제 두 가지 질문이 있습니다.

  • homebrew에서 자주 묻는 질문 :

Homebrew는 sudo를 사용하지 않고 작동하도록 설계되었습니다.

그러나 설치 스크립트는 암호를 묻습니다. 이는 실제 사용자가 usr / local ... dirs를 읽고, 쓰고, 실행하는 권한을 관리자의 그룹 구성원으로 부여하기 때문입니다. 따라서, 매번 sudo를 묻는 대신, homebrew는 한번 묻는다. 그럼에도 불구하고 sudo yes 또는 yes를 사용해야하기 때문에 규칙이 깨졌습니다.

패키지를 설치할 때 sudo를 파이썬과 함께 사용하는 것을 두려워했습니다. 이것이 제가 집을 짓기로 결심 한 이유입니다. 하지만 실제로 같은가요?

이것이 사실이라면, 자부심이 강한 프로그램이 루트 권한을 가지고 있기 때문에 원하는 일을하도록하는 것이 안전하지 않다고 생각합니다.

  • homebrew에서 자주 묻는 질문 :

/ usr / local / bin이 이미 PATH에 있습니다.

그럼 내가 왜 필요해?

Pb의 맨 위에 Homebrew 디렉토리를 삽입하십시오.

에서 말한대로 http://docs.python-guide.org/en/latest/starting/install/osx/ ?

homebrew의 설치 스크립트가 실행 된 명령 :

/usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig

/usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig

답변:


2

누가 설치 한 프로그램에 루트 권한이 있다고 누가 알았습니까? sudo 제공하는 데 사용됩니다. 당신 보호 된 디렉토리에 쓸 수있는 권한으로 시스템 폴더에 파일을 설치할 수 있습니다. 루트 권한은 설치 한 프로그램에 의해 마술처럼 상속되지 않습니다. 그들은 모든 권한을 가진 모든 프로그램처럼 설치됩니다. 함께 설치 sudo 설치된 파일의 권한을 높이 지 않습니다.

에 관해서는 $PATHhomebrew가 설치되어있는 경우 /usr/local/bin 그리고 그것은 이미 당신 안에 있습니다. $PATH 그러면 아무 것도 할 필요가 없습니다.


고마워요. 권한이 상승 된 디렉토리에 설치된 프로그램은 권한을 상속받지 않는다고 말합니다. 'brew'는 / usr / local / bin에있는 유일한 파일입니다. 그리고 그것은 관리자의 그룹입니다. 그런 다음 sudo로 실행하는 것처럼 실행하십시오. 나머지 프로그램과 동일하게 적용되지 않습니까?
Vito Valov

1
@slinzex는 권한 작동 방식이 아닙니다. 파일의 소유자는 admin입니다. 보다 ls -l /bin/ls, 당신은 그것이 또한 admin에 의해 소유됨을 볼 것입니다. 그건 그렇다. 아니 관리자 권한으로 실행된다는 의미입니다. 단지 그것이 관리자에게 속한다는 것을 의미합니다. 그러나 모든 실행 파일은 실행 파일의 사용자 권한으로 실행됩니다. 만약 admin 그들을 실행, 그들은 것입니다 admin 특권, 당신이 그들을 실행하면, 그들은하지 않습니다. 유일한 예외는 SUID 비트가 설정 됨 . 보기 이리 .
terdon

아주 좋고 유용한 리프레셔 주셔서 감사합니다. 양조에 대한 권한은 -rwxr-xr-x입니다. 소유자는 그룹 "admin"의 "사용자"입니다. 그리고 ls는 루트가 소유하고 있습니다. 그런 다음 사용자는 root뿐만 아니라 rx도 할 수 있습니다. 관리자는 다른 사람뿐만 아니라 쓸 수 없습니다. 사용자가 관리자 그룹에 있습니다. homebrew를 설치하기 전에, usr / local은 휠 그룹이었습니다. 이제는 관리자의 것입니다. sudo를 사용하여 쓰기 전에, 지금은 그렇지 않습니까? 결론적으로 chmod g + rwx와 chgrp admin / usr / local /로 바뀌 었습니다. ?
Vito Valov

@slinzex 나는 네가 무엇을 요구하는지 모르겠다. 이것이 새로운 문제라면, 새로운 질문을 올리십시오, 이것은 포럼이 아닙니다. 전체 사용 권한 문자열을 보지 않고 그룹을 알지 않고도 작성할 수 있는지 여부는 알 수 없습니다. 네가 달렸다면 chmod g+rwx/usr/local/ 그러면 admin 그룹에 읽기 / 쓰기 및 실행 액세스 권한이 있습니다. /usr/local/ (거기에있는 파일과 폴더가 아니라 /usr/local ). take home 메시지는 프로그램을 실행 한 사용자의 권한으로 실행되므로 sudo로 설치하면 실행될 때 프로그램의 권한에 영향을주지 않습니다.
terdon

그것은 같은 주제입니다. 필자가 언급 한 두 가지 명령은 설치시 컴퓨터에서 홈브류 스크립트가 수행 한 작업입니다. 그것은 분명히 sudo 비밀 번호를 묻습니다. 내가 묻는 것은 : 그 목적은 무엇인가? BREW가 여기에서 프로그램을 다운로드하고 설치할 수 있도록 허용하여 쓰기, 읽기 및 실행을 허용합니다. 그런 다음 brew가 소유 한 경우, 실행하면 다운로드 및 설치하는 프로그램을 실행할 수있게되며 해당 프로그램도 내 권한으로 실행됩니다. 위험 할 수 없습니까? 내가 본 것은 hb를 가지고 있기 때문에 sudo로 실행되는 것을 제어 할 수 있다는 것이다. 지금은 그렇지 않습니다.
Vito Valov

2

그들은 /usr/local/bin/ 너의 꼭대기에 $PATH 그래서 집에서 만든 프로그램은 시스템보다 먼저 발견됩니다. 예를 들어, 파이썬의 자작 (homebrew) 버전을 사용한다면, /usr/bin/python 전에 부름을받을 것이다. /usr/local/bin/python ~ 않는 한 /usr/local/bin ~이다. 전에 /usr/bin 너의 $PATH, 비록 /usr/local/bin 이미 너에있다. $PATH.


네 감사합니다. 사실 나는 어제 그것을 발견했다.
Vito Valov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.