Contents

리눅스 그룹 관리, 패스워드 관리

   Mar 22, 2023     6 min read

그룹 관리

  • groupadd(그룹 생성)
  • groupmod(그룹 변경)
  • groupdel(그룹 삭제)
  • gpasswd(관리자 기능)

  • cat / etc/group

    root:x:0:root
    |명령어|설명| |——|—| |root:|그룹 이름| |x:|패스워드| |0:|그룹 식별자| |root|멤버 사용자|



groupadd

  • groupadd [옵션] 그룹명

  • [옵션]
  • -g : GID를 지정한다.
  • -o : -g 옵션과 함께 사용되며 GID를 중복허용한다.

groupadd -g 401 admin
groupadd -g 402 product
groupadd 0g 403 sale

useradd -G admin,produck,sale user1
useradd -G admin user2
useradd user3



tail -n 3 /etc/passwd


사진첨부

tail -n 6 /etc/group


사진첨부

mkdir -m 777 /test
ls -ld /test


사진첨부

cd /test

cat > file1
123 (ctrl + z)

cat > file2
abc (ctrl + z)

cat > file3
xyz (ctrl + z)

chmod o-rwx file*
ls -lh


사진첨부

chgrp admin file1
chgrp product file2
chgrp sale file3



사진첨부

# su - user1
$ whoami
$ groups
$ cd /test
$ ls -lh
$ cat file1
$ cat file2
$ cat file3


사진첨부

$ groups
$ newgrp sale
$ touch file4
$ ls -lh


사진첨부
file4가 만들어진 것을 확인할 수 있다.

# su - user2

$ whoami
$ groups
$ cd /test
$ ls -lh
$ cat file1
$ cat file2
$ cat file3
$ cat file4


사진첨부
file 2, 3은 거부 된 것을 확인할 수 있다.

사진첨부

groupmod

  • groupmod [옵션] 그룹명

  • [옵션]
  • -g : GID를 지정한다.
  • -o : GID를 중복 허용한다.
  • -n : 그룹의 이름을 변경시 사용

  • root 사용자 uid = 0번
  • root 그룹 gid = 0번

# groupadd group1
# tail -n 1 /etc/group
# groupmod -n group999 group1
# tail -n 1 /etc/group


사진첨부

# tail -n 1 /etc/group
# groupmod -g 444 group999
# tail -n 1 /etc/group


사진첨부

# groupadd group777
# tail -n 1 /etc/group
# groupmod -g 0 -o group777
# tail -n 1 /etc/group


사진첨부

groupdel

# groupadd sales

# groupdel sales



gpasswd

  • gpasswd 명령은 단순히 그룹의 암호를 설정하는 것뿐만 아니라 그룹의 암호를 삭제하고 그룹에 멤버를 추가하거나 삭제하는 기능도 수행한다.
  • /etc/group 과 /etc/gshadow 파일을 관리한다.

  • 사용형식 : # gpasswd [옵션] [멤버] [그룹]
    |옵션|설명| |——|—| |-a|그룹 관리자가 해당 그룹에 사용자를 추가| |-A|root가 해당 그룹에 관리자를 지정| |-d|그룹 관리자가 해당 그룹에서 사용자를 없앰| |-M|root가 그룹 멤버를 지정| |-r|그룹 패스워드를 제거함| |-R|해당 그룹 멤버만 접근할 수 있도록 제한함|



# useradd cho1
# useradd cho2
# useradd cho3



  • 일단 cho3를 cho1그룹의 관리자로 추가 후 패스워드를 지정하고 cho1을 그룹에 속하게 하는 과정.
# gpasswd -A cho3 cho1
# su cho3

$ gpasswd cho1
cisco
cisco
$ gpasswd -a cho1 cho1
$ tail -3 /etc/group


사진첨부

  • 그룹 패스워드를 설정했을 때, 그룹에 속하지 않은 사용자가 newgrp 명령어를 이용하여 일시적으로 1차 그룹이 cho1ㅇ로 바뀐 걸 보여줌.
# su cho2

$ id -ng
$ newgrp cho1
cisco
$ id -ng
$ exit
$ id -ng


사진첨부

  • 다시 패스워드를 제거한 경우는 해당 그룹에 속한 사용자만이 newgrp로 해당 그룹에 접근할 수 있음.
# gpasswd -r cho1
# su cho2

$ newgrp cho1
$ exit

# su cho1

$ newgrp cho1
$ id -ng
$ exit


사진첨부

  • 결론
    1. 그룹 패스워드를 설정하면 그룹에 속하지 않은 사용자가 해당 그룹을 1차 그룹으로 일시적으로 사용할 수 있다.
    2. 그룹 패스워드가 없으면 해당 그룹에 속한 사용자만 그룹을 사용할 수 있다.
    3. newgrp 명령어는 사용자의 1차 그룹일시적으로 변경해준다.

  • 참고
    보조 그룹 ( -G ) 에 사용자 추가, 제거하는 방법
# gpasswd -a user1 sales
# gpasswd -d user1 sales




패스워드 관리

  • ` # cat /etc/shadow`
  • root:$1$mlwtctm6$uOCC8NgxpImEY2MulKpAC0:18186:0:99999:7:::

사진첨부

사진첨부

  • 주기적으로 패스워드를 강제로 변경하기 위해서는 사용하는 설정이다. 현재 ccna 계정은 암호최대변경주기가 99999일이기 때문에 패스워드 에이지 설정이 안 된 상태임

# useradd ccna
# tail -1 /etc/shadow

# chage -l ccna


사진첨부

# chage ccna
3
7
(enter)
(enter)
10
2023-03-22

# tail -1 /etc/shadow
# chage -l ccna


사진첨부
잘 바뀐 것을 확인할 수 있다.

# useradd ccnp
# chage -m3 -M7 -W7 -I10 -E2023-03-22 ccnp
# tail -1 /etc/shadow
# chage -l ccnp


사진첨부
한 줄로 명령어를 작성해서 바꿀 수도 있다.

passwd 명령어

  • passwd [옵션] 유저명

  • -d : 패스워드 NULL 지정(암호 삭제) : 패스워드 없이 바로 로그인
  • -l : 패스워드 잠금
  • -u : 패스워드 잠금 해제
  • -S : 패스워드 상태 출력

비밀번호 저장위치

# useradd user10
# cat /etc/shadow | grep user10


사진첨부

  • !!가 뜨는 것은 암호가 없기 때문에 로그인이 안 되는 것을 의미한다.

# passwd user10
# cat /etc/shadow | grep user10


사진첨부

  • user10의 패스워드가 암호화가 되어 저장된 것을 확인할 수 있다.

로그인 실패 시 계정 잠금 설정하기

# vi /etc/pam.d/system-auth

-- 상단에 추가 --
auth required /lib/security/pam_tally.so onerr=fail deny=1
account required /lib/security/pam_tally.so onerr=fail
-- 상단에 추가 --


사진첨부

  • 확인하기
# exit

# user10 으로 로그인 -> 비밀번호 틀리게 설정

# faillog


사진첨부
잠겨진 것을 확인할 수 있다.

  • 잠금 풀어주기
# faillog -r -u user10


사진첨부
잠금이 풀렸다.