sudo chown -R $USER:admin /usr/local - 루트로 복원하시겠습니까?

sudo chown -R $USER:admin /usr/local - 루트로 복원하시겠습니까?

질문은 ~이야답변을 요청이전에는 (을 사용하여 ) 설치한 관리자 사용자 계정을 열어 두는 chown것이 안전하다는 것을 알고 있었습니다./usr/localgithomebrewbrew install git

sudo chown -R $USER:admin /usr/local

이제 소유권을 다시 다음으로 변경해야 할지 궁금합니다.뿌리.

누가 그것을 소유하는지는 중요합니까 /usr/local?

참고: 이 질문은 macOS에 대한 것이지만 Unix 시스템에도 적용될 수 있습니다.

답변1

"역사"부터 시작해 보겠습니다. /usr/local일반적으로 기본 운영 체제와 함께 설치되지 않은 사용자 프로그램/데이터를 저장하는 데 사용됩니다. 일반적으로 automake를 사용하여 소스에서 프로그램을 만들면 /usr/local기본 운영 체제 자체는 해당 디렉토리에 의존하지 않으므로 권한은 실제로 관리자의 선호에 따라 달라집니다.

이제 우리는 이 문제를 다른 각도에서도 생각해 볼 수 있습니다. 디렉토리에 대한 사용자 +r또는 +w권한이 있는 경우 +x해당 권한은 해당 디렉토리의 소유자에게만 적용됩니다. 일반적으로 사용자 권한은 그룹 또는 모든 권한보다 높습니다. 즉, 소유자가 /usr/local다른 계정보다 더 높은 권한을 갖게 됩니다. 이제 그룹 및/또는 모든 권한이 해당 디렉터리에 대한 사용자의 권한보다 크거나 같으면 실제 소유자가 누구인지는 중요하지 않습니다.

따라서 스스로에게 물어봐야 할 질문은 어떤 사용자가 에 있는 "항목"을 사용할 것인지 /usr/local, 그리고 다른 사용자가 동일한 "항목"에 액세스할 수 있는지 여부에 관심이 있습니까? 귀하의 답변은 디렉터리를 소유한 사용자뿐만 아니라 디렉터리에 대한 사용자, 그룹 및 모든 권한에도 영향을 미칠 수 있습니다.

home-brew의 경우 일반적으로 home-brew 패키지 시스템을 관리하는 사용자가 이 디렉터리를 소유하도록 하는 것이 가장 좋습니다. 더 많은 공유 시스템의 경우 디렉토리를 루트가 소유하는 것이 더 일반적입니다. 왜냐하면 디렉토리가 사용자가 제어하는 ​​경우에도 시스템 관리자는 일반적으로 디렉토리에 있는 내용을 제어하기를 원하기 때문입니다.

참고로 다음은 일반 Linux(Ubuntu) 컴퓨터와 일반 Mac OS X 컴퓨터의 예입니다.

user@ubuntu:~$ ls -ld /usr/local
drwxr-xr-x 10 root root 4096 Sep 10  2013 /usr/local
Mac:~ user$ ls -ld /usr/local
drwxrwxr-x  12 root  admin  408 12 Apr 04:32 /usr/local/

관련 정보