[Linux] 리눅스 사용자 관리

2023. 6. 12. 21:02·전공/리눅스시스템관리
목차
  1. 사용자 계정 관련 파일
  2. 사용자 계정 관리 명령
  3. 그룹 관리 명령
  4. 사용자 정보 관리 명령
  5. UID와 EUID
  6. 디스크 사용량(쿼터) 설정
728x90
반응형

사용자 계정 관련 파일

/ect/passwd 파일

사용자 계정 정보가 저장된 기본 파일

  1. 로그인 ID: 사용자 계정의 이름
  2. x: 초기 유닉스 시스템에서 사용자 암호를 저장하던 항목(현재는 /etc/shadow에 암호 저장)
  3. UID: 사용자 ID 번호로 시스템이 사용자를 구별하기 위해 사용하는 번호
    - 일반적으로 0~999번과 65534번은 시스템 사용자를 위한 UID로 예약
    - 일반 사용자는 UID 1000번부터 할당(root 계정은 0번)
  4. GID: 그룹 ID를 나타낸다. 리눅스에서 사용자는 무조건 한 개 이상의 그룹에 소속
  5. 설명: 사용자의 실명이나 부서명, 연락처 등 사용자에 대한 일반적인 정보를 기록
  6. 홈 디렉터리: 사용자 계정에 할당된 홈 디렉터리의 절대 경로
  7. 로그인 셸: 사용자의 로그인 셸을 지정

 

/ect/shadow 파일

사용자 암호에 관한 정보를 별도로 관리하는 파일

root 사용자만 읽고 쓸 수 있으면 shadow 그룹은 읽기만 가능

  1. 로그인 ID: 사용자 계정의 이름
  2. 암호(패스워드): 실제 비밀번호가 암호화되어 저장
  3. 최종 변경일: 암호가 마지막으로 변경된 날짜(1970년 1월 1일을 기준으로 날수를 지정)
  4. MIN:  암호를 변경한 후 사용해야 하는 최소 기간
  5. MAX: 암호를 사용할 수 있는 최대 기간
  6. WARNING: 암호가 만료되기 전에 경고를 시작하는 날수
  7. INACTIVE: 암호가 만료된 후에도 이 항목에 지정한 날수 동안은 로그인이 가능
  8. EXPIRE: 사용자 계정이 만료되는 날짜(1970년 1월 1일을 기준으로 한 날수로 표시)
  9. Flag: 향후 사용할 목적으로 비워둔 항목

 

/etc/login.defs 파일

사용자 계정의 설정과 관련된 기본 값을 정의한 파일

 

/etc/group 파일

그룹의 정보가 저장된 파일

사용자가 속한 그룹 중 /etc/passwd 파일의 GID 항목에 지정된 기본 그룹이며, 사용자가 속한 2차 그룹은 /etc/group 파일에 지정

  1. 그룹 이름: 그룹의 이름
  2. x: 그룹의 암호를 저장 - 그룹 암호는 newgrp 명령으로 자신이 속하지 않은 그룹으로 전환할 때 필요
  3. GID: 그룹을 식별하는 번호
  4. 그룹 멤버: 그룹에 속한 멤버들의 사용자 계정 이름 - 쉼표(,)로 구분하여 사용자 계정 등록

 

/etc/gshadow 파일

그룹 암호가 저장된 파일

  1. 그룹 이름: 그룹의 이름
  2. 그룹 암호: 암호화된 그룹 암호
  3. 관리자: 그룹의 암호나 멤버를 바꿀 수 있는 사용자 계정으로 여러 개일 경우 쉼표로 구분
  4. 그룹 멤버: 그룹에 속한 멤버들의 사용자 계정 이름이며, 쉼표로 사용자를 구분

 

파일 종류 설명
/ect/passwd 사용자 계정 정보가 저장된 기본 파일
/ect/shadow 사용자 암호에 관한 정보를 별도로 관리하는 파일
/etc/login.defs 사용자 계정의 설정과 관련된 기본 값을 정의한 파일
/etc/group 그룹의 정보가 저장된 파일
/etc/gshadow 그룹 암호가 저장된 파일

 

 

사용자 계정 관리 명령

useradd

기능 - 사용자 계정을 생성

형식 - useradd [옵션] [로그인 ID]

옵션

