이번 소개에서는 사용자 계정 관리에 대해서 소개 해드리겠습니다. 리눅스에선 많은 사용자들이 동시에 접속이 가능한데요, 이런 사용자들의 계정을 관리할수있는 방법입니다.
사용자 계정을 관리하기위해선 몇가지 설정파일들과 디렉토리에 대해서 알고계셔야해요.
설정파일/디렉토리: /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow, /etc/login.defs, /etc/default/useradd, /etc/skel 들이있습니다. 우선 하나하나씩 무엇을 위한 설정 파일/디렉토리인지 살펴보겠습니다.
먼저 uid와 gid에 대해서 설명드리겠습니다.
uid는 user id라는 뜻으로 각 사용자마다 가지고있는 고유 숫자입니다.(특정 설정으로 고유숫자가 안될수도있습니다) gid는 group id라는 뜻으로 각 사용자마다 가지고있는 그룹을 id로 뜻해주는겁니다.
UID 사용자계정 번호 범위
0 : 관리자
1~499 : 시스템계정
500~ : 일반 사용자계정
GID 사용범위
500~ : 일반 그룹
1./etc/passwd
계정들의 정보를 가지고있는 파일이라 보시면 됩니다.(설정/수정 가능)
저 같은 경우엔 /etc/passwd안에 MoVenPicK이라는 계정정보를 살펴보며 설명 드리겠습니다.
MoVenPicK : x : 500 : 500 : MoVenPicK's Home : /home/MoVenPicK : /bin/bash
(구분자 : 기준으로 첫번째 필드부터 $1으로 표시하며 설명드릴께요)
$1(MoVenPicK) 사용자 계정명
$2(x) 부여된 패스워드
$3(500) UID
$4(500) GID
$5(MoVenPicK's Home) 계정 설명
$6(/home/MoVenPicK) 계정 홈디렉토리
$7(/bin/bash) 로그인시 기본적으로 사용되는 shell
MoVenPicK이라는 계정은 uid:500,gid:500, 설명은 MoVenPicK's Home이며 홈디렉토리는 /home/MoVenPicK, 사용중인 쉘은 bash쉘 이란걸 알수있네요.
2./etc/shadow
사용자의 암호를 MD5화하여 저장하며 계정의 만료,정지 등을 설정할수있는파일
MoVenPicK2 : !! : 15595 : 0 : 99999 : 7 : : :
$1(MoVenPicK2) 사용자 계정명
$2(!!) 부여된패스워드 (!! = 부여되지않음)
*!!로 되어있는 계정은 로그인 불가
$3(15595) 암호 생성일자
$4(0) 암호 변경할수있는 최소기간(0 = 제한없음)
$5(99999) 암호 변경 의무화 제한시간
$6(7) 계정 만료일자 몇일전부터 경고할지 설정
$7(NULL) 계정 정지일자
$8(NULL) 계정 정지시 정지일수
$9(NULL) 계정 만료일자
기본적으로 계정 만료,정지 일자는 정해지지 않습니다. 따로 정해줘야할시 정할수있습니다.
3./etc/group
그룹들의 정보를 가지고있는 파일(설정/수정 가능)
MoVenPicK : x : 500 :
$1(MoVenPicK) 그룹명
$2(x) 그룹암호
$3(500) GID
$4(NULL) 그룹 구성원(콤마로 구분)
*$1(그룹명) 과 사용자 계정명이 같을시 해당 계정이 해당그룹의 소유주
4./etc/gshadow
그룹의 암호를 MD5화 하여 저장하며 그룹의 소유주,구성원 설정이 가능한파일
MoVenPicK : ! : :
$1(MoVenPicK) 그룹명
$2(!) 그룹암호(! = 부여되지않음)
$3(NULL) 그룹의 소유주
$4(NULL) 그룹 구성원(콤마로 구분)
*$3(그룹소유주) 그룹의 소유주는 기본적으로 그룹명과 계정명이 같은 계정이 소유주이지만 필요시 소유주를 변경 가능
5./etc/login.defs
계정 생성시 기본설정의 정보를 보관하고있는 파일(설정/수정 가능)
1. 사용자 암호 의무변경 제한날짜 설정
2. 사용자암호 최소길이 설정
3. 사용자 암호 의무변경 제한날짜 몇일전부터 경고할지 설정
4,5. UID, GID 최소최대 범위 설정
6./etc/default/useradd
계정 생성시 기본설정의 정보를 보관하고있는 파일(설정/수정 가능)
(llgin.defs와 다른 기본설정을 보관하고있습니다)
1. 홈디렉토리 위치 설정
2. shell 설정
3. 계정 생성시 복사되는 디렉토리 위치 설정
*명령어로도 설정가능
useradd -D [옵션]
-b [경로] 홈디렉토리 설정
-s [경로] shell 설정
7./etc/skel(디렉토리)
계정 생성시 계정 홈디렉토리로 복사될 파일/디렉토리를 보관하고있는 디렉토리
8.계정 생성 명령어
useradd [옵션](여러개가능) [계정명]
-u UID 설정
-g GID 설정(그룹이 존재할시)
-c 계정설명 설정
-d 홈디렉토리 설정
-s shell 설정
-o 존재하는 UID 중복생성 허용
-m -k /etc/skel 대신 다른 디렉토리로 설정
UID: 600, 계정설명: testing, 홈디렉토리: /practice/MoVenPicK3, shell: korn으로 설정하여 MoVenPicK3라는 계정 생성
9.존재하는 계정설정 수정 명령어
usermod [옵션](여러개 가능) [계정명]
-l 계정명 변경
-c 계정 설명 변경
-m -d 계정 홈디렉토리 변경
-s 계정 shell 변경
MoVenPicK3이라는 계정명을 MoVenPicKTest, 계정설명을 modTesting, shell은 bash로 변경
10.계정 암호 생성 명령어
passwd [옵션] [계정명]
-d 암호를 NULL값으로 지정(암호를 최소 NULL값을 주지않을경우 로그인 불가능)
-l 암호변경 잠금설정
-u 암호변경 잠금해제
MoVenPicKTest 암호 설정. 오류가 뜨더라고 계속진행 가능합니다.
(원래, 비밀번호 설정시 비밀번호 타입하는 장면이 보이지않습니다)
11.계정 삭제 명령어
userdel -rf [계정명] 계정, 계정과 관련된 모든 정보 삭제
MoVenPicKTest 계정, 계정과 관력된 모든정보 삭제. /etc/passwd를 보니 더이상 존재하지 않네요.
12. 그룹 생성 명령어
groupadd [옵션] [그룹명]
-f 동일한 그룹 강제 생성
-g GID 설정
groupTest 라는 그룹명으로 GID는 59999로 설정
13. 그룹 수정 명령어
groupmod [옵션] [그룹명]
-n 그룹명 변경
-g GID 변경
groupTest라는 그룹을 그룹명 groupMod, GID는 59998로 변경
14.그룹 삭제 명령어
groupdel [그룹명]
groupMod 그룹 삭제. 더이상 /etc/group에 존재하지않네요.
여기까지 사용자계정관리에 대해서 소개해드렸습니다. 이번 소개는 사용자를 관리하는 아주 중요한 부분이니 명령어 하나하나 옵션하나하나 보시며 시도해보시길 바랄께요^^
읽어주셔서 감사합니다.
'OS > Linux' 카테고리의 다른 글
#11. ACL(Access Control List) (0) | 2012.09.19 |
---|---|
#10. Permission(권한) (0) | 2012.09.14 |
#08. grep/egrep, awk (0) | 2012.09.12 |
#07. 정규표현식(Regular Expression) (0) | 2012.09.11 |
#06. Standard I/O Redirection (0) | 2012.09.10 |