Contents
(Linux)사용자 관리
   2022년07월20일     4분정도면 다 읽어요     - Comments

[카카오 클라우드 스쿨] 리눅스의 사용자 관리를 배워 보자


  • 리눅스는 multi-user 그리고 multi-tasking 기반!
  • super-user(root) 및 일반 유저로 구분됨


사용자 생성될 때의 설정 확인

[root@srv7 ~]# useradd -D
GROUP=100               소속된 그룹 ID (100번부터 시작함)
HOME=/home              홈 디렉터리
INACTIVE=-1             계정 만료일 없음
EXPIRE=                 만료 전 알려줌(일 수)
SHELL=/bin/bash         기본 셸
SKEL=/etc/skel          이제 알아 볼 것
CREATE_MAIL_SPOOL=yes   이슈 발생 시 메시지를 받을 수 있게 한다


사용자의 홈 디렉터리에 기본으로 들어갈 파일 만들기

[root@srv7 ~]# ls /etc/skel/
[root@srv7 ~]# mkdir /etc/skel/public_html
[root@srv7 ~]# echo "<h2>hellow</h2>" > /etc/skel/public_html/index.html
  • 이따가 사용자 생성하면, 각 사용자의 홈 디렉터리에 해당 파일이 존재하게 됨
[root@srv7 ~]# su gildong
[gildong@srv7 root]$ cd
[gildong@srv7 ~]$ ls
public_html


사용자의 패스워드가 저장되는 곳

  • useradd -p옵션으로 패스워드 지정시 암호화가 되어 있지 않아 매우 위험
[root@srv7 ~]# useradd -p test123 user110
[root@srv7 ~]# cat /etc/shadow | grep user110
user110:test123:19193:0:99999:7:::


  • 따라서 사용자 생성 후 passwd 명령어로 설정하는 것 필수
[root@srv7 ~]# useradd gildong
[root@srv7 ~]# passwd gildong

[root@srv7 ~]# cat /etc/shadow | grep user1
gildong:$6$VSJ/J7izM7ACZmKb$N9P89yIWp1eEWgQid5v2XLhhhVQxXS3AIbYTGMTgCm7MbIkCRui0aBNFDUtxxEk7vgvQex9XZWzaXXy4MFLIc.::0:99999:7:::


사용자의 그룹

  • /etc/group 에 지정되어 있음
  • groups 명령어로 확인 가능
[root@srv7 ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:

[root@srv7 ~]# groups gildong
gildong : gildong


  • 사용자의 그룹 변경하기
[root@srv7 ~]# usermod -G user1 gildong

[root@srv7 ~]# groups gildong
gildong : gildong user1

[root@srv7 ~]# cat /etc/group | grep user1:
user1:x:1000:user1,gildong


UID, 사용자 제거

  • 사용자 목록 확인
  • UID
    • root: 0
    • 시스템 예약: 1 ~ 999 (배포판 마다 다름)
    • 일반 사용자: 1000 ~ 32767
gildong@srv7 ~]$ cat /etc/passwd | grep bash
root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:user1:/home/user1:/bin/bash
user10:x:1001:1001::/home/user10:/bin/bash
user11:x:1002:1002::/home/user11:/bin/bash
user100:x:1003:1003::/home/user100:/bin/bash
user200:x:1004:1004::/home/user200:/bin/bash
user300:x:1005:1005::/home/user300:/bin/bash
user500:x:1006:1006::/home/user500:/bin/bash
ec2-user:x:1007:1007::/home/ec2-user:/bin/bash
test123:x:1008:1008::/home/test123:/bin/bash
user110:x:1009:1009::/home/user110:/bin/bash
gildong:x:1010:1010::/home/gildong:/bin/bash
testuser1:x:1011:1011::/home/testuser1:/bin/bash


  • 사용자 제거
[gildong@srv7 ~]$ userdel user10      사용자만 삭제
[gildong@srv7 ~]$ userdel -r user10   사용자 + 디렉터리까지 삭제


추가

  • 스크립트를 통해 사용자 만들 수 있음
  • 여러 사용자를 일괄적으로 만들고, 비밀번호도 일괄적으로 지정 가능



사용자 기본 디렉터리 지정하기

  • home directory 가 아닌 다른 디렉터리를 쓰도록 해 보자
    • img_31


1. 유저 생성 기본 설정 파일 수정

  • 기본 홈을 /newhome으로 지정한다
[root@srv7 ~]# vi /etc/default/useradd
---
# useradd defaults file
GROUP=100
HOME=/newhome
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes


2. 디렉터리 생성 후 사용자 추가해 보기

[root@srv7 ~]# mkdir /newhome
[root@srv7 ~]# ls -l
---
drwxr-xr-x    3 root root   19 Jul 21 11:51 newhome

[root@srv7 ~]# useradd user2


접근 권한(permission)

  • drw-rw-r–
    • rw-: 소유주, 디렉터리를 읽고 새로운 파일을 업로드 하는 것을 허용한다
    • rw-: 그룹, 디렉터리를 읽고 새로운 파일을 업로드 하는 것을 허용한다
    • r: 그 외 사용자, 디렉터리의 목록을 보는 것만 가능하다

  • rwx 숫자로 지정하기
    • 4(r) 2(w) 1(x)
    • 755: rwx r-x r-x
    • 251: -w- r-x –x
    • 644: rw- r– r–

  • rwx 문자로 지정하기
    • u+x: 소유주에 실행 권한 추가
    • g-r: 그룹에 읽기 권한 제거
    • o-w: others에 쓰기 권한 제거


3. 사용자 생성 시 중요한 몇 가지 명령어

  • user2 사용자를 user2 그룹이 아닌 newgrp 그룹에 추가하여 생성한다
useradd -g newgrp user2
  • 홈 디렉터리를 지정한다
useradd -d /newhome user2
  • 기본 셸을 csh로 지정하겠다
useradd -s /bin/csh user2


4. user정보 수정하기

  • usermod 명령어 사용
  • 생성된 사용자는 무조건 하나의 그룹에는 포함되어야 한다
  • 2개의 그룹에 포함되어 있다면, 둘 중 하나는 primary 그룹이어야 한다
    • ag: 한개의 그룹에만 포함되므로 모순 (작동 안함)
    • aG: 새로운 그룹에 추가시킨다
그룹 확인
[root@srv7 0721]# groups user2
user2 : user2

그룹 변경하기
[root@srv7 0721]# usermod -g root user2

그룹 확인
[root@srv7 0721]# groups user2
user2 : root

기존 그룹 유지하면서 새로운 그룹에 포함시키기
[root@srv7 0721]# usermod -aG wheel user2

그룹 확인
[root@srv7 0721]# groups user2
user2 : root wheel