MacOS, Linux에서 파일 권한 변경하기

권한 변경

Windows에도 읽기/쓰기 권한을 변경할 수 있습니다. 보통은 적절하게 권한이 주어지기 때문에 Windows에서는 권한을 변경하는 일이 거의 없습니다.

하지만 MacOS나 Linux에는 실행 권한이 따로 있습니다.
디렉토리의 경우는 실행 권한이 있어야 하위 디렉토리와 파일들을 확인할 수 있습니다. 그렇기 때문에 디렉토리는 기본적으로 실행 권한이 주어집니다.
파일의 경우는 실행 권한이 있어야 터미널에서 실행할 수 있습니다. 터미널에서 실행하는 프로그램/스크립트는 실행 권한이 있어야 합니다. 하지만 파일의 경우 보안을 위해 기본적으로는 실행 권한이 주어지지 않습니다.

권한 설정

터미널에서 실행할  모든 프로그램은 실행 권한을 주어야 합니다.

chmod 755 ~/plexdrive
chmod 755 ./run.sh

~는 홈 디렉토리 입니다. 필자의 경우는 /home/KollHong입니다.
.는 현재 디렉토리 입니다. 기본 값은 홈 디렉토리 입니다. pwd 명령을 통해 현재 디렉토리의 위치를 알 수 있습니다.

755는 권한입니다.
첫째 칸은 소유자(Owner), 두번째 칸은 그룹(Group), 세번째 칸은  다른 사용자(Others)에 대한 권한을 나타냅니다.
여기서 그룹은 소유자가 포함된 그룹입니다.

권한은 읽기/쓰기/실행 세 가지 권한이 있습니다.
영어로 표현할 때는 r (Read), w (write), x(execute)로 표현합니다. 
숫자로는 r=4, w=2, x=1를 각각 더한 값으로 표현합니다.

읽기/쓰기/실행 모든 권한을 가질 때는 숫자로는 7, 영어로는 rwx로 표현합니다.

읽기/실행 권한만을 가질 때는 숫자로는 5, 영어로는 r-x로 표현합니다.

다음 명령으로 plexdrive 의 권한을 변경합니다. 소유자는 모든 권한을, 그룹과 다른 사용자는 읽기/실행 권한만 갖게 됩니다.

chmod 755 ~/plexdrive

영어 표현은 ls 명령을 입력하면 볼 수 있습니다. 

ls -l ~/plexdrive

plexdrive에 rwxr-xr-x를 권한이 주어진 것을 확인할 수 있습니다.

권한 추가

chmod a+x  ~/plexdrive
chmod u+x  ~/plexdrive

755나, 644와 같은 숫자 대신 문자와 +기호를 사용했습니다.

a+x는 모든 사용자에게 x(eXecute)권한을 주는 것이고, u+x는 유저에게 x권한을 주는 겁니다.

반대로 a-x도 가능하겠죠?

저는 보통 시스템 내부의 파일을 건드리기 때문에 기존에 설정된 권한을 알고 있어서 644나 755같은 권한 설정 방법을 이용합니다.

하지만 권한을 변경하려고 하는 파일이 원래 가지고 있던 권한을 모른다면 u+x와 같은 방법을 사용해야 합니다. 의도치 않게 제 3자에게 권한을 부여하거나, 관련된 사용자에게 권한이 없어질 수 있기 때문입니다.

ls 명령 예

ls에서 -a는 모든 파일 보기(숨겨진 파일 보기) 옵션입니다. -l은 자세한 정보 보기 입니다. 자세한 정보가 필요하지 않더라도 오히려 보기 편해서 -l 옵션은 항상 넣습니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다