- Facts (사실, 객관)
: 진도 나가기 전에 저번주에 배웠던 내용들에 대해서 실습 문제들을 풀었다. 사용자 생성/수정 관리, 확장권한에 대해서 공부하고 실습을 진행하였다. 실습 부분은 TIL을 작성하면서 다시 풀어보았다.
- Feelings (느낌, 주관)
: 저번에 배운것들 이해는 했는데 외우지는 못해서 구글링을 하면서 실습 문제들을 풀어나갔다. 내 기준 구글링을 해도 어려운 문제들이 있어서 힘들었다. 그리고 월요일이라 그런지,, 굉장히 무기력한,,, ㅋ 오늘 배운 내용들도 쉽게 이해되는 부분들인데 실습 문제만 풀려고 하면 너무 귀찮아진다,., 낼부터는 제대로 해야지 - Findings (배운 점)
: 계정 파일 관리
- /etc/passwd : 사용자 정보를 담고 있는 기본 파일
/etc/shadow : 사용자의 암호화된 패스워드를 담고 있는 파일
/etc/group : 사용 그룹의 정보를 담고 있는 파일
사용자
- 시스템 사용 주체, 파일 소유주, 모든 실행 및 접근 권한의 1차적 기준, 일반 유저, 시스템 유저, 슈퍼 유저로 구분
- /etc/passwd 파일에 정보 저장
name password UID GID GECOS Home Shell root x 0 0 root /root /bin/bash
/etc/passwd 구조
name password UID GID comment Home Shell root x 0 0 root / /bin/sh 시스템에 등록된 사용자를 구분하는 문자 x로 표시된 경우 /etc/shadow 파일에 암호저장 시스템에 등록된 사용자를 구분하는 숫자 (범위 100~60000) 사용자가 실행한 명령어에서 기본으로 사용할 그룹 (범위 100~60000) 이름, 전화번호 등의 사용자의 다양한 정보를 저장 시스템에 로그인할 때 최초로 위치하는 디렉토리 사용자의 명령어를 해석하는 셀
/etc/shadow 구조
name: hash_pw :lastchange : min : max : warning : inactive : expire : blank name 사용자 이름 hash_pw 사용자의 해시암호 값 저장 lastchange 현재 사용중인 암호가 설정된 시기 min 암호 설정 후 변경 불가 기간 max 암호 변경 없이 사용 가능한 최대 기간 warning 암호 만료 전 경고 기간 inactive 패스워드 만료일부터 계정 만료까지의 유예기간 expire 사용자 계정 만료 시기
사용자 구분
- 슈퍼 유저 : root 사용자, 시스템 관리 권한, 고정 하드 드라이브 관리 가능
- 일반 유저 : 부여된 권한에 따른 명령어 실행 및 파일 접근 가능, 이동식 장치 제어 가능
- UID 범위 : 0번 슈퍼유저(root)에 할당 / 1~200 정적 할당된 시스템 사용자 / 201~999 파일을 소유하지 않은 시스템 사용자
사용자 정보
명령어 결과 id 현재 사용자의 정보 출력 who 접속 중인 사용자 목록 whoami 현재 사용자 이름 who am i 접속 사용자 이름
사용자 전환
- 모든 사용자는 슈퍼 유저 혹은 다른 일반 유저로 전환 가능
- 전환 시 권한 및 환경 변수 등을 획득
명령어 동작 인증 방식 su 사용자만 전환 대상 아이디의 패스워드 입력 su - 사용자 환경까지 획득 대상 아이디의 패스워드 입력 sudo -i su - 와 동일 본인 패스워드 입력 sudo 관리자 권한 임시 획득 본인 패스워드 입력
관리자 권한 사용
- sudo 명령어를 통해 권한 획득, wheel 그룹 구성원
사용자 계정 관리
- useradd [option] [username] : 사용자 생성
-s 사용자 쉘 지정
default - /bin/bash-b 사용자 홈 디렉토리 변경 -f INACTIVE 변경 -u uid 지정
default - passwd
가장 높은 숫자 다음 번호
원하는 번호 지정-d 특정 디렉토리 지정
default - home
디렉토리 아래에 계정명으로 생성
원하는 경로에 홈디렉토리 생성 가능-g 기본 그룹 지정
default - uid와 같은 번호로 지정되고 그룹명 또한 계정명과 같은 이름으로 지정
기존에 존재하던 그룹의 gid를 지정 가능-G 보조 그룹 지정 -D 사용자 생성 디폴트 값 확인 및 디폴트 값 수정 시 사용 -c 원하는 내용으로 지정
사용자 생성
- useradd [option] UserName
- /sbin/nologin : 사용할 수 있는 쉘을 주지 않음으로써 로그인할 수 없게 만듦
- 특정 서비스만 사용하여 인증만 필요한 사용자들에겐 쉘을 주지 않음
사용자 수정
- usermod [option] UserName
- -G 옵션만 사용 시 기존 보조그룹 삭제
옵션 기능 -a 보조그룹을 추가 -G 보조그룹 변경 -g 기존의 존재하던 그룹의 gid로 수정 가능 -L 사용자 계정 잠금 -l 계정명 수정 가능 -U 계정 잠금 해제 -u 원하는 번호로 uid 수정 -c 원하는 내용으로 수정 -d 원하는 경로에 홈디렉토리 수정 가능(단, -m 옵션과 함께 사용해야 됨) -s 원하는 쉘로 수정가능
사용자 삭제
- userdel [option] UserName
- 사용자 제거 시 -r 옵션을 생략하면 해당 사용자의 홈 디렉토리가 삭제되지 않음
- 새로 생성된 사용자가 삭제된 사용자의 uid를 할당 받게 되면 삭제된 사용자의 홈 디렉토리를 소유하게 되므로 문제가 발생 할 수 있음
사용자 계정 관리
- 암호설정 : passwd 명령어 사용, 로그인 한 사용자 본인의 암호 변경, root 사용자의 경우 모든 계정 변경 가능
- 암호 속성 변경 : change 명령어 사용, root 사용자만 설정 가능, 암호 사용 기간 및 변경 기한 등 설정
- Change : 패스워드에 대한 유효기간을 부여하여 주기적으로 사용자가 패스워드를 변경하도록 하는 보안상 상당히 유용한 도구
-l change의 설정 확인 -M 패스워드 사용의 최대 기간 -m 패스워드를 변경할 수 있는 최소 기간 -I 패스워드 만기 후 계정을 사용하지 못하는 기간 -E 사용자 계정의 만료 날짜 -d 사용자의 새 패스워드 변경 일 -W 패스워드의 유효기간이 만료하기 전 사용자에게 경고하는 기간
그룹
- 실행 및 접근 권한의 2차적 기준
기본그룹 보조그룹 사용자 생성 시 자동 생성 사용자가 수동으로 생성 파일 생성시 소유 그룹 지정 파일 사용 시 권한 확인 /etc/passwd 4번째 필드에 표시 /etc/group 에 정보 표시 id에 명령어 출력의 gid id 명령어 출력의 groups 1인 1그룹 0개 이상의 그룹에 가입 Name Password GID Member wheel x 10 student
사용자 그룹 관리
- groupadd [option] [groupname] : 그룹 생성
-g [GID] 특정 gid 값을 지정 -o 그룹의 GID를 중복으로 사용
-n 그룹의 이름을 변경 -g 새로운 gid 값을 부여 -o 그룹의 GID를 중복으로 사용
확장 된 권한의 종류
- Setuid : 일반 사용자가 대개는 root 권한을 필요로 할 경우, 파일 소유주의 권한으로 실행, root 소유의 명령어를 root의 권한으로
실행하고자 할 때 사용, 명령어에만 작용하고 디렉토리에는 전혀 아무런 효과 없음
- Setgid : 애플리케이션에서 그룹 사용자의 권한이 필요할 경우, 파일과 디렉토리에 각각 다르게 적용
파일 : 명령어를 소유 그룹의 권한으로 실행
디렉토리 : setgid 주어진 디렉토리에 파일 생성 시 해당 디렉토리의 소유 그룹이 상속되기도 함
- Sticky bit : 일반 사용자들이 /tmp 디렉토리를 사용해서 임시 파일을 만들 수 있도록 설정 할 때 사용, 디렉토리에만 영향
sticky bit 권한이 주어진 디렉토리에서는 root나 파일의 소유주만 삭제가 가능하도록 하는 권한
file directory setuid o x setgid o o sticky bit x o 심볼릭 방식 8진수 방식 setuid chmod u+s 파일명 chmod+4000 파일명 setgid chmod g+s 파일명 chmod+2000 파일명 sticky bit chmod o+t 파일명 chmod+1000 파일명
'GOORM' 카테고리의 다른 글
GOORM: Kubernetes-13 (0) | 2021.11.10 |
---|---|
GOORM: Kubernetes-12 (0) | 2021.11.09 |
GOORM: Kubernetes-10 (0) | 2021.11.05 |
GOORM: Kubernetes-9 (0) | 2021.11.05 |
GOORM: Kubernetes-8 (0) | 2021.11.04 |
댓글