[ Linux ] 사용자 계정 관리

ma.caron_g·2022년 11월 23일
0

Linux

목록 보기
6/7
post-thumbnail

참고링크

[ 서버 계정 ]

리눅스(Ubuntu)에는 기본적으로 계정이 존재합니다.

[ 서버 계정 종류 ]

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

리눅스에서는 사용자를 root(관리자)일반 사용자로 구분합니다.
각 계정은 ID가 아닌 번호를 부여하여 UID(User Identity)로 관리됩니다.

Tip.
UID가 0번인 사용자는 슈퍼유저로 인식해서 관리자 계정이 됩니다.
일반 사용자 계정의 UID 범위는 /etc/login.defs 에 정의되어 있습니다.

[ root 관리자 계정 (Super User) ]

UID값이 0인 관리자계정 모든 권한을 가진 계정입니다.
관리자 계정을 통해 다른 계정을 생성하거나 권한을 부여하고 비밀번호를 바꿀 수 있습니다.
만약 다른 계정에 UID값을 0으로 변경하면 그 계정또한 관리자와 마찬가지로 모든 권한을 얻습니다.

[ 일반 사용자 (Normal user) ]

일반 사용자는 관리자에게 권한을 부여받아 사용합니다.
리눅스 파일 생성 시 소유주의 권한을 가지는데 만약 일반 유저라면 root 권한을 가진 파일을 실행하거나 볼 수 없습니다.
따라서 root가 권한을 부여해야만 일반 사용자는 접근이 가능합니다.

[ 시스템 계정 ]

root와 일반 사용자를 제외한 계정으로,
필요에 의해 자동 생성되며 일반적으로 로그인이 불가능합니다.




[ 계정 확인 ]

# 현재 사용자의 UID, GID, 그룹정보를 확인하는 명령어
$ id
macarong@ubuntu-server-22:~$ id
uid=1000(macarong) gid=1000(macarong) groups=1000(macarong),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd)

[ UID(User ID) : 사용자 식별 번호 ]

  • 슈퍼유저의 UID = 0
  • /etc/passwd에서 확인 가능
  • 1~499 시스템을 제어하는 계정 -> 로그인이 되지 않도록 생성하는 것이 원칙
  • 500 ~ 60000 까지 일반 계정

[ GID(Group ID) : 그룹 식별 번호 ]

  • 슈퍼유저의 GID = 0
  • /etc/passwd/etc/group에서 확인 가능
  • 리눅스는 그룹을 통해서 사용자를 묶을 수 있다.
# 현재 호스트에 로그인되어 있는 모든 사용자 출력
$ users
macarong



# 모든 사용자 정보 자세히 출력 (터미널 종류, 로그인 시각 등 기본적으로 출력)
$ who [options]
macarong	tty2	2022-11-23 01:18 (tty2)



# 현재 로그인한 사용자의 사용자명 출력
$ whoami
macarong

$id -un
macarong

$logname
macarong



# 현재 로그인한 사용자가 어떤 시스템에서 로그인했는지 어떤 프로세스를 실행하고 있는지 출력
# -h, --no-header 컬럼의 헤더를 출력하지 않음
# -s, --short 정보를 간략히 출력
$ w [options][user]
 02:39:39 up  1:21,  1 user,  load average: 0.00, 0.07, 0.16
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
macarong tty2     tty2             01:18    1:21m  0.01s  0.01s /usr/libexec/gnome-session-binary --session=ubuntu



# 프로세스를 종료하지 않고 계정만 로그아웃하여 이전에 사용중인 계정으로 돌아가는 명령어
$ logout
$ exit

[ 전체 계정 확인 ]

# 전체 목록 확인
$ cat /etc/passwd

# 아이디만 잘라서 확인
$ cut -f1 -d: /etc/passwd

[ root 계정 관리 ]

[ root 암호 설정]

# 패스워드 입력 후 로그인
sudo passwd root

[ root 로그인 ]

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



# 로그아웃을 하지 않고 다른 사용자의 계정으로 전환 (계정명 미입력하면 root로 로그인)
# su뜻 : switch user
$ su [계정명]

[ root 계정 관리 방안 ]

  • 시스템 초기 환경설정 시에만 이용하고 SSH를 통해 root 사용자 로그인이이 되지 않도록 설정
  • 시스템상 root계정은 유일해야 함
  • PAM을 통해 root 사용자로 로그인 할 수 없도록 설정
  • 환경변수 TIMOUT을 설정하여 자동 로그아웃 되도록 설정
  • root 계정으로 로그인하는 것을 지양하고 필요한 경우 sudo 명령을 사용.
