[Linux] 사용자 관리 파일

728x90

사용자 관리 파일

/etc/passwd

계정명 : password(X) : UID : GID : 코멘트 : 홈디렉토리 : 로그인쉘

/etc/shadow

계정명 : 암호화된 패스워드 : lastchd : min : Max : warning : inactive : expire : blank

암호화된 패스워드는 아래와 같은 구성으로 이루어져 있다.
$해쉬알고리즘 종류(6-sha512) $salt값(패스워드를 변경할때 임의적으로 생성) $ 입력한 패스워드와 salt 값을 해쉬알고리즘으로 암호화한 값

/etc/group

그룹명 : 패스워드(X) : GID : 보조그룹 구성원

기본그룹 보조그룹
1인1그룹 0개 이상 가입 가능
계정생성시에 자동으로 설정 수동으로 설정

파일이나 디렉토리에 소유그룹의 권한을 행사하기 위해서 사용한다.

사용자 전환

su : 사용자로만 전환(위치나 일부 환경변수 기존 사용자 정보로 유지)
su - : 전환되는 사용자의 모든 환경까지 가져옴.

su => 전환시에 해당 사용자의 password 필요
root로 전환시에 해당 password가 알려질 가능성이 있다.

sudo : 일회성으로 root 권한을 가져올때 사용
sudo -i : su - root 처럼 root로 전환 시 사용

sudo => root password가 아닌 자신의 password 필요
sudo를 사용하기 위해서는 wheel 그룹에 속해있어야 함.
기본 그룹이든 보조 그룹이든
wheel 그룹이 /etc/sudoers에 sudo를 사용할 수 있는 그룹으로 설정이 되어 있기 때문에

사용자관리

사용자 생성에 관련된 설정 2가지

/etc/default/useradd
해당 내용 확인

vi /etc/default/useradd

or

useradd -D(default란 의미)

/etc/login.defs

생성

useradd [option] 계정명 => 옵션을 안붙이면 default 설정을 따라감.

-u : uid 설정
-g : gid 설정
-G : 보조그룹 설정
-c : 코멘트 설정
-d : 홈디렉토리 설정
-s : 로그인 쉘 설정
- 서버로의 로그인 필요치 않은 계정(ftp, 메일)
일 경우 쉘을 /sbin/nologin 로 설정
-b : base 홈 변경
-m(make) : /etc/login.defs에서 홈디렉토리 생성 항목이 no로 되어 있을 시에 홈디렉토리 생성 위해서 사용하는 옵션
-D : default 확인 및 설정

수정

usermod option 계정명

옵션
useradd에서 사용했던 옵션을 거의 다 사용할 수 있음.
usermod에서만 사용되는 옵션
-a : 보조그룹을 추가할 때 (-aG 형태로 쓰임)
-m(move) : 홈디렉토리 변경시에 실제로 디렉토리를 변경하기 위해서 사용(-md 형태로 쓰임)
-l : 사용자 계정명 변경
-L : 계정 lock
-U : 계정 lock 해제

삭제

userdel [option] 계정명
옵션
-r : 삭제하고자 하는 계정에 홈디렉토리와 메일함 삭제시에 사용.
사용하지 않으면 홈디렉토리와 메일함이 남아있게 되서 동일한 UID로 배정받는 사용자가 사용할 수 있게 됨.

그룹 관리

생성

groupadd [option] 그룹명
-g : GID 설정
-o : 기존 GID 사용(-og형태로 사용)

수정

groupmod option 그룹명
-g : GID 변경
-o : 기존 GID 사용
-n : 그룹명 변경

삭제

groupdel 그룹명

암호

암호 변경

passwd 명령어를 통해서 패스워드 변경 가능

암호 속성 변경

chage option 계정명
옵션
-l(소문자 엘) : 암호 속성 확인
-m : min date 변경
-M : Max date 변경
-w : warning date 변경
-I(대문자 아이) : inactive 변경
-E : expire 변경
-d : 암호 변경 시기 설정

