사용자를 생성하면 별다른 설정이 없다면 새로운 그룹이 생성
74 apache:x:48:
75 scott:x:1001:
76 blue:x:1002:
77 abel:x:1003:
78 user1:x:1004:
79 user2:x:1005:
80 user3:x:1006:
81 user4:x:1007:
82 user5:x:1008:
83 user7:x:1009:
(user7)그룹이름: (x)그룹의암호: (1009)그룹식별번호: (::)그룹 맴버(2차 그룹)
group은 그냥 묶어주는 역할을 한다
[root@server1 ~]# groupadd admin-team
[root@server1 ~]# groupadd dev-team
[root@server1 ~]# groupadd oper-team
위와 같이 3개의 그룹이 있다고 가정해 보자
admin-team에 oper-team 그리고 dev-team과 협력하는 신입사원 adminuser가 입사한다면
[root@server1 ~]# useradd -g admin-team -G oper-team,dev-team adminuser
이렇게 생성하면 된다!
주의
useradd에는 -g -G -u 이외에도 여러가지 옵션이 있다
useradd -u uid를 지정한다
-o uid의 중복을 허용한다
-g 기본그룹의 gid를 설정한다
-G 2차그룹의 gid를 지정한다
-d 홈디렉터리를 지정한다
-s 기본 쉘을 지정한다
-c 사용자의 이름 등 부가적인 설명을 지정
-D 기본 설정 값을 설정하거나 출력
-e 유효기간(기간제 직원) yyyy-mm-dd
-f 비활성 일수 (자격정지)
-k 디렉터리 계정생성시 초기 파일이나 디렉터리를 설정해 놓은 디렉터리를 의미(/etc/skel)
-o랑 -p는 주의해서 써야한다!
-o
-o는 uid의 중복을 허용하는데 이 때 일반 사용자의 uid를 0으로 준다면 어떻게 될까?
useradd -u 0 clouduser3
[root@server1 ~]# useradd -u 0 clouduser3
useradd: UID 0 is not unique
But -o를 붙이면 UID의 중복을 허용한다!
[root@server1 ~]# useradd -u 0 clouduser3 -o
[root@server1 ~]#
하지만 이렇게 만들면
[root@server1 ~]# su - clouduser3
Last login: Mon Jul 12 10:20:06 KST 2021 from 192.168.56.1 on pts/1
[root@server1 ~]# id
uid=0(root) gid=1023(clouduser3) groups=1023(clouduser3) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
clouduser3가 root가 되버린다
일반 유저를 관리자로 만드는 작업이 맞지만 함부로 하면 안된다!
-p
p옵션은 생성하는 유저에 비밀번호를 줄 수 있다.
user를 생성하는데 p옵션을 주면 어떻게 될까?
[root@server1 ~]# useradd -p pass puser
[root@server1 ~]# grep puser /etc/shadow
puser:pass:18820:0:99999:7:::
p옵션으로 계정을 생성하면 grep puser /etc/shaow를 했을 때 암호화 되있어야할 비밀번호가 문자 그대로 출력된다!
따라서 -p옵션은 정말 특수한 상황이 아니고서는 사용해서는 안된다