#ssh 서비스의 root 로그인 막기

# sshd_config 파일을 root 권한으로 수정
$ sudo vi /etc/ssh/sshd_config

# ... 파일내용 중 PermitRootLogin 항목을 no로 설정

# sshd 서비스 재시작
$ sudo systemctl restart sshd



[ 시스템 계정 관리 ]

  • 시스템의 특정 서비스에 대한 권한을 행사할 수 있는 계정
  • bin, daemon, adm, lp, sync, shutdown, halt, mail같은 계정들이 시스템 계정
  • /etc/passwd 파일에서 uid가 1~499 갖는 계정 살펴봄.
    • 레드햇 계열은 100~499 데비안 계열은 100 ~ 999 범위
    • 시스템 계정은 보통 0~99의 범위를 가짐.

시스템과 일반 사용자 사이에는 실질적인 기술적 가치가 없다. 일반적으로 OS 및 새 패키지를 설치할 때 시스템 사용자가 자동 생성된다.
-r(--system) 옵션을 사용하여 시스템 사용자 계정을 만들 수 있다.
시스템 사용자는 만료 날짜 없이 생성된다.
해당 UID는 login.defs 파일에 지정된 시스템 사용자 ID 범위에서 선택되며, 일반 사용자에게 사용되는 범위와는 다르다.

$ sudo useradd -r username



[ 계정 추가 명령어 ]

< 'useradd'와 'adduser' 의 차이 >

리눅스 CentOS에서는 adduser가 useradd에 대한 링크파일이다.
즉, CentOS에서 'useradd == adduser'이다.

반면, Ubuntu에서는 차이가 나뉘는데

  • useradd : 순수하게 "계정만 생성하고 기본 쉘인 sh가 할당" 홈 디렉토리비밀번호등은 따로 설정해주어야한다.
  • adduser : 계정 생서 시 비밀번호와 사용자의 기타 정보를 입력 받는다. 옵션을 통해 기본 쉘이거나 로그인 옵션 등도 설정할 수 있다. 홈 디렉토리도 자동 생성


`adduser`사용을 권장합니다.

[ 사용자 추가 (useradd) ]

# 사용자를 생성합니다.
$ useradd testuser

추가된 사용자는 /etc/passwd 파일에서 확인할 수 있습니다.

# root계정으로 로그인
$ su
# root 비밀번호 입력

$ users
macarong

$ useradd testuser
$ cat /etc/passwd

testuser 계정이 추가되었습니다.

[ 사용자명 ] : [ 비밀번호 ] : [ uid ] : [ gid ] : [ 사용자 계정 설명 ] : [ 홈 디렉토리 ] : [ 쉘 ]

각 계정은 콜론(:)으로 정보를 구분하여 담고있습니다.
| 사용자명 | 비밀번호 | uid | gid | 사용자 계정 설명 | 홈 디렉토리 | 쉘 |
|:------:|:-----:|:----:|:---:|:-----------:|:---------:|:--:|
| testuser | x | 1001 | 1001| | home/testuser | /bin/sh |

위에서 디렉토리를 직접 설정해주어야한다했는데, 디렉토리가 지정되어있습니다.
하지만 실제로는 home 디렉토리가 만들어지지 않아 사용을 할 수 없습니다.

# 사용자 생성하고 홈 디렉토리는 미생성
$ useradd testuser

# 사용자 홈 디렉토리를 /home/testuser으로 자동 생성
$ useradd -m testuser

[ 사용자 추가 옵션 ]

명령어설명
-d, --home홈 디렉토리 지정
-D, --default사용자 생성 시 사용하는 기본값을 보거나 설정
-e, --expriedateyyyy-MM-dd 형식으로 계정의 만기일 지정
-f, --inactive패스워드 만료일 이후 유효기간을 설정
1 이상의 숫자이면 해당 일 수 만큼 패스워드 유효
0이면 만료되면 바로 잠김. -1이면 해당 기능을 사용하지 않음.
-g, --gid Group사용자 그룹 설정.
설정하지 않으면 사용자 이름과 동일한 그룹에 설정
-G, --groups기본 그룹 이외에 추가로 그룹을 생성할 때
-k, --skel SKEL_DIR-m 옵션을 통해 홈 디렉토리 생성할 때 복사할 기본 파일을 지정할 때 사용
-m, --create-home홈 디렉토리를 지정할 때 사용하고 디렉토리가 없으면 생성
-k 옵션과 같이 사용해서 홈 디렉토리 생성 시 복사할 기본 파일 경로도 지정
-M홈 디렉토리를 생성하지 않음
-N, --no-user-group사용자와 동일한 이름으로 그룹을 생성하지 않음
-p, --password평문이 아닌 암호화된 패스워드를 설정
-r, --system시스템 계정을 생성
-s, --shell사용자가 사용할 쉘을 지정
-u, --uid사용자 유일한 UID값을 설정