-u uid UID를 지정 -o UID의 중복을 허용
-g gid 기본 그룹의 GID를 지정 -G gid 2차 그룹의 GID를 지정
-d 디렉터리명 홈 디렉터리를 지정 -s 셸 기본 셸을 지정
-c 설명 사용자의 이름 등 부가적인 설명을 지정 -D 기본 값을 설정하거나 출력
-e 유효 기간 EXPIRE 항목을 설정 -f 비활성 일수 INACTIVE 항목을 설정
-k 디렉터리 계정 생성 시 복사할 초기 파일이나 디렉터리를 설정해놓은 디렉터리를 지정    
useradd user2
useradd -m -d / home/user2 user2
useradd -m -d / home/user2 -u 2000 -g 100 -s /bin/ksh user2
useradd -D -d /export/home

기본 설정값은 /etc/default/useradd 파일에 저장

vi로 파일 수정 가능하지만 useradd -D 명령으로 수정하는 것이 바람직

/etc/skel

사용자 계정의 홈 디렉터리에 공통으로 배포해야 할 파일을 /ect/skel 디렉터리에 만들어 놓으면 사용자 계정을 생성할 때 자동으로 복사

 

adduser

기능 - 사용자 계정을 생성

형식 - adduser [옵션] 로그인 ID

옵션

--uid UID UID를 지정 --gid GID 기본 그룹의 GID를 지정
--home DIR 홈 디렉터리를 지정 --shell 셸 기본 셸 지정
--gecos 설명 사용자의 이름 등 부가적인 설명 지정    
add user5
adduser --uid 2001 user5
adduser --home /home/user5 -uod 2001 -gid 2100 --s /bin/sh user5

adduser 명령의 기본 설정은 /ect/adduser.conf에 저장

 

usermod

기능 - 사용자 계정 정보를 수정

형식 - usermod [옵션] [로그인 ID]

옵션

-u uid UID를 수정 -o UID의 중복을 허용
-g gid 기본 그룹을 수정 -G gid 2차 그룹을 수정
-d 디렉터리명 홈 디렉터리르 수정 -s 셸 기본 셸을 수정
-c 설명 부가적인 설명을 수정 -f inactive 계정 비활성화 날자를 수정
-e expire 계정 만료 날짜를 수정 -l 계정 이름을 바꿈
usermod -u 1111 user1
usermod -d /home/user111 user1
usermod -l user111 user1

로그인 ID를 바꿀 때는 홈 디렉터리도 같이 바꿔주는 것이 좋음

기존의 홈 디렉터리에 있던 파일이 자동으로 옮겨지지는 않으므로 별도로 디렉터리를 생성하고 이동해야 함

 

패스워드 에이징 관련 명령

패스워드 에이징은 useradd, usermod, passwd, chage 명령으로 설정 가능

chage: 패스워드 에이징 변경 및 설정 내용 확인, -l 옵션으로 패스워드 에이징을 확인

 

userdel

기능 - 사용자 계정 삭제

형식 - userdel [옵션] [로그인 ID]

옵션

-r: 홈 디렉터리를 삭제

-f: 사용자가 로그인 중이어도 강제로 삭제

userdel user4
userdel -r user4

 

 

그룹 관리 명령

groupadd

기능 - 그룹을 생성

형식 - groupadd [옵션] [그룹명]

옵션

-g: gid: 그룹의 GID를 지정

-o: GID의 중복을 허용

groupadd gtest
groupadd -g 2020 gtest
groupadd -g 2020 -0 gtest

 

addgroup

기능 - 그룹을 생성

형식 - groupadd [옵션] 그룹명

옵션 --gid GID: 그룹의 GID를 지정

addgroup gtest
addgroup --gid 2013 gtest

 

groupmod

기능 - 그룹 정보를 수정

형식 - groupmod [옵션] [그룹명]

옵션

-g gid: 그룹의 GID를 수정

-o: GID의 중복을 허용

-n 그룹명: 그룹명을 다른 이름으로 바꿈

groupmod -g 3001 gtest
groupmod -g 3001 -o gtest2
groupmod -n gtest1 gtest

 

groupdel

기능 - 그룹을 삭제

형식 - groupdel [그룹명]

groupdel gtest

 

gpasswd

기능 - /etc/group와 /etc/gshdow 파일을 관리

형식 - gpasswd [옵션] [그룹명]

옵션

-a 사용자 계정: 사용자 계정을 그룹에 추가

-d 사용자 계정: 사용자 계정을 그룹에서 삭제

-r 그룹 암호를 삭제

