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. 최종 변경일: 암호가 마지막으로 변경된 날짜를 지정 1970년 1월 1일을 기준으로 날수를 기록
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
- 계정과 관련된 모든 정보를 수정 가능
- 패스워드 정보 중 INACTIVE와 EXPIRE 값 지정 가능
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 // 01을 11로 바꿈
groupdel 명령어: 그룹 삭제
형식: groupdel 그룹명
gpasswd 명령어: 그룹 암호 설정하고 사용하기
형식: gpasswd [옵션] 그룹명
옵션: -a 사용자 계정: 사용자 계정 그룹에 추가
-d 사용자 계정: 사용자 계정 그룹에서 삭제
-r: 그룹 암호를 삭제
newgrp 명령어: 소속 그룹을 다른 그룹으로 바꿈
형식: newgrp 그룹명
04. 사용자 정보 관리
UID와 EUID
- UID: 사용자가 로그인할 때 사용한 계정의 UID
- EUUID: 현재 명령을 수행하는 주체의 UID
who 명령어: 사용자 로그인 정보 확인
형식: who [옵션]
w 명령어: 현재 시스템을 사용하는 정보와 작업 정보를 출력
형식: w[사용자 이름]
last 명령어: 시스템에 로그인하고 로그아웃한 정보를 출력
형식: last
groups 명령어: 사용자 계정이 속한 그룹을 출력
형식: groups [사용자 이름]
UID와 EUID 확인
- UID 출력: who am i, who -m
- EUID 출력: whoami, id
root 권한 사용
- su 명령을 사용하여 root 계정으로 전환: 모든 권한 부여
- sudo 명령 사용 : 특정 작업만 수행할 수 있는 권한만 부여
passwd 명령어: 사용자 계정의 암호를 수정
형식: passwd [옵션] [사용자 계정]
옵션 -l: 암호 잠금, -u: 잠금 해제, -d: 암호 삭제
chown 명령어: 파일과 디렉터리의 소유자와 소유 그룹을 변경
형식: chown [옵션] 사용자 계정 파일명/디렉터리명
옵션 -R: 서브 디렉터리의 소유자와 소유 그룹도 변경
chgrp 명령어: 파일과 디렉터리의 소유 그룹을 변경
형식: chgrp [옵션] 사용자 계정 파일명/디렉터리명
옵션: -R: 서브 디렉터리의 소유 그룹도 변경
'대학교 2학년 1학기 > 리눅스 프로그래밍' 카테고리의 다른 글
리눅스 부팅과 종료 (0) | 2022.06.23 |
---|---|
프로그램 개발 도구 (0) | 2022.06.23 |
쉘 스크립트 프로그래밍 (2) (0) | 2022.05.19 |
쉘 스크립트 프로그래밍 (1) (0) | 2022.05.19 |
파일 시스템과 디스크 관리하기 (0) | 2022.05.01 |