[ 사용자 생성 정보 기본 사항 확인 (-D) ]

root@ubuntu-server-22:/# sudo useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

[ 홈 디렉토리 지정 (-m) ]

사용자의 홈 디렉토리를 지정하는 옵션으로, 중간 경로가 있을 경우 미리 생성해주어야합니다.
별도 지정하지 않으면 -D를 통해 확인했던 HOME값인 /home에 '사용자명'으로 자동 생성됩니다.

# 사용자 홈 디렉토리를 /home/testuser으로 자동 생성
$ useradd -m testuser

# 기본적으로 useradd는 /home에 사용자의 홈 디렉토리를 생성.
# 사용자의 홈 디렉토리를 다른 위치에 작성하려면 d(--home) 옵션을 사용
$ useradd -m -d /home/color/testuser testuser

[ UID 지정하기 (-u) ]

사용자의 uid를 설정하는 옵션으로 별도 지정하지 않을 경우, uid는 자동 발번되어 추가됩니다.

#특정 UID를 가진 사용자를 생성
$ useradd -u 999 testuser
$ useradd -u [UID숫자] [유저명]

# 사용자의 UID를 확인
$ id -u testuser

[ 그룹 지정하기 (-g) ]

사용자가 소속될 그룹을 지정하는 옵션으로, 옵션을 생략할 경우, 아이디와 동일한 그룹에 포함시킵니다.
옵션을 이용하여 gid를 지정할 경우, 해당 gid가 반드시 생성되어 있어야만 한다.

# 그룹을 지정하여 사용자를 생성. 단, 그룹은 미리 생성되어 있어야함.
$ useradd -g groupname testuser
$ useradd -g [그룹명] [유저명]

리눅스 사용자는 하나 이상의 그룹에 속하게 되어있습니다.
그래서 사용자를 추가할 때, 자동으로 gid도 발번됩니다.

# 사용자 추가
$ adduser -m testuser2
$ tail -1 /etc/passwd
testuser2:x:1002:1002:testuser2,1001,01011111111,none,none:/home/testuser2:/bin/bash
# testuser2는 gid값이 자동으로 생성되어 1002번을 사용하고 있다.
# test3를 1002번과 같은 gid 를 사용하게 사용자를 추가해보자.
$ useradd -m -g 1002 testuser3
$ tail -1 /etc/passwd
testuser3:x:1003:1002::/home/testuser3:/bin/sh

-g로 그룹 id값을 지정했더니 testuser3도 1002번의 gid값을 가진다.

[ 2차 그룹 지정 (-G) ]

사용자는 한 개가 아닌 한 개 이상의 그룹에 속할 수 있다.

# 1차 그룹은 1002 2차 그룹은 1001번 그룹에 속하도록 계정을 추가.
$ useradd -g 1002 -G 1001 testuser4

# 계정 추가 확인
$ tail -1 /etc/passwd
testuser4:x:1004:1002::/home/testuser4:/bin/sh

추가가 되었지만 1001번으로 지정한 정보는 나오지 않고 UID(1004)와 GID(1002)만 나타내진다.

2차 그룹을 확인하는 방법은

# group에서 "testuser4"가 포함된 부분 출력
$ cat /etc/group | grep testuser4
testuser:x:1001:testuser4
# [그룹명]:[비밀번호]:[GID]:[같은 그룹에 속한 계정]
# testuser의 그룹 1001번에 testuser4 계정이 존재.

그룹이 여러 개일 시, 한 줄씩 본인이 포함된 그룹의 정보를 보여줍니다.

$ cat /etc/group | grep macarong
adm:x:4:syslog,macarong
cdrom:x:24:macarong
sudo:x:27:macarong
dip:x:30:macarong
plugdev:x:46:macarong
lxd:x:110:macarong
macarong:x:1000:
[그룹명]:[비밀번호]:[GID]:[같은 그룹에 속한 계정]

