OS

OS리눅스 공부하기-3 {2023년04월28일}

늦게 시작한 개발자 2023. 5. 2. 15:35

https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-%EC%82%AC%EC%9A%A9%EC%9E%90-%EA%B3%84%EC%A0%95-%EA%B4%80%EB%A6%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

 

🐧 리눅스 사용자/그룹 계정 관리 명령어 💯 총정리

리눅스 계정 종류 사용자 분류 루트 계정 : 모든 권한을 가진 특별한 사용자 시스템 계정 : 리눅스 설치시 기본으로 생성되는 계정 사용자 계정 : 실제 리눅스 사용자를 위한 계정 리눅스에서는

inpa.tistory.com

 

리눅스에서는 사용자 구분을 root(Super User :관리자)와 일반 사용자로 구분한다.

각 계정은 흔히 사용하는 ID가 아닌 번호로 부여. UID(User Identity)로 관리

UID가 0번인 사용자는 슈퍼유저로 인식이되어 관리자계정이 된다.

 

root와 일반사용자를 제외한 계정으로는 시스템계정이 있다.

필요에 의해 자동으로 생성되는 시스템계정은 bin, daemon, adm, lp, sync, shutdown, halt, mail 등 여러 가지가 있으며 일반적으로 로그인은 불가능하다.

 

계정확인

id

[root@localhost etc]# id
uid=0(root) gid=0(root) groups=0(root)
[root@localhost etc]# cd
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@localhost ~]# su - oracle
Last login: Wed Apr 26 23:57:28 PDT 2023 on pts/1
[oracle@localhost ~]$ id
uid=1001(oracle) gid=1001(dba) groups=1001(dba)
[oracle@localhost ~]$ su - jslee
Password:
Last login: Thu Apr 27 02:27:10 PDT 2023 on tty1
[jslee@localhost ~]$ id
uid=1000(jslee) gid=1000(jslee) groups=1000(jslee)
[jslee@localhost ~]$

UID : 사용자 식별 번호

- 슈퍼유저의 UID는 0

- /etc/passwd 에서 확인 가능

- 1 ~ 499 시스템 제어하는 계정

- 500 ~ 60000 까지는 일반 계정

GID : 그룹 식별 번호

- 슈퍼유저의 GID는 0

- /etc/passwd 와 /etc/group 에서 확인 가능

- 리눅스는 구릅을 통해서 사용자를 묶을 수 있다.

 

계정 전체 확인

[oracle@localhost ~]$ cat /etc/passwd

 


root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/no
abrt:x:173:173::/etc/abrt:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:994::/var/lib/chrony:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
jslee:x:1000:1000:jslee19c:/home/jslee:/bin/bash
oracle:x:1001:1001::/home/oracle:/bin/bash

sudo superuser do : 현재 계정에서 root  권한을 이용하여 명령어를 실행할 때 사용하는 명령어

su switch user : 로그아웃 하지 않고 다른 계정으로 전환

 

사용자추가 - 1

useradd [추가할 사용자 ID] 혹은  adduser [추가할 사용자 ID]

[root@localhost ~]# useradd jsleetest
[root@localhost ~]# tail -1 /etc/passwd
jsleetest:x:1002:1002::/home/jsleetest:/bin/bash

[jsleetest - 사용자이름]:[x - 비밀번호 없음]:[1002 - UID번호]:[1002 - GID번호]:[빈공간 - 사용자 계정 설명]:[home/jsleetest - 홈 디렉터리]:[/bin/bash - 셀]

 

사용자추가 - 2

useradd [옵션] [추가할 사용자 ID]

-d : 홈디렉터리 지정

-D : 사용자 생성시 사용하는 기본값을 보거나 설정 

-e : useradd -D YYYY-MM-DD 형식으로 계정의 만기일 지정

-g : 사용자 그룹설정. 설정하지 않으면 사용자 이름과 동일한 그룹에 설정.

useradd -g [그룹이름] [사용자]

[root@localhost ~]# groupadd dba
[root@localhost ~]# useradd -g dba oracle

useradd 생성시 옵션 -g로 dba 그룹에 oracle을 생성한다.

-G 기본 그룹이외에 추가로 그룹을 생성할때

$ useradd -g [그룹명] -G [그룹1,그룹2] [유저명]

 

-k -m 옵션을 통해 홈 디렉터리 생성할때 복사할 기본파일을 지정할때 사용

-m 홈 디렉터리를 지정할때 사용하고 디렉터리가 없으면 생성 -k 옵션과 같이 사용해서 홈디렉터리 생성시 복사할 기본 파일경로도 지정 

-M 홈디렉터리를 생성하지 않음

-r 시스템 계정을 생성

-s 사용자가 사용할 셀을 지정

-u 사용자 유일한 UID값 설정

[root@localhost ~]# useradd -u 10000 jsleetest3
[root@localhost ~]# tail -2 /etc/passwd
jsleetest2:x:1004:1001::/home/jsleetest2:/bin/bash
jsleetest3:x:10000:10000::/home/jsleetest3:/bin/bash
[root@localhost ~]# id -u jsleetest3
10000

-N 사용자와 동일한 이름으로 그룹을 생성하지 않음.

-p 평문이 아닌 암호화된 패스워드를 설정

 

사용자 삭제(userdel)

# 계정삭제. 단, 홈디렉터리 파일은 남있음.
userdel [사용자이름]

# -r 옵션을 통해 사용자 계정 홈 디렉토리도 삭제
userdel -r [사용자이름]

# -f 강제 삭제
userdel -f [사용자이름]

그룹 생성

$ groupadd 옵션 [그룹이름]

-f : 그룹을 생성할때 이미 생성 되어 있더라도 성공으로 간주

-r : 시스템 그룹을 생성

-g : 그룹의 양수의 GID를 지정

-o : 그룹을 생성할때 중복된 GID 값 허용

 

그룹 정보 변경

$ groupmod 옵션 [기존그룹명]

-g 변경할 GID 설정

-n 그룹의 이름 변경 

# groupmod -n [변경할 그룹명] [기존 그룹명]
[root@localhost ~]# groupmod -n jsleetest3 jsleetest4

그룹 삭제

$ group del [그룹이름]

단, 그룹에 존재하는 사용자가 없어야 한다.

 

그룹 참여

현재 사용계정 $ newgrp [참여할 그룹 이름]

 

사용자 계정 환경 설정 파일

/etc/passwd - 사용자 계정의 아이디, 그룹정보 등 계정정보

/etc/shadow - 암호화된 패스워드 및 정책 설정 정보

/etc/group - 사용자 그룹의 기본 정보

/etc/gshoadow - 사용자 그룹의 암호화된 패스워드 정보

/etc/default/useradd - useradd명령을 사용할 때 기본 사용자 부가정보

/etc/login.defs - 로그인 수행시 기본설정

/etc/skel - 홈 디렉터리 생성시 기본으로 제공할 파일