최근에 포드를 사용하여 프레임 워크의 경로를 업데이트하고 싶었습니다.
Cocoapods가 설치되어 있으며 여기에서 찾을 수 있습니다.
/usr/local/bin/
그러나 놀랍습니다! 루트 전용 액세스로 설정되어 있습니다.
ls -l / usr / local drwx ------ 504 휠 빈 / drwxr-xr-x @ john 직원 포함 / drwxr-xr-x @ john staff lib / drwxr-xr-x 루트 휠 공유 /
어떤 경우에도 포드를 사용할 수 없습니다.
- 포드 설치 영역
heeeyy 친구, 당신은 당신이 루트가 아닌 포드 원인에 액세스 할 수 없습니다.!.
- sudo 포드 설치 영역
Heeeyy 친구, 당신은 뿌리로 포드를 사용할 수 없습니다! .!.
이 폴더는 다음과 같은 이유로 ‘루트 만’으로 설정해서는 안된다고 생각합니다.
- usr의 env PATH에 있습니다.
- 그 안에 보석 설치 포드?
- http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html은 기본적으로 말합니다 :
‘/ usr / local’은 자체 컴파일 또는 타사 프로그램을 유지하기에 좋은 장소로 널리 알려져 있습니다.
나는 리눅스가 BSD가 아니라는 것을 알고 있지만 여전히 그렇게 다르지 않다.
마지막으로 여기 내 질문이 있습니다.
- 검색했는데 uid 504를 가진 사용자가 없습니다. 의심 스럽습니까?
( “”dscacheutil -q user | grep 504 “”로 확인)
-
폴더에 대한 권리와 소유자는 무엇입니까?
-
같은 문제가있는 사람이 있습니까?
-
왜 이런 일이 일어 났는지 아십니까?
답변
/ usr / local의 기본 설정은 다음과 같습니다.
~ $ ls -ld /usr/local
drwxr-xr-x@ 3 root wheel 102 5 Aug 20:01 /usr/local
이것은 / usr / local 아래의 파일과 디렉토리는 루트 사용자 만이 만들 수 있음을 의미합니다. 예를 들어, / usr / local은
~ $ ls -l /usr/local
total 0
drwxr-xr-x 12 root wheel 408 11 Sep 12:11 bin
따라서 공유 디렉토리는 정상적으로 보이지만 다른 디렉토리에는 이상한 변화가 있습니다.
include와 lib는 / usr / local의 사용 권한을 변경하여 쓸 수 있고이 두 디렉토리 (Homebrew를 설치하는 가장 일반적인 설정)를 생성 한 것처럼 보입니다 (무엇이 ls -ld /usr/local
표시 되는지 확인해야합니다) .
쓰레기통에 관해서는 몇 가지가 있었을 것입니다. 먼저 새로운 사용자가 언젠가 추가되었을 것입니다. 일반 사용자 (시스템 환경 설정 GUI를 통해 생성 된 501에서 시작). 예를 들어 두 번째 사용자이므로 내 ID는 502이고 디렉토리는 해당 사용자에게 작성 또는 변경되었습니다. 디렉토리는 다른 곳에서 작성된 후 루트로 루트 디렉토리로 이동했습니다.
디렉토리의 권한은 다음과 같이 변경되었습니다.chmod 700
따라서 기본 설치에서 Homebrew를 사용하지 않는 경우 / usr / local / include와 같이 올바른 설정이 / usr / local / share에 따라 설정됩니다.
답변
/ usr 폴더는 SIP (System Integrity Protection)에 의해 보호되며 / usr / local (및 해당 하위 디렉토리)을 제외한 모든 내용과 마찬가지로 루트가 소유합니다.
루트 사용자는 504가 아니라 uid 0입니다. 500 시리즈는 사용자 또는 앱이 만든 계정이어야합니다. 시스템의 / usr / local / bin은 “admin”그룹의 내 사용자 이름 “tubedogg”가 소유 drwxrwxr-x
하며 권한을 갖습니다 .
답변
그 /usr/local/
자체가 root wheel
저의 소유 입니다. 그러나 포드 사용자로 사용할 수있는 모든 폴더는 bin include etc lib opt share var
내 사용자 및 관리자 그룹이 소유합니다.
폴더와 파일의 소유권을 변경하려면 다음을 실행하십시오.
sudo chown -R john:staff /usr/local/bin
chmod -R 755 /usr/local/bin