사용자 관리 및 파일에 대한 사용자 권한 관리
사용자 관리
리눅스는 다중 사용자 시스템이다. 즉 한대에 리눅스에 사용자 여러명이 동시에 접속할 수 있다. 리눅스는 기본적으로 root라는 이름을 가진슈퍼 유저가 있다. root는 모든 시스템 권한을 가지고 있다. 또한 시스템에 접속할 수 있는 사용자를 생성할 수 있는 권한도 있다.
그런데 사용자는 혼자서 존재하는 것이 아니라 하나 이상의 그룹에 소속되어야 한다. 리눅스 서버에 접속하여 /etc/passwd를 열어보면 리눅스에 등록된 유저 목록을 볼 수 있다.
root:x:0:0:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
centos:x:1000:1000:centos:/home/centos:/bin/bash
위에 centos 유저의 행의 의미는 다음과 같다.
사용자이름:암호:사용자ID:사용자가 소속된 그룹ID:전체이름:홈디렉터리:기본셀
해석해보면 다음과 같다.
- centos 사용자
- 암호가 x로 표시되어 있는데 이는 /etc/shadow파일에 비밀번호가 저장된것을 의미
- centos의 사용자 id는 1000번
- centos가 속한 그룹의 id는 1000번
- 전체이름 centos
- centos 사용자의 홈디렉터리는 /hom/centos
- 로그인시 제공되는 셀은 /bin/bash
다음은 /etc/group 파일을 보자
root:x:0:
bin:x:1:
daemon:x:2:
...
centos:x:1000:centos
각행의 의미는 다음과 같다.
그룹이름:비밀번호:그룹id:그룹에속한 사용자 이름
마지막 ;그룹에 속한 사용자 이름은 참조로 사용된다. 즉, 해당 부분에 아무것도 쓰여있지 않다고 해서 소속된 사용자가 반드시 없다는 뜻은 아니다. 위에 root 경우에도 root 그룹에 속해있으나 화면에 표시되어 있지는 않다.
앞에서 본 /etc/password그룹의 ID가 1000번이므로 centos그룹에는 centos 사용자가 속해 잇는것이다.
파일 관리
먼저 ls -al 명령어 보면 아래와같은 형식들로 파일정보들이 나열되는 것을 볼 수 있다.
파일에 대한 사용자 권한 관리 정보는 위에서 보이는 파일 허가권이다.
파일허가권
rwx는 각각 읽기, 쓰기, 실행을 의미한다. 파일의 허가권을 명령어로는 chmod가 있다. 다음과 같이 사용 가능하다. 'chmod 777 sample.txt'를 실행하면 파일에 모든 유저들은 읽고, 쓰고, 실행할 수 있게 된다. 하지만 777 명령어는 사실상 이 파일에 대해 모두에게 열어주기 때문에 주의해서 사용해야 한다.
10진법 | 2진법 | 파일모드 |
---|---|---|
0 | 000 | --- |
1 | 001 | --x |
2 | 010 | -w- |
3 | 011 | -wx |
4 | 100 | r-- |
5 | 101 | r-x |
6 | 110 | rw- |
7 | 111 | rwx- |
chmod에 뒤에 오는 숫자에 의미는 위에 표를 보면 쉽게 이해할 수 있다. 10진법에서 의미하는 파일 모드가 위와 같이 매핑되어 있기 때문이다.
파일 소유권
파일 소유권은 파일을 소유한 사용자와 그룹을 의미한다. test.txt는 oracle 이라는 사용자가 소유자이고 소유그룹은
파일 소유권은 파일을 소유한 사용자와 그룹을 의미한다. test.txt는 oracle 이라는 사용자가 소유자이고 소유그룹은 dba이다. 소유권을 변경하는 명령어로는 chown이 있다. 'chown centos test.txt' 라는 명령어는 소유주를 centos로 변경하라는 명령어이다.
- chown 명령어는 root사용자만 실행할 수 있다