본문 바로가기
Linux 2급

리눅스 기본 명령어 그룹관리, password 관리 (groupmod,groupadd, groupdel, groupmems, chage, id, passwd)

by 방뭉밍봉 2023. 11. 2.

그룹 관리

/etc/group 파일 확인

/etc/group 파일을 확인해보면 리눅스의 등록된 그룹들과 gid 그룹 명 등 들을 확인할 수 있습니다.

1. 그룹 생성

#>groupadd [option] [group_name]

-g [gid] GID 지정

groupadd에 gid를 직접 설정해주는 옵션 -g 를 넣고 centos라는 새 그룹을 생성하여

tail 명령어로 확인해 보니 cantos 그룹의 1105번 gid 가 잘 생성되었습니다.

2. 그룹 변경

#>groupmod [option] [group_name]

-n name : 지정한 name으로 그룹명을 변경한다

-g [gid] GID 변경

-n 옵션을 사용하여 centos라는 그룹의 이름을 devian으로 바꾸었습니다

gid 변경은 옵션 -g를 넣어 똑같이 사용하시면 됩니다.

3. 그룹 삭제

#>groupdel [group_name]

groupdel 명령어로 devian 그룹을 말끔히 삭제했습니다. 잘 가 ㅠㅠ

사용자의 그룹 정보 확인

#>id [user_name]

id라는 명령어를 사용하면 해당 유저의 그룹 명, uid, gid 등을 확인할 수 있습니다

4. 그룹 사용자 관리

#>groupmems [option]

-g [group_name] 그룹 지정 --group

-a [user_name] 그룹의 유저 추가 --add

-d [user_name] 그룹의 유저 삭제 --delete

-l 그룹 목록 표시 --list

 

#> groupmems -g test -a bong 명령어를 사용하여 bong 유저를 test라는 그룹의 추가하였습니다 bong 유저는 2개의 그룹을 갖습니다.

[보안 가이드라인] 최소한의 계정만 포함

( /etc/group , /etc/passwd)

root 그룹( GID 0 )에 소속된 사용자를 확인

저번에 배운 명령어들을 조합하여 /etc/passwd에 1,3,4번째 필드만 출력하고 0이 들어간 부분을 보여달라는 명령어를 쳐봤습니다. | <- 파이프가 이렇게 좋습니다

--> root , sync, shut down, halt, operator라는 이름들이 root 와 같은 그룹인 gid 0에 소속되어 있는 걸 확인할 수 있습니다. 저것들은 특정 명령어를 실행할 때만 root의 권한을 가지고 와서 실행합니다 poweroff 와 같은 명령어를 사용할 때 말이죠.

패스워드 관리

/etc/shadow

root:$6$Xzy0SSeuDCt8a2dz$CmD0: :0:90:7: : :

----- ----------------------------------- - - --- - - -

1) 2) 3)4) 5) 6)7)8)

1) 사용자 이름

2) 패스워드

$[sha512]$[salt]$[password]

3) 패스워드 최근 수정일(일)

1970년 1월 1일 ~

4) 패스워드 변경 최소일(일)

5) 패스워드 변경 최대일(일)

6) 패스워드 변경 경고일(일)

7) 비활성화 기간(일)

8) 계정 만료 일자(일)

1970년 1월 1일 ~

[기본 정책] /etc/login.defs

이 파일은 유저가 새로 만들어졌을 때 passwd 파일 4,5.6.7.8 번째 필드를 구성하는 파일이다.

유저 생성 시 메일 디렉터리 지정 경로 혹은 비밀번호 최소, 최대 변경일 비밀번호 최소 길이 등 다양한 정보가 담겨있다 저 부분을 다른 숫자로 수정 시 그대로 반영된다.

 

유저 생성 시 uid, gid 지정 값도 들어있다 일반 유저는 uid, gid 가 최소 1000부터 60000까지 순서대로 지정된다.

passwd

#>passwd

로그인한 사용자의 패스워드를 변경

#>passwd [user_name]

[user_name] 사용자의 패스워드를 변경 ( 관리자만 가능 )

passwd 명령어를 사용하여 해당 유저의 비밀번호를 변경할 수 있다

비밀번호 권장 길이를 무시해도 상관없다.

#>passwd [option] [user_name]

-n [num] 패스워드 변경 최소일

-x [num] 패스워드 변경 최대일

-w [num] 패스워드 변경 경고일

-i [num] 비활성화 기간

-e [date] 계정 만료 일자

-l 계정 잠금 ( !! )

-u 계정 잠금 해제

passwd -l 명령어로 bong 사용자의 계정을 잠궜다.

원래는 비밀번호 설정 도어 있으면 1번 밍 계정의 2번같이 비밀번호가 암호화가 되어있는데

계정이 잠겨있거나 비밀번호가 없으면 3번 bong 계정의 4번처럼!! 느낌표 두 개가 필드를 차지한다 저렇게 되어있으면 서버로 접속 시 접속이 제한된다 (물론 root 계정으로 su는 가능)

chage 시스템 보안을 위해 사용자 패스워드의 만기일을 설정하거나 변경한다.

#>chage [option...] [user_name]

-m [num] 패스워드 변경 최소일

-M [num] 패스워드 변경 최대일

-W [num] 패스워드 변경 경고일

-I [num] 비활성화 기간

-E [date] 계정 만료 일자

-l 확인

아까 본 /etc/login.defs 파일을 참조하여 사용자의 /etc/passwd 4,5,6,7,8 번째 필드를 변경해주는 명령어이다.

우선 -u --unlock 명령어로 bong 사용자의 잠금을 해제해 주었다

/etc/shadow 파일을 확인해 보니 2번째 필드의!! 가 다시 암호화 비밀번호 변경된 걸 볼 수 있다. 이제 chage 명령어를 사용해 패스워드 변경 경고 일을 수정해 보자

6번째 필드의 없었던 1000이라는 숫자가 새로 생긴 걸 확인할 수 있다. 이제 bong 계정은 1000일의 한 번씩 비밀번호를 변경하라는 경고가 올 것이다.