사용자 계정 관련 파일
/ect/passwd 파일
사용자 계정 정보가 저장된 기본 파일
- 로그인 ID: 사용자 계정의 이름
- x: 초기 유닉스 시스템에서 사용자 암호를 저장하던 항목(현재는 /etc/shadow에 암호 저장)
- UID: 사용자 ID 번호로 시스템이 사용자를 구별하기 위해 사용하는 번호
- 일반적으로 0~999번과 65534번은 시스템 사용자를 위한 UID로 예약
- 일반 사용자는 UID 1000번부터 할당(root 계정은 0번) - GID: 그룹 ID를 나타낸다. 리눅스에서 사용자는 무조건 한 개 이상의 그룹에 소속
- 설명: 사용자의 실명이나 부서명, 연락처 등 사용자에 대한 일반적인 정보를 기록
- 홈 디렉터리: 사용자 계정에 할당된 홈 디렉터리의 절대 경로
- 로그인 셸: 사용자의 로그인 셸을 지정
/ect/shadow 파일
사용자 암호에 관한 정보를 별도로 관리하는 파일
root 사용자만 읽고 쓸 수 있으면 shadow 그룹은 읽기만 가능
- 로그인 ID: 사용자 계정의 이름
- 암호(패스워드): 실제 비밀번호가 암호화되어 저장
- 최종 변경일: 암호가 마지막으로 변경된 날짜(1970년 1월 1일을 기준으로 날수를 지정)
- MIN: 암호를 변경한 후 사용해야 하는 최소 기간
- MAX: 암호를 사용할 수 있는 최대 기간
- WARNING: 암호가 만료되기 전에 경고를 시작하는 날수
- INACTIVE: 암호가 만료된 후에도 이 항목에 지정한 날수 동안은 로그인이 가능
- EXPIRE: 사용자 계정이 만료되는 날짜(1970년 1월 1일을 기준으로 한 날수로 표시)
- Flag: 향후 사용할 목적으로 비워둔 항목
/etc/login.defs 파일
사용자 계정의 설정과 관련된 기본 값을 정의한 파일
/etc/group 파일
그룹의 정보가 저장된 파일
사용자가 속한 그룹 중 /etc/passwd 파일의 GID 항목에 지정된 기본 그룹이며, 사용자가 속한 2차 그룹은 /etc/group 파일에 지정
- 그룹 이름: 그룹의 이름
- x: 그룹의 암호를 저장 - 그룹 암호는 newgrp 명령으로 자신이 속하지 않은 그룹으로 전환할 때 필요
- GID: 그룹을 식별하는 번호
- 그룹 멤버: 그룹에 속한 멤버들의 사용자 계정 이름 - 쉼표(,)로 구분하여 사용자 계정 등록
/etc/gshadow 파일
그룹 암호가 저장된 파일
- 그룹 이름: 그룹의 이름
- 그룹 암호: 암호화된 그룹 암호
- 관리자: 그룹의 암호나 멤버를 바꿀 수 있는 사용자 계정으로 여러 개일 경우 쉼표로 구분
- 그룹 멤버: 그룹에 속한 멤버들의 사용자 계정 이름이며, 쉼표로 사용자를 구분
파일 종류 | 설명 |
/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
'전공 > 리눅스시스템관리' 카테고리의 다른 글
[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 |