사용자 관리
사용자 정보를 가지고 있는 파일 : /etc/passwd
(pwconv/pwunconv : 사용자의 패스워드를 passwd 파일로 병합/해제)
root:x:0:0:root:/root:/bin/bash
*":" - 항목의 구분자(Delimeter)
root: 사용자의 ID, 로그인 시 사용
x: 사용자의 패스워드 정보. 현재 다른 파일로 분리되어 있음. 여기는 전부 x표시
0: UID(Unique Identifier) 사용자를 식별할 수 있는 유일한 번호
0: 소속된 기본 그룹의 정보(주그룹 = 기본그룹), 그룹의 번호(GID, Group Iidentifier)
root : Comment(주석), GECOS, 사용자의 구체적인 정보를 기술
/root : 사용자의 홈 디렉토리 경로. 사용자 생성시 별도로 지정할지 않을 경우
/home/[사용자명]으로 지정, 사용자 추가시 해당 경로 자동 생성
/bin/bash : 사용자의 기본 로그인 쉘(Shell)
/sbin/nologin : 사용자 로그인 쉘 지정 위치에 사용할 경우, 이 사용자에 대해서는 로그인 접근을 허용하지 않음
그룹 : 사용자들의 모임, 권한을 편리하게 할당하기 위해
리눅스/유닉스 시스템의 사용자들은 무조건 최소 1개 이상의 그룹에 가입되어야 함
운영체제/배포판 종류에 따라 조금씩 다르지만, 사용자 생성시 기본적으로 가입을 시킴(유닉스 : others, 리눅스 : 사용자 이름의 그룹을 자동 생성) - 주그룹(기본그룹)
사용자별로 선택적으로 다른그룹에 함꼐 포함 가능
주그룹/ 보조그룹 상관없이 해당그룹에 들어있을 경우 그룹의 권한 사용가능
그룹의 정보 /etc/gropup 파일에 저장됨
user:x:1000:user
- user : 그룹의 이름
- x : 과거 그룹의 패스워드 저장 위치
- 1000 : 그룹의 ID (GID)
사용자의 암호 정보를 가지고 있는 파일 : /etc/shadow
사용자의 암호 자체가 저장되어 있는 파일 - 보안이 강화되어 있음
암호와 관련된 설정값이 들어 있음 :
*shadow 암호의 형식 - user:$ⓐ$ⓑ$ⓒ::0:99999:7:::
[userid]:[hash]:[lastchange]:[min]:[max]:[warning]:[inactive]:[expire]
- userid : 사용자 ID
- hash : 패스워드 해쉬 방식+Salt+패스워드 해시
- lastchange : 1970년 1월 1일을 기준으로 해서 계산된 패스워드 변경 날짜
- min : 패스워드 최소 사용기간, 패스워드 변경시 최소 이 기간만큼 사용
- max : 패스워드 최대 사용기간, 날짜로 계산, 지정하지 않을 경우 99999(무제한)
- warning : 패스워드 만료 기간 전 경고 기간
- inactive : 패스워드 만료 후 이 설정값 만큼 지난 후 계정을 잠금
- expire : 지정된 시점에 사용자 계정 만료
ⓐ : 숫자 한 자리로 암호의 해쉬(Hash) 방식을 지정. 6-SHA512, 1-MD5
ⓑ : Salt - 패스워드 해시를 계산할 때 함께 집어넣는 값, 패스워드 크래킹을 방지라기 위해
ⓒ : 패스워드 + Salt로 계산된 패스워드의 해쉬값
특권 사용자(superuser)
- 리눅스/유닉스 시스템이서는 시스템 관리권한을 가지는 사용자 : root(0)
- 특권 : 기본적인 권한을 초월할 수 있음.rights(waht to do), permission
root 사용자로 접근하는 방법
root사용자로 직접 로그인(GUI)
su : Switch User / Substitute User. 현재 사용자 계정을 다른 사용자로 전환
- su [사용자명] : 지정한 사용자로 변경
- su : root사용자로 변경
- su - 해당 사용자의 초기설정을 로드(- 사용시 현재 위치 변경 : 변경된 사용자의 루트 디렉토리)
sudo : 관리자 권한으로 명령을 실행
a. 관리자 권한을 1회적으로 사용할 수 있도록 함(sudo [명령어])
b. 권한을 얻어오기 위해 자신의 패스워드로 인증(root 패스워드가 아님)
c. 아무나 쓸 수 있는 것은 아님 - wheel 그룹의 구성원만 사용 가능
이 설정은 /etc/sudoers 파일에 있음
/etc/sudoers.d/ : 직접 /etc/sudoers파일을 수정하지 않고, 이 위치에 sudoers 설정에 해당 항목 추가하여 설정 가능
d. -i : su와 같이 관리자 권한의 쉘 사용
패스워드 변경 명령어
passwd
- 일반사용자 : passwd로 자신의 패스워드를 변경(현재패스워드를 알아야함)
- 관리자(root) : passwd [사용자명] 으로 다른 사용자의 패스워드를 변경가능(강제)
사용자 관리 명령어
useradd : 사용자 생성
[root@localhost~]#useradd -uid 2000 -g 1000 -G wheel -c 'test user' -m -d /userhome -s /bin/sh testuser
- 기본 명령어 사용법 : useradd [옵션]...<생성할 사용자ID>
- 각 속성별로 지정이 가능
- 사용자 ID : 필수항목
- UID: -u [사용할 UID번호]
- 주그룹 : -g [주그룹의 이름 or 주그룹의 GID]
- 보조그룹 : -G [보조그룹1의 이름 or 보조그룹1의 GID],[보조그룹2의 이름 or 보조그룹2의 GID], ...
- 사용자 설명 : -c [코멘트]
- 홈 디렉토리 : -d [사용할 홈 디렉토리 경로], -m [지정한 홈 디렉토리 생성]
- 사용자의 로그인 쉘 : -s [쉘 실행파일의 경로] (eg. /bin/zsh, /bin/ksh, /bin/csh)
usermod : 사용자 정보 수정
- 기본 명령어 사용법 : usermod [변경할 내용]...<변경할 ID>
- 대부분의 속성은 usermod와 유사
- ID 변경가능 -n [변경할 ID]
- 보조그룹 변경시 주의사항 : -G 뒤에 추가할 그룹만 적을 경우, 기존 보조그룹 삭제됨. -aG 옵션으로 기존 보조그룹 정보에 추가하도록 설정
userdel : 사용자 삭제
기본 명령어 사용법 : userdel [옵션] <삭제할ID>
-r 옵션 : 삭제 시 사용지의 홈 디렉토리를 함께 삭제
* -r 옵션을 사용하지 않고 사용자를 삭제할 경우 같은 UID를 사용해서 사용자를 생성할 경우 이전의 userA의 홈디렉토리에 접근할 수 있는 보안상의 문제가 발생할 수 있다
그룹 관리
groupadd : 그룹 추가
- 명령어 사용법: groupadd [옵션] <그룹이름>
- -g : 생성할 그룹의 GID 번호
groupmod : 그룹정보 변경
- 명령어 사용법 : groupmod [옵션] <그룹이름>
- -g : 그룹의 GID 변경
- -n : 그룹의 이름 변경
groupdel : 그룹 삭제, 그룹에 사용자가 있을 시 삭제 불가
사용자 패스워드 관련 설정 변경
chage : 사용자 패스워드 설정 변경 명령어
[root@localhost ~]#chage -d 0 //패스워드를 무조건 변경하도록 비밀번호를 만료시킴
- -d : 사용자의 패스워드 마지막 변경일자 수정 (날짜)
- -d 0 : 패스워드의 마지막 변경일자를 0으로 변경 → 다음 접속시 패스워드 변경 강제로 진행
- -d [년-월-일] : 패스워드 마지막 변경일자를 지정한 시점으로 변경
- -m : 패스워드 최소 사용기간 변경 (기간,일)
- -M : 패스워드 최대 사용기간 변경 (기간,일)
- -W : 패스워드 변경 경고기간 변경 (기간,일)
- -I : 패스워드 만료 후 계정 잠금(비활성화) 까지 유예기간 설정 (기간,일)
- -E : 계정 만료일자 지정 (날짜), 숫자/날짜 모두 사용가능(18650, 2021-02-10)
사용자 생성시 기본적용되는 값 설정
/etc/default/useradd : 사용자 기본그룹, 사용자 쉘, 기본 배포파일, 만료일자, inactive
useradd -D 명령으로 조회 및 변경 가능
!
- /etc/login.defs : 사용자 암호 관련 설정(최소/최대/경고/암호길이), UID관련 설정 등
SSH 연결 사용
SSH : Secure Shell
- Telnet, rlogin : 원격에서 시스템 쉘 연결하는 도구. 암호화가 없음
- SSH를 사용하여 쉘 연결 가능
- SSH를 사용하여 일회성 명령 전달 가능
- SSH를 사용한 터널링
- SFTP 기능포함
- SCP : SSH를 통한 cp 명령
'클라우드 아키텍트 양성과정' 카테고리의 다른 글
리눅스(CentOS) 저장소 관리(파티션, 파일시스템, 스왑) (1) | 2021.04.26 |
---|---|
리눅스(CentOS) 권한 및 프로세스 (0) | 2021.04.26 |
리눅스 소개/ 기본명령어 (0) | 2021.04.26 |
약결합 아키텍처 구축(SQS & SNS) (0) | 2021.03.29 |
AWS API Gateway (0) | 2021.03.29 |
댓글