gpasswd gtest01
gpasswd -a test01 gtest01
gpasswd -r gtest01

 

newgrp

기능 - 소속 그룹을 다른 그룹으로 바꿈

형식 - newgrp [그룹명]

newgrp adm

 

 

사용자 정보 관리 명령

UID와 EUID

  • UID: 실제 UID로 RUID, 사용자가 로그인할 때 사용한 계정의 UID
  • EUID는 유효 사용자 ID, 현재 명령을
  • 수행하는 주체의 UID를 의미

 

who

기능 - 현재 시스템을 사용하는 사용자의 정보를 출력

형식 - who [옵션]

옵션

-q: 사용자명만 출력

-H: 출력 항목의 제목도 함께 출력

-b: 마지막으로 재부팅한 날짜와 시간을 출력

-m: 현재 사용자 계정의 정보를 출력

-r: 현재 런레벨을 출력

who
who -b

 

w

기능 - 현재 시스템을 사용하는 사용자의 정보와 직업 정보를 출력

형식 - w [사용자명]

 

last

기능 - 시스템에 로그인하고 로그아웃한 정보를 출력

형식 - last

 

  • UID 출력: who ad i, who -m
  • EUID 출력: whoami, id

 

groups

기능 - 사용자 계정이 속한 그룹을 출력

형식 - groups [계정명]

 

root 권한 사용 방법

su 명령을 사용하여 root 계정으로 전환

일반 사용자에게 시스템 관리 작성 중 특정 작업만 수행할 수 있는 권한 부여: sudo

sudo 권한 설정하기

/etc/sudoers 파일에 설정

sudo 명령 사용하기

sudo 명령

 

passwd

기능 - 사용자 계정의 암호를 수정

형식 - passwd [옵션] [사용자 계정]

옵션

-l 사용자 계정: 지정한 계정의 암호를 잠금

-u 사용자 계정: 암호 잠금을 해제

-d 사용자 계정: 지정한 계정의 암호를 삭제

 

chown

기능 - 파일과 디렉터리의 소유자와 소유 그룹을 변경

형식 - chown [옵션] [사용자 계정] [파일명/디렉터리명]

옵션 - -R: 서브 디렉터리의 소유자와 소유 그룹도 변경

chown user2 file1
chown user2:grp01 file1
chown -R user2 file1

 

chgrp

기능 - 파일과 디렉터리 소유 그룹을 변경

형식 - chgrp [옵션] [사용자 계정] [파일명/디렉터리명]

옵션 - -R: 서브 디렉터리의 소유 그룹도 변경

chgrp han01 file1
chgrp -R han01 file1

 

 

디스크 사용량(쿼터) 설정

디스크 쿼터

  • 디스크 사용량을 제한하는 것
  • 두 가지 방법
    - 하드 디스크에서 사용자가 사용할 수 있는 파일의 전체 용량을 설정하는 방법
    - 사용자가 사용할 수 있는 총 파일 수를 설정하는 방법
  • 하드 리미트: 사용자가 절대로 넘을 수 없는 최대치를 명시한 값
  • 소프트 리미트: 일정 시간 내에는 넘을 수 있는 한계치를 설정한 값

 

quota 패키지를 설치

sudo apt install quota

 

쿼터 설정을 위한 사전 준비

디스크 쿼터는 사용자별 또는 그룹별로 설정

디스크 쿼터를 설정하려면 파일 시스템의 마운트 옵션에 쿼터 속성을 지정

- usrquota: 개별 사용자의 쿼터를 제한할 수 있는 속성

- grpquota: 개별 그룹의 쿼터를 제한할 수 있는 속성

 

실습 파일 시스템 준비

/dev/sdd2 디스크 사용

/home2 디렉터리에 /dev/sdd2 마운트하고 /etc/fstab에도 등록

/home2 디렉터리에 홈 디렉터리를 가진 사용자 계정 2개 설정

 

쿼터 속성 설정하기

vi로 /etc/fstab 파일을 열어서 usrquota 속성을 추가

grpuota도 적용하려면 usrquota 다음에 추가

 

quotacheck

기능 - 쿼터 파일을 생성·확인·수정하기 위해 파일 시스템을 스캔

형식 - quotacheck [옵션] [파일 시스템]

옵션

-a: 전체 파일 시스템을 스캔

-u: 사용자 쿼터를 확인

-g: 그룹 쿼터를 확인

-m: 파일 시스템 리마운트 하지 않는다

