티스토리 뷰
학습목표
- 사용 권한과 소유자에 대해 이해하고, 사용 권한을 변경할 수 있다.
- 파일의 소유자와 파일에 적용된 사용 권한을 확인하고 이해할 수 있다. ls -l
- 파일에 적용된 사용 권한을 변경할 수 있다. chmod
Read, Write, Execute 권한
리눅스에서 새로운 폴더와 파일을 각각 하나 씩 만든 후, ls -l을 입력해봅니다.
예를 들어 파일은 -rw-r--r-- 이라고 출력되었고, 폴더는 drwxr-xr-x 라고 출력되었습니다.
이 표현의 첫 시작인 - 와 d 는 각각 not directory와 directory를 나타냅니다. 즉, 폴더이면 d로, 파일이면 - 로 나타납니다.
이어지는 r, w, x는 각각 read permission, write permission, execute permission으로 읽기 권한, 쓰기 권한, 실행 권한을 나타냅니다. 3번에 걸쳐 나타나는 이유는 사용자와 그룹, 나머지에 대한 권한을 표시하기 때문입니다.
파일의 권한 rw-r--r--은 소유자는 읽기와 쓰기가 가능하고, 다른 사용자와 그룹은 읽기만 가능하다는 의미가 됩니다.
폴더의 권한은 rwxr-xr-x 으로, 소유자는 읽기와 쓰기, 실행이 가능하고, 다른 사용자 그룹은 읽기와 실행만 가능합니다.
★★★ chmod: 권한을 변경하는 명령어
명령어 chmod 폴더나 파일의 읽기, 쓰기, 실행 권한을 변경할 수 있습니다. OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같을 경우에 명령어 chmod 로 폴더나 파일의 권한을 변경할 수 있습니다.
만약 OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우에는 관리자 권한을 획득하는 명령어 sudo 를 이용해 폴더나 파일의 권한을 변경할 수 있습니다.
명령어 chmod 로 권한을 변경하는 방식은 두 가지가 있습니다.
- 첫 번째는 더하기(+), 빼기(-), 할당(=)과 액세서(accessor) 유형을 표기해서 변경하는 Symbolic method입니다.
- 두 번째는 rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경하는 Absolute form입니다.
Access class(클래스): u(사용자), g(그룹), o(나머지), a(u,g,o 모두)
Operator(연산자): +(더하기), -(빼기), =(할당)
Access Type(타입): r(읽기), w(쓰기), x(실행)
명령어 chmod 뒤에 변경할 권한을 입력합니다. 액세스 클래스의 u, g, o, a를 변경할 조건에 따라 조합하여 입력하고, 연산자와 액세스 타입을 순서대로 입력합니다. 다음은 명령어 chmod 를 입력한 예시와 결과입니다.
chmod g-r filename # removes read permission from group
chmod g+r filename # adds read permission to group
chmod g-w filename # removes write permission from group
chmod g+w filename # adds write permission to group
chmod g-x filename # removes execute permission from group
chmod g+x filename # adds execute permission to group
chmod o-r filename # removes read permission from other
chmod o+r filename # adds read permission to other
chmod o-w filename # removes write permission from other
chmod o+w filename # adds write permission to other
chmod o-x filename # removes execute permission from other
chmod o+x filename # adds execute permission to other
chmod u+x filename # adds execute permission to user
chmod a=rw hello.java # -rw-rw-rw-
chmod u= hello.java # ----rw-rw-
chmod a+rx hello.java # -r-xrwxrwx
chmod go-wx hello.java # -r-xr--r--
chmod a= hello.java # ----------
chmod u+rwx hello.java # -rwx------
Absolute form은 숫자 7까지 나타내는 3 bits의 합으로 표기합니다.
사용자, 그룹, 또는 다른 사용자나 그룹마다 rwx 가 나타나고, 각 영역의 boolean 값으로 표기할 수 있습니다.
Read(r) // Number: 4
Write(w) // Number: 2
Exucute(x) // Number: 1
만약, user는 rwx 를, group과 other은 r-- 로 권한을 변경하려고 한다면, 각 Permission에 해당하는 숫자의 합을 user, group, other 순으로 입력하여 사용합니다.
# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 hello.java # -rwxr--r--
'학습 > CLI' 카테고리의 다른 글
관리자 권한과 경로 (0) | 2022.10.27 |
---|---|
환경 변수 (0) | 2022.10.27 |
패키지, 패키지 매니저 (0) | 2022.10.27 |