리눅스에는 파일의 소유자, 소유그룹이라는 게 존재하고 필요에 맞게 권한을 설정한다. 권한(permission) 부여는 chmod 명령어를 사용한다.
1. 권한 개념 정리
권한이라는 건 아래의 이미지처럼 파일이나 디렉토리에 부여되는 읽기(r), 쓰기(w), 실행(x)와 소유자(root), 소유그룹(root)를 의미한다. 하나씩 살펴보자.
권한을 부여받는 대상은 아래 3가지다.
- 소유자(u) : 파일이나 디렉토리의 소유자
- 소유자 그룹(g) : 파일이나 디렉토리의 소유 그룹
- 기타(o) : 그외
부여할 수 있는 권한은 아래의 3가지다.
- 읽기(r)
- 쓰기(w)
- 실행(x)
2. 알파벳으로 권한 부여
이제 권한을 부여할 건데 첫번째 방법은 알파벳을 이용하는 것이다. 위에 정리해 놓은 내용을 그대로 적용하면 된다.
chmod [권한부여 대상][권한부여 액션][부여할 권한] 파일이름
- 권한 추가 : +
- 권한 제거 : –
- 권한 세팅 : =
예시 1. 소유자 쓰기 권한 부여
[root@newhost permission]# chmod u+w permission_test
예시 2. 소유자그룹 읽기 권한 제거
[root@newhost permission]# chmod g-r permission_test
예시 3. 소유자 읽기,쓰기,실행 권한 / 소유자그룹 읽기,쓰기 권한 / 기타 읽기 권한 부여
[root@newhost permission]# chmod u+rwx,g+rw,o=r permission_test
이렇게 알파벳을 이용하는 방법은 직관적이라는 장점이 있긴한데 명령어가 길어지는 단점이 있다.
그래서 개인적으로는 숫자로 권한 부여하는 방법을 추천한다.
3. 숫자로 권한 부여
chmod [소유자 권한][소유자그룹 권한][기타 사용자 권한] 파일명
값 | 권한 |
0 | — |
1 | –x |
2 | -w- |
3 | -wx |
4 | r– |
5 | r-x |
6 | rw- |
7 | rwx |
숫자로 권한을 넣을 땐 소유자, 소유그룹, 기타 순으로 숫자를 넣어준다.
예시 1. 소유자 읽기,쓰기,실행 권한 / 소유자그룹 읽기,쓰기 권한 / 기타 읽기 권한 부여
[root@newhost permission]# chmod 764 permission_test
이거 위에서 알파벳으로 했으면
[root@newhost permission]# chmod u+rwx,g+rw,o=r permission_test
인데 훨씬 간단한 걸 알 수 있다.
처음에 숫자에 매칭되는 권한을 외우는 게 좀 번거로울 수 있지만 대부분은 754나 755 처럼 거의 쓰는 패턴을 반복적으로 쓰기 때문에 숫자로 쓰는 걸 추천한다.
4. 하위 디렉토리 전체 권한 부여
권한 부여는 보통 하나의 파일보다는 특정 디렉토리와 하위 디렉토리 전체를 포함해서 주는 경우가 많다.
이럴 땐 -R 옵션을 사용한다.
[root@newhost permission]# chmod -R 754 permision_dir