KinD (Kubernetes in Docker)로 MacOS 상에 Multi-Nodes Kubernetes Cluster를 구성
하면서 kubectl autocomplete를 설정했는데 아래와 같은 메시지가 터미널 실행 시에 계속 나타나는 문제가 발생했다.
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
정보를 찾아보니 대 부분 zsh와 관련된 소유권 문제를 많이 이야기하고 있었다. 즉, 외부의 패키지나 라이브러리 등을 설치할 떄 외부의 스크립트를 사용할 경우에 /usr/local/share
폴더의 소유권과 권한이 변경되는 문제로 발생한다는 것이다.
상황을 확인해 보기 위해서 아래의 명령을 수행한다.
$ compaudit
There are insecure directories:
/usr/local/share
또는
There are insecure directories:
/usr/local/share/zsh/.site-functions
/usr/local/share/zsh
위의 같은 결과를 확인할 수 있다.
결과를 바로 소유권 및 권한 처리를 하는 방법은 다음과 같다.
# 검증 및 변경 처리
$ compaudit | xargs chmod g-w
# 재 검증
$ compaudit
There are insecure directories:
위의 방법이 아니라 개별적으로 처리하는 경우는 다음과 같다.
-
/usr/local/share/zsh/.site-functions 가 나온 경우
$ cd /usr/local/share/zsh $ sudo chown -R root:root ./site_functions
-
/usr/local/share 가 나온 경우
$ cd /usr/local/share/ $ sudo chmod -R 755 zsh $ sudo chown -R root:staff zsh
원인과 해결 방식에 대한 것이 궁금한 경우는 zsh, Cygwin and Insecure Direcotries를 참고하고, 좀 더 상세한 내용은 zsh: 20 Completion System를 참고하면 된다.