-v: 명령 진행 상황을 상세하게 출력

quotacheck -augvm
quotacheck -ugvm /dev/sdb1

 

디스크 쿼터를 관리하는 데이터베이스는 두 개 파일로 구성

  • aquota.user: 사용자 쿼터 데이터베이스 파일
  • aquota.group: 그룹 쿼터 데이터베이스 파일
  • 데이터베이스 파일은 해당 파일 시스템의 최상위 디렉터리에 생성

 

quotaon

기능 - 파일 시스템의 쿼터 기능을 활성화

형식 - quotaon [옵션] [파일 시스템]

옵션

-a: 전체 파일 시스템의 쿼터 기능 활성화

-u: 사용자 쿼터를 활성화

-g: 그룹 쿼터를 활성화

-v: 명령 진행 상황을 상세하게 출력

quotaon -augv
quotacheck -ugv /home

쿼터의 비활성화: quotaoff

 

edquota

기능 - 쿼터를 설정

형식 - edquota [옵션] [사용자 계정 또는 그룹명]

옵션

-u: 사용자 쿼터를 설정

-g: 그룹 쿼터를 설정

-p: 쿼터 설정을 복사

edquota -u qtest1
edquota -g hab01
edquota -p qtest1 qtest2

 

quota

기능 - 쿼터 정보 출력

형식 - quota [옵션] [사용자 계정 또는 그룹명]

옵션

-u: 사용자 쿼터 정보 출력

-g: 그룹 쿼터 정보를 출력

quota -u qtest1
quota -g han01

 

repquota

기능 - 쿼터 정보를 요약하여 출력

형식 - repquota [옵션] [사용자 계정 또는 그룹명]

옵션

-a: 전체 파일 시스템의 쿼터 정보 출력

-v: 사용량이 없는 쿼터의 정보도 출력

-u: 사용자 쿼터 정보를 출력

-g: 그룹 쿼터 정보 출력

repquota -a
repquota -u qtest1
728x90
반응형

'전공 > 리눅스시스템관리' 카테고리의 다른 글

[Linux] 리눅스 네트워크  (1) 2023.06.12
[Linux] 리눅스 소프트웨어 관리  (0) 2023.06.12
[Linux] 리눅스 부팅 프로세스  (0) 2023.06.12
[Linux] 리눅스 파일시스템과 디스크관리  (1) 2023.06.12
[Linux] 리눅스 프로세스 관리  (0) 2023.04.20
  1. 사용자 계정 관련 파일
  2. 사용자 계정 관리 명령
  3. 그룹 관리 명령
  4. 사용자 정보 관리 명령
  5. UID와 EUID
  6. 디스크 사용량(쿼터) 설정
'전공/리눅스시스템관리' 카테고리의 다른 글
  • [Linux] 리눅스 네트워크
  • [Linux] 리눅스 소프트웨어 관리
  • [Linux] 리눅스 부팅 프로세스
  • [Linux] 리눅스 파일시스템과 디스크관리
dev_ares
dev_ares
대학에서 컴퓨터공학을 전공하고 있는 학생입니다.
    반응형
    250x250
  • dev_ares
    노트
    dev_ares
  • 전체
    오늘
    어제
    • 분류 전체보기 (187)
      • IT 트랜드 (2)
      • 백엔드 (18)
        • Java + Spring (8)
        • Kotlin + Spring (5)
        • 백엔드 (5)
      • 프론트엔드 (1)
        • React (1)
      • 대외활동 (17)
        • 42서울 (17)
      • 백준 (6)
        • Java (2)
        • C++ (3)
      • 전공 (121)
        • 객체지향프로그래밍 (17)
        • 자료구조 (23)
        • 리눅스시스템관리 (16)
        • 컴퓨터구조 (25)
        • 네트워크 (25)
        • 데이터베이스 (15)
        • 기타 전공 (0)
      • 프로그래밍 언어 (18)
        • Java (5)
        • Swift (4)
        • C++ (1)
        • Kotlin (8)
      • 기타 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    반복자
    자료구조
    명령어
    컴퓨터 구조 및 설계
    오블완
    데이터패스
    리눅스
    코틀린
    자바
    티스토리챌린지
    컴공 포트폴리오
    메모리 계층 구조
    컴퓨터구조
    단일 사이클
    C++
    상속
    추가 문제
    사설 문제
    백준
    42서울
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
dev_ares
[Linux] 리눅스 사용자 관리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.