[ 사용자 설명 추가 (-c) ]

--comment의 줄임말로 -c를 사용하여 사용자의 설명을 추가합니다.

# 새로 추가하는 유저에 코멘트를 달 경우,
useradd -c "New Comment User" testuser
# 기존 코멘트를 변경할 경우,
chmod -c "Change Comment User" testuser
# 확인
$ cat /etc/passwd
testuser:x:1001:1001:Change Comment User:/home/testuser:/bin/bash

[ 사용자 계정 만료일 설정 (-e, -E) ]

[ chage 명령어 ]

명령어설명
-d, --lastday패스워드를 변경해야 할 날짜수 변경
-E, --expiredate계정이 만료되는 날 설정
-I, --inactive계정 만료 후 패스워드 비활성화 할 때까지 유예기간을 설정
-l, --list계정의 패스워드 만료 정보를 보여줌
-m, --mindays패스워드 변경할 때 최소 날짜를 지정
-M, -maxdays패스워드 변경할 때 최대날짜 지정
-W, --warndays패스워드 만료에 대한 경고 메시지를 보여줄 날짜를 지정
  • 사용자의 계정 만료 정보를 관리하는 명령어

계정 만기일을 설정하는 명령어로 yyyy-MM-dd 포맷을 통해 설정한다

# 새로운 유저를 생성할 때,
$ adduser -e 2022-12-24 testuser4
# 기존 유저의 만료일을 수정할 때, (크리스마스에 혼자 있고 싶으니깐 전에 나가;)
$ chage -E 2022-12-24 testuser4

# 만료일 조회
$ sudo chage -l testuser4
Last password change					: Nov 24, 2022
Password expires					: never
Password inactive					: never
Account expires						: Dec 24, 2022
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

[ 사용자 패스워드 만기일 설정 (-f, -m ) ]

설정 기준으로 패스워드를 며칠동안 사용할지 설정하도록 합니다.
만료 시 변경해주어야 합니다.

# 새로운 계정 생성 시
$ useradd -f 3 testuser4
# 기존 계정 변경 시
$ chage -m 3 testuser4

$ sudo chage -l testuser4
Last password change					: Nov 24, 2022
Password expires	-				: never
Password inactive					: never
Account expires						: Dec 24, 2022
Minimum number of days between password change		: 3
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

[ 사용자 쉘 지정 (-D) ]

[ 현재 설치된 쉘 정보 조회 ]

root@ubuntu-server-22:/# cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen

사용자의 셸을 지정하는 옵션입니다.
옵션을 지정하지 않으면, '/etc/default/useradd' 파일의 기본 설정을 따른다.

기본 쉘 : SHELL = /bin/sh

# 기본 로그인 쉘을 /bin/sh에서 /bin/bash로 변경
$ sudo useradd -D -s /bin/bash

# 기본 쉘 값이 변경되었는지 확인
sudo useradd -D | grep -i shell
SHELL=/bin/bash

[ 계정 패스워드 명령어 ]

[ 패스워드 설정 (passwd) ]

다음 명령어를 사용하면 새로 바꿀 비밀번호(New password)를 물어보고, (Retype new password)를 통해 비밀번호를 재확인 한 후, 변경을 완료시킵니다.

$ passwd [옵션] [username]

Changing password for user username.
New password:
Retype new password:
passwd : all authentication tokens updated successfully.
명령어설명
-d, --delete패스워드 삭제, 비밀번호 없이 로그인 가능
-e, -expire사용자의 패스워드를 만료
-i, --inactive패스워드 만료 후 비활성화 전 유예기간 일 지정
-l, --lock사용자 패스워드에 락을 걸어 로그인을 막음
-n, --mindays비밀번호를 변경할 수 있을 때까지 유지해야할 일 수 설정
-q, --quiet화면 출력없이 명령을 수행
-S, --status사용자의 로그인명, 패스워드 상태, 설정여부, 마지막으로 변겨안 날짜, 패스워드 변경까지 남은 기간 등 다양한 정보 출력
-u, --unlock락을 걸었던 패스워드를 다시 해제
-w, --warndays패스워드 만료 전 경고날짜 지정
-x, --maxdays최대 사용기간 설정

[ 계정 전환 (su) ]

