본문 바로가기

Master/Master

sudo 사용 문제점

 

응? sudo 쓰지 말라고?

sudo를 통해 문제를 해결했지만, 올바른 해결책인가 싶은 느낌이 들기 시작했습니다. 그래서 디버깅을 시작해보았습니다. 가장 먼저, PermissionError가 왜 발생하는지 살펴보는 것으로 시작했습니다.


문제: admin은 /usr/local/…에 파일을 쓸 권리가 없다.

pip3 install의 default 설치 경로는 다음과 같습니다.

/usr/local/bin/python3.6

문제는, 해당 경로에 파일을 쓰거나(write) 변경할(edit) 권리(privilege)가 저에게는 없다는 점입니다. 이 때의 저는 administrator(이하 admin으로 쓰겠습니다)입니다.

admin이 무엇이고, 왜 일반 admin에게는 읽고 변경할 권리가 없는 지에 대해서는 잠시 뛰어 넘어가도록 하겠습니다.

중요한 사실은, 저에게는 /usr/local/ 경로를 비롯해 하위 경로에 대한 write/edit 권리가 없다는 점입니다. 권리가 없는 자에게는 허락(Permission)도 없습니다.

즉, pip3가 admin에게 허락되지 않은 경로에 패키지를 쓰려고 했기 때문에, 시스템은 PermissionError를 뱉어냈습니다.

퍼미션 에러가 난 이유를 확인했으니, sudo가 왜 이 에러를 해결할 수 있는지 알 수 있을 것입니다. 적어도 sudo가 무엇의 약자인지 알고 계신 분들은 말이지요.


미봉책: sudo는 /usr/local/…에 대한 write + edit 권한을 얻는 키워드

sudo는 Super User Do의 약자로 Linux 명령어입니다. 다음의 뜻을 가지고 있습니다.

“시스템아. 내(administrator)가 슈퍼 유저 특권을 가지고 있다고 생각하렴!”

이 sudo 명령어를 통해, /usr/local/… 에 대한 write/edit 권한을 찾을 수 있습니다.

즉, sudo pip3는 현 admin에게 허락되지 않은 경로에 패키지를 쓰는 것을 허용했고, 저는 permissionError를 회피할 수 있었습니다.

 

 

 

 

Sudo pip install은 안돼요!

안녕하세요. 개발자 Chullin입니다.

medium.com

 

'Master > Master' 카테고리의 다른 글

ILP( instruction level parallelism ), TLP( thread level parallelism )  (0) 2020.10.11
tiling, blocking, batching  (0) 2020.10.07
protobuf 설치  (0) 2020.09.25
how to check llvm version number in windows 10  (0) 2020.09.25
standalone  (0) 2020.09.18