권한 변경
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 옵션은 항상 넣습니다.