본문 바로가기

대학교 2학년 1학기/리눅스 프로그래밍

사용자 관리

728x90

01. 사용자 계정 관련 파일

사용자 관리

- 사용자가 시스템에 접근할 수 있는 유일한 방법

- 시스템 관리자 입장에서도 사용자의 접근 권한을 통제할 수 있는 중요한 수단

 

/etc/passwd 파일

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

/etc/passwd 파일의 구조

- 쌍점(:)으로 구분되는 일곱 개의 항목으로 구성

1. 로그인 ID: 사용자 계정의 이름

2. x: 사용자 암호를 저장하던 항목으로 요즘은 /etc/shadow 파일에 별도로 보관

3. UID: 사용자 ID 번호 (로그인 ID가 다르더라도 UID가 같으면 같은 사용자로 판단)

4. GID: 그룹 ID, 시스템에 등록된 그룹에 대한 정보는 /etc/group 파일에 저장

5. 설명: 사용자에 대한 일반적인 정보가 기록

6. 홈 디렉터리: 사용자 계정에 할당된 홈 디렉터리의 절대 경로를 기록

7. 로그인 셸: 사용자의 로그인 셸을 지정

 

/etc/shadow 파일

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

- root 계정으로만 내용을 볼 수 있음

/etc/shadow 파일의 구조

1. 로그인 ID

2. 암호(패스워드): 실제 비밀번호가 암호화되어 저장

3. 최종 변경일: 암호가 마지막으로 변경된 날짜를 지정 197011일을 기준으로 날수를 기록

4. MIN: 암호를 변경한 후 사용해야 하는 최소 기간

5. MAX: 암호를 사용할 수 있는 최대 기간

6. WARNING: 암호가 만료되기 전에 경고를 시작하는 날수

7. INACTIVE: 암호가 만료된 후에도 이 항목에 지정한 날수 동안은 로그인이 가능

8. EXPIRE: 사용자 계정이 만료되는 날

9. Flag: 향후 사용할 목적으로 비워둔 항목

 

/etc/group 파일

- 그룹에 대한 정보가 저장

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

/etc/group 파일의 구조

1. 그룹 이름

2. x: 그룹의 암호를 저장

- 해당 항목에 저장하거나 /etc/gshadow 파일에 그룹 암호를 저장

3. GID: 그룹을 식별하는 번호

4. 그룹 멤버: 그룹에 속한 멤버들의 사용자 이름으로 쉼표(,)로 사용자를 구별

 

/etc/gshadow 파일

- 그룹 암호가 저장

/etc/gshadow 파일의 구조

1. 그룹 이름

2. 그룹 암호

3. 관리자: 그룹의 암호나 멤버를 바꿀 수 있는 사용자 계정

4. 그룹 멤버: 그룹에 속한 멤버들의 사용자 계정 이름

 

02. 사용자 계정 관리

새로운 계정 생성

1. Shell Script로 처리 (guest1 사용자 추가)

- echo 사용자 계정 정보 >> /etc/passwd

- echo 사용자 암호 정보 >> /etc/shadow

- mkdir 사용자 홈 디렉터리

- chown guest1 사용자 홈 디렉터리

2. adduser

- adduser --uid $uid --gid 2000 --home /home/${id} --shell /bin/bash $id

3. useradd 명령어

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

- useradd -m -d /home/${id} -u $uid -g $$gid -s /bin/bash $id

 

 

usermod 명령어: 사용자 계정 정보 수정

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

- 계정과 관련된 모든 정보를 수정 가능

- 패스워드 정보 중 INACTIVEEXPIRE 값 지정 가능

 

userdel 명령어: 사용자 계정 삭제

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

옵션 -r: 홈 디렉터리와 메일 디렉터리 삭제

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

홈 디렉터리가 아닌 다른 곳에 위치한 사용자 계정 소유의 파일을 검색하여 삭제할 대

- find / -user UID -exec rm -r {} ;

 

03. 그룹 계정 관리

새로운 그룹 생성

1. Shell Script로 처리

- echo “ 그룹 정보 ” >> /etc/group

2. addgroup

- addgroup -gid $gid $groupID

3. groupadd 명령어

형식: groupadd [옵션] 그룹명

옵션 -g gid: 그룹의 GID를 지정 ex) groupadd -g 3000 gtest02

-o : GID의 중복을 허용 ex) groupadd -g 3000 -o gtest03

 

groupmod 명령어: 그룹 정보 수정

형식: groupmod [옵션] 그룹명

옵션 -g gid: 그룹의 GID 수정

-o: GID의 중복을 허용

-n 그룹명: 그룹명을 다른 이름으로 바꿈 ex) groupmod -n gtest11 gtest01 // 0111로 바꿈

 

groupdel 명령어: 그룹 삭제

형식: groupdel 그룹명

 

gpasswd 명령어: 그룹 암호 설정하고 사용하기

형식: gpasswd [옵션] 그룹명

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

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

-r: 그룹 암호를 삭제

 

newgrp 명령어: 소속 그룹을 다른 그룹으로 바꿈

형식: newgrp 그룹명

 

04. 사용자 정보 관리

UIDEUID

- UID: 사용자가 로그인할 때 사용한 계정UID

- EUUID: 현재 명령을 수행하는 주체UID

 

who 명령어: 사용자 로그인 정보 확인

형식: who [옵션]

w 명령어: 현재 시스템을 사용하는 정보와 작업 정보를 출력

형식: w[사용자 이름]

last 명령어: 시스템에 로그인하고 로그아웃한 정보를 출력

형식: last

groups 명령어: 사용자 계정이 속한 그룹을 출력

형식: groups [사용자 이름]

 

UIDEUID 확인

- UID 출력: who am i, who -m

- EUID 출력: whoami, id

 

root 권한 사용

- su 명령을 사용하여 root 계정으로 전환: 모든 권한 부여

- sudo 명령 사용 : 특정 작업만 수행할 수 있는 권한만 부여

 

passwd 명령어: 사용자 계정의 암호를 수정

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

옵션 -l: 암호 잠금, -u: 잠금 해제, -d: 암호 삭제

 

chown 명령어: 파일과 디렉터리의 소유자와 소유 그룹을 변경

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

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

 

chgrp 명령어: 파일과 디렉터리의 소유 그룹을 변경

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

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

728x90