# 다른 사용자의 권한으로 실행
$ su [options] [username]

su : switch user의 약자

[username]값이 비어있을 경우 자동으로 root값으로 변경.

옵션설명
-c, --command지정한 사용자로 쉘이 실행할 명령어 지정
-, -l, --login사용자가 직접 로그인했을 때 동일하게 환경변수가 설정되고 홈 디렉토리로 이동
-s, --shell명시된 쉘 사용

[ 계정 설정 (usermod/chmod) ]

사용자 쉘, 홈 디렉토리, 그룹, UID, GID 사용자 설정을 변경합니다.
useradd 명령어의 설정 대부분 적용 가능.

$ usermod [옵션] username
옵션설명
-a, --append사용자에 그룹 추가하기 위해 -G 옵션과 사용
-c, --comment사용자에 간단한 정보 입력
-l, --login로그인 이름 변경
-L, --lock패스워드에 락을 걸음
-U, --unlock패스워드 락 해제
# 사용자 홈 디렉토리 변경. -m 옵션까지 입력하면 내용도 복사
$ usermod -d /home/changedir testuser

# 사용자 그룹을 photo 사용자 그룹으로 변경
$ usermod -g photo testuser

[ 계정 삭제(1) (userdel) ]

$ userdel [옵션] [username]

# 계정삭제. 단, 홈 디렉토리 파일은 남아있음.
$ userdel testuser

# -r 옵션을 통해 사용자 계정 홈 디렉토리도 삭제
$ userdel -r testuser

# -f옵션으로 강제 삭제
$ userdel -f testuser

[ 계정 삭제(2) (deluser) ]

# userdel이랑 같지만 옵션명이 다릅니다.
$ deluser [username]

# 홈 디렉토리 삭제
$ deluser --remove [username]

# 홈 디렉토리, 계정명으로된 모든 파일 삭제
$ deluser --remove-all-files [username]

home이나 passwd에 유저 디렉토리, 정보를 삭제해서 계정 삭제하는 방법도 존재한다.

ㅌ>

# 홈 디렉토리 및 하위폴더 삭제
$ sudo rm -r /home/[username]
>
# /etc/passwd 에서 해당 내용 삭제
$ sudo vi /etc/passwd



[ 그룹 계정 관리 ]

그룹이란 사용자를 묶어 관리하게 하는 매커니즘이다.
그룹을 통해 각 그룹에 보안설정, 접근설정, 권한등을 일괄 적용 관리할 수 있다.
모든 사용자는 UID와 그룹에 대한 식별자인 GID를 가진다.
사용자 생성 시 기본으로 사용자 이름과 동일한 그룹으로 생성하여 포함됨.

[ 그룹 출력 (groups) ]

# 특정 사용자나 현재 로그인한 사용자가 속한 그룹을 표시
$ groups

[ 그룹 생성 (groupadd) ]

$ groupadd [옵션] groupname
옵션설명
-f, --force그룹을 생성할 때 이미 생성되어 있더라도 성공으로 간주
-r, --system시스템 그룹을 생성
-g, --gid GID그룹의 양수의 GID를 지정
-o, --non-unique그룹을 생성할 때 중복된 GID값 허용
# GID 지정하여 그룹을 생성
$ sudo groupadd -g 550 groupname

[ 그룹 정보 변경 (groupmod) ]

옵션설명
-g, --gid변경할 GID 설정
-o 옵션을 주지 않는다면 유일한 정수값
-n, --new-name그룹의 이름을 변경
# lastest 그룹 이름을 new 그룹으로 변경
$ sudo groupmod -n new lastest

# GID를 567로 변경
$ sudo gorupmod -g 567 lastest

그룹관려 설정파일인 /etc/group/, /etc/gshadow/, /etc/passwd/ 에서 그룹관련 속성을 변경할 수 있습니다.

[ 그룹 삭제 (groupdel) ]

그룹을 삭제하기 위해선 주 그룹에 존재하는 사용자가 없어야합니다.
(사용자를 삭제한 후 그룹을 삭제할 수 있음.)
또한 파일 중 그룹이 설정된 파일이 없어야 한다.

$ sudo groupdel [groupname]

[ 그룹 전반적인 관리 및 패스워드 변경 (gpasswd) ]

그룹 패스워드 변경만이 아닌 앞에서 본 그룹 추가/삭제 등 전반적인 그룹 관리 마스터 명령어입니다.

