Linux 6 . 사용자와 그룹관리

2024. 1. 31. 15:16Linux/CentOS7

사용자와 그룹관리는

총 6개로 이뤄져있다.

1. /etc/passwd

2. /etc/group

3. /etc/shadow

4. /etc/login.defs

5. /etc/default/useradd

6. /etc/skel

 

순서대로 어떤 것을 담당하고 수정,관리할 수 있는지 알아보자

 

1. /etc/passwd 

ID:Password:GID:comment:홈디렉토리:로그인쉘

 

useradd 명령어로 a, b를 생성하고

cat /etc/passwd로 확인해보면

a, b 계정정보가 표시된다.

ID:Password:GID:comment:홈디렉토리:로그인쉘

위의 규칙으로 계정 정보가 표시 되고있다.

 

a 계정정보
  a:x:1000:1000::/home/a:/bin/bash

 

분석

a : ID, 계정명

x : 패스워드
1000 : UID, 계정의 고유한 ID
1000 : GID, 그룹의 고유한 ID
:: : Comment 설명 정보
/home/a : 홈 디렉토리
/bin/bash : Login Shell

 

기본적으로 CentOS는 계정을 만들면 1000번부터 순차적으로 할당된다

 

 

 

- a 계정에 패스워드를 부여해보자

또한  b 계정을 지운뒤에

다시 생성할때 UID를 임의로 지정해보자 (-u)

UID GID 모두 임의로 부여할 수 있지만

현재 존재하지않는 GID를 입력하면

계정이 생성되지 않는다.

 

계정을 삭제할때 제대로 하지 않으면 

UID의 때문에 문제가 생기기도 한다.

a 계정의 디렉토리들이

userdel a 명령어 실행 뒤에는

소유자와 그룹이 1000으로 바뀌었다.

 

다시 a 계정을 생성해보자

계정 생성이 제대로 되지않고

a 계정의 UID,GID도 다르게 생성됐다.

 

userdel -r a 명령어로 디렉토리 까지 삭제하려 해도

이미 소유권 밖이기 때문에 제대로 작동하지 않는다.

이젠 하위 디렉토리들을 수동으로 삭제해줘야 한다.

따라서 계정을 삭제할때 반드시 -r 옵션을 추가해주자

userdel -r b 명령어로 하위 디렉토리까지 같이 삭제된 모습이다.

유저 삭제를 잘못하면

UID,GID가 달라 다음 계정 생성에 

지장이 생길 수 있으니 조심하자

 

 

존재하는 그룹명이면 

계정 생성시 GID를 변경할 수 있다고 했다.

그렇다면 위 처럼

a 계정을 만들때 root의 그룹으로 생성이 가능하다.

 

 

-c 옵션으로 설명을 덧붙일 수 있다

admin 코멘트를 추가한 b 계정을 만들어보자

 

 

-d 옵션으로 홈디렉토리를 

변경할 수도 있다.

 

이번엔

홈디렉토리는 home_1/c (디렉토리는 사전에 생성해야한다)

코멘트는 sales인

계정 c를 만들어보자

 

 

shell

명령어 해석기같은 역할로

App과 커널 사이에 위치하면서 로그인시 할당되고

App의 명령을 변경해서 kernal에 전달한다

 

 

 shell이 지정 되지 않거나 문제가 생기면 login이 불가능하고

 bash, sh, zsh, csh등의 쉘이 존재한다.

 

 

cat /etc/shells에 위치하며


echo $SHELL 명령어로 현재 사용하는 쉘 확인이 가능하다

 

 

 

사용자의 shell을 변경할 수도 있다.

*다음번 로그인시 적용*

chsh -s /bin/sh root

bash에서 sh로 변경해 보았다.

sh은 -sh-4.2#  로 시작하는 것을 볼 수 있다.

 

로그인이 필요하지 않은 경우 

shell을 할당하지 않을 수 있는데

그런 경우에는

*****
/bin/false, 로그인하지 못하는 이유를 알려주지 않음

/sbin/nologin, 로그인하지 못하는 이유를 설명해줌

*****

위의 두가지를 할당한다.

nologin과 false예시

 

 

 

2./etc/group

ID:Password:GID:group에 속해있는 사용자

그룹정보만 확인할 수도 있다.

 

groupadd -g (숫자 ) (사용자)

사용자를 (숫자) 그룹에 추가한다.

groupdel (사용자)

사용자가 속한 그룹을 제거한다.

 

 

 

 

usermod

이미 생성된 계정의 정보를 바꾸는 명령어

기본적으로 useradd와 명령어가 같다.

유저모드로 사용자의 홈 디렉토리를 변경할 순 있지만
홈디렉토리 내의 내용까지 같이 옮기려면 

-m 옵션을 반드시 추가해줘야 한다.