모든 사용자 삭제

userdel -r 사용자명

사용자 생성 및 활성화 실습

# centos 사용자 생성 및 활성화

$ useradd centos
$ passwd centos

# centos 를 sudo로 사용자 전환 할 수 있도록 설정 후 centos로 사용자 전환
# -G wheel 을 해주는 이유는 보조그룹에 wheel 이 있어야 sudo 명령어를 사용할 수 있기 때문이다.

$ usermod -G wheel centos
$ su - centos

# sudo -i로 root 전환 후 사용자 생성

$ sudo -i

#default 값을 home1, /bin/sh 로 설정

$ useradd -D -b /home1 -s /bin/sh
# 사용자      uid       gid   보조그룹    home              shell
user01      1001    1001  1000    /home/user01(-b)  /bin/bash

$ useradd -b /home -s /bin/bash user01
user02     2000    1000  10    /home/user2       /bin/bash

$ useradd -u 2000 -g 1000 -G 10 -d /home/user2 -s /bin/bash user02
user03     2001    2001  wheel    /home/user3       /bin/bash

$ useradd -u 2001 -d /home/user3 -s /bin/bash user03
testuser01 2002    1000            /home1/testuser01 /bin/sh

$ useradd -u 2002 -g 1000 testuser01

#default 값 home, /bin/bash 로 변경

$ vi /etc/default/useradd
/home1 => /home
/bin/sh => /bin/bash 

# user02의 홈디렉토리를 /home/user02로 변경

$ usermod -md /home/user02 user02

# user03의 홈디렉토리를 삭제 후에 다시 만들 것

$ rm -rf ~user03/
$ cp -r /etc/skel ~user03/
$ chown -R user03:user03 ~user03
$ chmod 700 ~user03/

# testuser01의 아이디명을 user04로 변경, 코멘트 user4로 변경, 홈디렉토리 /home/user04로 변경, 쉘을 /bin/bash로 변경     

$ usermod -l user04 -c user4 -md /home/user04 -s /bin/bash testuser01

group 생성 실습


# 그룹명           gid
# newgroup01     4000

$ groupadd -g 4000 newgroup01

# newgroup02    10

$ groupadd -og 10 newgroup02

# newgroup01을 newgroup 으로 이름 변경하고, gid를 1000으로 변경

$ groupmod -n newgroup -og 1000 newgroup01

# newgroup02를 newgroup01 로 이름 변경, gid를 4000 으로 변경

$ groupmod -n newgroup01 -g 4000 newgroup02

# user01을 newgroup의 구성원으로 

$ id user01   ->  다른 그룹이 존재하기 때문에 aG
$ usermod -aG newgroup user01

# user02를 newgroup01의 구성원으로

$ id user02   -> 다른 그룹이 존재하기 때문에 aG
$ usermod -aG newgroup01 user02

# 그룹 구성원 확인

$ grep 'new' /etc/group

# newgroup 과 newgroup01 삭제

$ groupdel newgroup
-> 에러발생 groupdel: cannot remove the primary group of user 'centos'
$ id centos
$ groupmod -g 5000 newgroup
$ groupdel newgroup
-> 에러발생 groupdel: cannot remove the primary group of user 'centos'
$ usermod -g 1000 centos
$ groupdel newgroup
-> 에러발생 groupdel: cannot remove the primary group of user 'user01'
-> 에러발생 groupdel: cannot remove the primary group of user 'user02'
-> 에러발생 groupdel: cannot remove the primary group of user 'user03'
-> 에러발생 groupdel: cannot remove the primary group of user 'user04'
-> usermod -g 1000 [유저명] 으로 모든 유저의 그룹을 변경시켜서 삭제할 수 있도록 한다.
$ groupdel newgroup01

# aclgroup gid 3000으로 생성

$ groupadd -g 3000 aclgroup
728x90