본문으로 바로가기
반응형

리눅스는 여러 사용자가 하나의 OS를 사용하는 다중 사용자 시스템(Multi-User System)이다.

주로 서버로 사용되는 리눅스는 여러 사용자가 동시에 접속하는 경우가 대부분이고, 다양한 사용자가 하나의 OS에 접근하게 된다.

따라서 리눅스에서는 사용자를 관리하고 사용자의 그룹을 관리하는 것이 매우 중요하다.


리눅스는 모든 권한을 가진 super user가 있다. 일반적으로 root이름의 유저가 super user이다.
또한 모든 사용자는 하나 이상의 그룹에 소속되어야 하는 것이 기본이다.

사용자와 그룹을 관리하는 명령어를 알아보기 이전에, 리눅스의 사용자와 그룹에 대한 정보를 저장하고 있는 파일인 /etc/passwd와 /etc/group 파일에 대해 알아보자.


사용자 정보 관리

사용자에 대한 관리 정보는 /etc/passwd 파일에 정의되어 있다.
vi /etc/passwd 명령어를 터미널에 입력해서 vi 에디터로 해당 파일을 열어보자.

(참고 : vi 에디터에서 행 번호를 보여주는 vi 명령어는 :set number 이다.)


맨위에 root 사용자의 정보를 볼 수 있다.
root 사용자 아래로 많은 사용자 정보들이 기본적으로 존재하는데, 이 사용자들은 실제로 접속할 일이 거의 없는 관리용 사용자이기 때문에 신경쓰지 않아도 된다. 맨 위의 root 사용자 아래로 40번째 라인의 사용자까지가 해당된다.
혹시 필요한 순간이 오면 그 때 검색해서 사용하면 될 것이니 지금은 그냥 넘어가자.

41번 라인에 있는 centos라는 사용자가 root이외로 직접 생성한 사용자이다.
41번 라인에는 centos:x:1000:1000:centos:/home/centos:/bin/bash 라는 텍스트가 저장되어 있는데, 이 라인의 항목들이 무엇을 뜻하는지에 대해 알아보자. 각 항목의 구분은 콜론(:)으로 한다.

- 첫번째, centos는 사용자 이름이다.
- 두번째, x는 비밀번호이다. 비밀번호는 보안을 위해 다른 파일에서 관리되기 때문에 x로 표시된다.
- 세번째, 1000은 해당 사용자가 부여받은 고유 ID이다.
- 네번째, 1000은 해당 사용자가 소속된 그룹의 고유 ID이다. 참고로 리눅스 사용자는 반드시 특정 그룹에 소속되어 있어야 한다.
- 다섯번째, centos는 전체 이름이다. 전체 이름은 따로 설정하지 않으면 기본 사용자 이름으로 사용된다.
- 여섯번째,  /home/centos는 해당 사용자의 홈 디렉터리다.
- 일곱번째,  /bin/bash는 해당 사용자가 사용할 기본 셀이다.

정리하자면 아래와 같다.
사용자 이름:암호:사용자 ID:사용자가 속한 그룹 ID:전체이름:사용자의 홈디렉터리:기본 셀


그룹 정보 관리


그룹이 등록되어 있는 파일은 /etc/gropu이다.

마찬가지로 vi /etc/group 를 터미널에 입력하여 vi에디터로 해당 파일을 열어보자.



/etc/group 파일에서 각 row의 의미는 아래와 같다.

그룹이름:비밀번호:그룹ID:그룹에 속한 사용자 이름


마지막 항목으로 오는 그룹에 속한 사용자 이름은 생략되는 경우도 많기 때문에 /etc/group 파일에 나타나지 않는다고 해서 그룹에 속한 사용자가 없다고 확신할 수는 없다.


여기서 중요한 것은 사용자는 반드시 특정 그룹에 소속 되어야 한다는 것이다.

만약 사용자를 만들 때 별도로 그룹을 지정하지 않는다면, 해당 사용자 이름과 동일한 그룹을 자동으로 생성하고 사용자를 그 그룹에 소속시킨다. 일반적으로 좋은 방식은 아니다.

간단하게 사용자 한 명을 추가해 생성된 사용자와 그룹을 확인해 보자.



"useradd 사용자이름" 명령어를 통해 별도의 그룹 지정 없이 사용자를 생성했다.

그 뒤 /etc/passwd 파일과 /etc/group 파일을 확인해 보면 위 캡처와 같이 해당 사용자가 생성되었고, 사용자 이름과 동일한 이름을 가진 그룹이 자동으로 생성된 것을 볼 수 있다.



반응형

 Other Contents