리눅스에서 chmod 명령어는 권한을 줄 때 사용하는데,
이미 익숙해져버린(?) 숫자형태로 조합해서 사용했는데.. 알파벳(?) 문자를 대입해서 하는 방법을 알아봅시더~!!
chmod는 파일이나 디렉토리의 권한을 설정할 때 사용하는 리눅스 명령어인데,
대개 2진수로 하는 방법으로 많이 사용하지만, 문자 조합으로도 사용할 수 있다.
만약 testfile 라는 파일의 권한이 -rw-rw-r-- 이라고 하면
이는 6(사용자) 6(그룹) 4(다른사용자) 의 권한이다.
$chmod 664 testfile
위와 같은 식으로 명령어를 쓰게 되는데..
combination of the letter ugoa controls
먼저 u 는 사용자user, g는 그룹, o는 다른사용자(other) 를 사용해서 쓰면 된다.
만약 사용자에게는 읽기, 쓰기, 실행을 하고 == rwx
그룹은 읽기, 실행만 == r-x
다른 사용자는 읽고, 실행 == r-x
을 해주고 싶다면
+기호를 사용하면 권한을 추가해주는 것이고, -마이너스를 하면 권한을 빼준다.
이제 적용해보자
chmod u+x,g-w+x,o+x testfile
u(유저)는 기존에 rw가 있었으므로 실행만 + 해주기 (+x만 해준다.)
g(그룹)은 기존에 w가 있었으므로 쓰기를 - 빼준다 (-w), 그리고 실행을 + 추가한다 (+x)
o(다른사용자)는 기존에 r(읽기)밖에 없었으므로 실행을 + 해준다 (+x)
이제 ls -l 로 확인을 해보면
$ ls -l
-rwxr-xr-x. 1 octa octa 0 May 13 16:56 testfile
사용자 권한이 읽기,쓰기,실행 이 다되어 있고,
그룹은 읽기, 실행
다른 사용자는 읽기, 실행 으로 바뀐 것을 알 수 있다.
이거를 좀 더 유연하게 적용할 수가 있는데
a 로 쓸 수가 있는데 이는 모든 사용자 (유저-그룹-다른사용자)
한꺼번에 지정할 때 쓸 수 있고 예: a+w --> 모든 사용자에게 쓰기 권한을 준다
믹스해서 go-x , 이거는 그룹과 다른사용자를 합쳐서 실행권한을 빼버리는 것~
다양하게 응용할 수 있다.
$chmod a+w testfile
$ls -l testfile
-rwxrwxrwx. 1 octa octa 0 May 13 16:56 testfile
위에서 먼저 권한이 변경된 상태에서 모든 사용자에게 w 쓰기 권한까지 더해져서
777이 되어버렸다. 으허허헛;; ㅡㅡㅋ
이제 그룹과 다른사용자의 실행권한을 빼버리자
$chmod go-x testfile
$ls -l testfile
-rwxrw-rw-. 1 octa octa 0 May 13 16:56 testfile
다시 실행(x) 권한만 빠져있는 것을 알 수 있다.
chmod는 적절히 숫자와 문자 형태로 사용하면 되겠다. 끝!