본문 바로가기

Linux

Linux 사용자 계정/그룹 관리

1.사용자 계정/그룹 생성하기(useradd, groupadd)

 

우선 su - 명령어를 통해 루트권한으로 시작한다.

 

동물이라는 그룹에 들어갈 동물들(사용자)을 생성해본다.

 

useradd dog 를 입력하고 id dog를 입력하면 dog가 생성된걸 볼 수 있다. (uid, gid, groups 확인)

또한, home diretory에 dog diretory가 생성되어있다.


groupadd animal 명령어로 그룹을 만들고 car /etc/group을 쳐보면 animal 그룹이 생성된 걸 볼 수 있다.

그런데 animal 위에 아까 만든 dog가 있는 걸 볼 수 있는데 이는 useradd로 그냥 사용자 계정을 생성하면 자동으로 동일명의 그룹도 생성되는 걸 알 수 있다.

 

2. 사용자 계정/그룹 삭제하기(userdel, groupdel)

 

dog 사용자를 삭제하려면 userdel dog를 입력하면 되는데, 이때 home diretory에 있는 dog diretory까지 삭제하고 싶다면 userdel -r dog로 -r 옵션을 사용하면 된다. 

마찬가지로 그룹도 groupdel animal 명령어를 통해 삭제하면 된다.

 

3. 사용자 계정 수정하기(usermod)

 

1번 상황에서 자동으로 생성된 dog 그룹과 groupadd로 생성한 animal 그룹 두개가 있다고 가정하고

usermod -G animal dog 를 입력한 후  cat /etc/group을 쳐보면 animal 그룹 뒤에 :dog가 붙은 걸 확인할 수 있다.

 

허나 아직 home directory에 dog 그룹은 dog로 되어있다. 이를 animal로 바꾸려면

chgrp -R animal dog 명령어를 사용해야 하는데 -R 옵션이 있어야 폴더구조 순차적으로 적용된다.

 

환경설정 관련 파일이 있는 directory인 /etc 내부에서 계정, 그룹 관련 정보를 확인할 수 있다. 
(/etc/passwd, /etc/group, /etc/shadow ...)

 

useradd -g animal -s /bin/bash -c "very fast" -m -d /home/cat cat 처럼 한번에 할 수 있다.

암호 설정은 간단히 passwd 사용자계정명 으로 설정 할 수 있다.

 

4. /etc/login.defs

 

more /etc/login.defs 를 입력하면 사용자 계정 관리에 관한 정보들이 무수히 나온다.

예를들어 uid의 최대/최솟값 같은 정보를 설정하는 것이다.

PASS_MAX_DAYS 99999

PASS_MIN_DAYS 0

PASS_MIN_LEN 5

PASS_WARN_AGE 7

 

chage [-d lastday] [-m mindays] [-M maxdays] [-W warndays] [-I inactive] [-E expiredate] 사용자계정

-d: 패스워드 마지막변경 

-m: 패스워드 변경일 최소일

-M: 패스워드 변경일 최대일

-W: 패스워드 만료 경고일

-I: 패스워드 만료후 Inactive 적용일

-E: 만료일

 

5. root 계정


su(swhich user): root 유저로 변경(암호 입력 필요)
sudo(superuser do): root 권한으로 명령어 실행

visudo: /etc/sudoers 파일을 직접 변경하는 것은 리스키하기 때문에 visudo로 변경한다(문법 체크 지원).

 

 

# visudo 예시

 

## Allows people in group wheel to run all commands

%wheel  ALL=(ALL)       ALL

## Same thing without a password
#%wheel ALL=(ALL)       NOPASSWD: ALL

 

wheel이라는 사전에 정의되어 있는 권한이 있는데 윗줄은 wheel그룹은 모든 명령어를 사용할 수 있다는 의미이며,

아랫줄엔 패스워드 입력 없이 가능하다는 것인데 주석(#)처리 되어있으므로 필요시 주석을 제거해주면 된다.

 

예를 들어 dog가 비밀번호 없이 모든 명령어를 사용하게 하고 싶다면 주석을 제거하고 dog를 wheel 그룹에 넣어주면 된다.

(usermod -aG wheel dog)

 

 

6. 파일 접근제어(출처: https://recipes4dev.tistory.com/175)

 

아래 세가지 권한을 "파일을 소유한 사용자(u = user)", "특정 그룹(g = group)에 소속된 사용자", "그 외 사용자(o = others)"에 각각 지정해 줄 수 있다.

  • 파일에 저장된 데이터를 읽기. (r = read).
  • 파일에 데이터를 쓰기. (w = write).
  • 파일 실행. (x = execute)

[ example ]

 

chmod u-w 파일명: 소유자의 쓰기권한을 빼겠다.
chmod g+rx 파일명: 그룹의 읽기, 실행 권한을 넣겠다.
chmod a-r 파일명: 모든 읽기 권한을 빼겠다.

 

 

728x90
반응형