코드가 파일을 수정하는 코드를 포함하고 있을때, 해당 파일에 접근할 권한을 갖지 못했기 때문에 발생한 오류입니다. 해당 오류는 Linux의 Ubuntu 서버에서 발생한 오류로, 권한을 주어 아래처럼 실행하면 해결됩니다.
sudo python3 run_py.py
혹은 Bash 상에서 해당 파일을 sudo 명령어 없이 사용하고 싶다면 현재 그 파일의 권한이 누구에게 가 있는지(root 사용자, 그룹 사용자, 그 외 등) 확인할 필요가 있습니다. 이 경우 먼저 해당 파일의 권환을 확인해볼 필요가 있습니다. 리눅스에서는 이러한 권환을 확인할 수 있는 명령어가 있습니다.
ll (해당 파일의 위치 경로 입력)
해당 명령어를 입력할 경우, 아래 사진과 유사한 것들이 Bash에 뜨게 됩니다.
읽는 법은 차례대로 사용자권한 그룹권한 그외권한 소유사용자 소유그룹 입니다.
이걸 해결하는 방법은 chmod 명령어로 권환을 바꾸어 그외 사용자에게 읽기 권한을 주거나, chown 명령어로 소유자를 바꾸는 방법이 있습니다.
chmod를 사용할 경우, 가장 앞에 있는 -rw-r--r-- 과 같은 문자를 이해할 필요가 생깁니다. 여기서 x는 실행 권한이며 r = 4, w = 2, x = 1입니다. 즉, -rw-r--r--는 -rw(소유자) -r--(소유그룹) r--(그 외)입니다. -rw-r--r--을 숫자로 바꾸면 소유자는 r(4) + w(2) = 6, 소유그룹과 그외는 r(4)로 644가 됩니다. 여기서 '그 외'쪽에 쓰기 권한을 준다면 chmod를 이용해 644를 646으로 바꿔주면 됩니다.
chmod 646 (파일명)
그러나 그 외 사용자에게 쓰기 권한을 주는 일은 거의 없기 때문에, chown 명령어를 쓰는 것이 바람직합니다.
root 소유의 파일을 ubuntu 소유의 파일로 바꾸고 싶다면 chown을 사용해 아래와 같이 입력해주면 파일의 소유자가 변경됩니다.
chown ubuntu:ubuntu 파일명
저의 경우 그룹권한에서 그룹명이 ubuntu였기 때문에 ubuntu로 적어주었습니다.