$ gapsswd [옵션] [groupname]
옵션설명
-a, --add user그룹에 사용자를 추가
-d, --delete user그룹에서 사용자 삭제
-r, --remove-password group그룹의 패스워드 제거
그룹 멤버는 newgrp 명령어를 사용해 그룹에 참가
-R, --administrator user ..그룹 접근 제한
패스워드를 가진 그룹멤버만 newgrp통해 그룹에 참가
-A, -administrator user..관리자로 지정할 사용자 설정
-M, --members user..그룹멤버 설정

그룹의 패스워드 정보는 /etc/group/etc/gshadow/에 저장되어 있습니다.

[ 그룹 참여 (newgrp) ]

만일 참여하려는 그룹에 그룹패스워드가 존재하는데, 사용자가 명령어를 통해 그룹에 참여하려면 패스워드 입력이 필요합니다.

# 현재 그룹대신 [newgroupname] 그룹으로 전환
$ newgrp [newgroupname]



[ 사용자 환경설정 파일 종류 ]

사용자 계정과 그룹 정보는 /etc 디렉토리 이하에 존재합니다.

구분 파일명 설명
계정 및 그룹 설정파일 /etc/passwd 사용자 계정의 아이디, 그룹정보 등 계정정보
/etc/shadow 암호화된 패스워드 및 정책 설정 정보
/etc/group 사용자 그룹의 기본정보
/etc/gshadow 사용자 그룹의 암호화된 패스워드 정보
계정 환경설정 파일 /etc/default/useradd useradd명령을 사용할 때 기본 사용자 부가정보
/etc/login.defs 로그인 수행 시 기본설정
/etc/skel 홈 디렉토리 생성 시 기본으로 제공할 파일



[ /etc/passwd ]

  • 로그인 시 필요한 UID, GID, 홈 디렉토리, 쉘 등의 사용자 계정 정보를 포함.
  • 모든 사용자에게 읽기권한 가진 파일
  • 루트 사용자만 쓰기 허용
$ cat /etc/passwd
[사용자명]:[비밀번호]:[UID]:[GID]:[사용자설명]:[홈 디렉토리]:[쉘 경로]

# 사용자명 : 로그인할 때 사용하는 사용자 이름.
# 비밀번호 : x는 그냥 암호화된 패스워드를 보관하고 있다는 의미.
# UID : 사용자 번호
# GID : /etc/group 파일에 보관된 주 그룹 ID번호
# 사용자 설명 : 사용자에 대한 추가설명 코멘트 필드
# 홈 디렉토리 : 기본 디렉토리로 절대경로로 설정
# 쉘 : 쉘의 위치를 절대 경로로 지정.

[ /etc/shadow ]

  • 사용자 패스워드를 해시 알고리즘으로 암호화한 값과 패스워드와 연관된 여러 속성을 담고있는 파일
  • /etc/passwd 파일은 각 사용자들에 대한 암호 정보를 담고있음.
$ cat /etc/shadow
testuser:$y$j9T$r8DsO/2/jn/G.Heds.$25bmLpaxoM.Ld2o9P3DSE3ew.C9Uw31D7tYMeiFdTMA:19319:0:99999:7:::
[사용자명]:[패스워드]:[마지막 변경일]:[패스워드]:[최소 사용일]:[최대 사용일]:[만료 경고일]:[유예기간]:[만료일]

[ etc/default/useradd ]

  • 사용자 생성 시 사용되는 기본 설정값이 저장된 환경설정 파일
  • useradd -D로 내용 확인 가능.

[ etc/login.defs ]

  • 쉐도우 패스워드 스위트를 위한 읽기 전용 환경설정
    • 패스워드 최대 사용일 : PASS_MAX_DAYS
    • 패스워드 최소 사용일 : PASS_MIN_DAYS
    • 패스워듬 만료 경고일 : PASS_WARN_AGE

[ etc/group ]

  • 그룹에 속한 사용자를 관리하는 파일.
  • 그룹에 여러 사용자가 속할 수 있음.
$ cat /etc/group | grep mail
mail:x:8:
[그룹명]:[패스워드]:[GID]:[멤버목록]

[ etc/gshadow ]

  • 그룹의 암호화된 비밀번호 정보를 포함
  • 루트권한 사용자만 접근 가능
$ cat /etc/gshadow
testuser:!::testuser4
[그룹명]:[패스워드]:[그룹관리자]:[멤버목록]
profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글