사용자 & 그룹
- 사용자 계정이랑?
> 사람이 장치를 사용하기 위해 로그인하는 계정
> 운영체제를 사용하는 사람 개개인에게 생성해주는 계정
(각종 작업을 누가 했는지 식별하기 위해 사용자 개개인에게 생성)
> 사용자 계정을 이용하여 파일/디렉터리의/ 사용 권한 설정이 가능
(같은 파일을 a사용자는 열고 b사용자는 열 수 없게 지정 가능)
- 그룹이란?
> 사용자 계정을 묶어주기 위한 객체
(사용자 계정의 논리적인 집합체)
> 관리자가 주로 제어
(그룹 생성/수정/삭제, 그룹에 사용자 계정을 소속시키는 등)
> 그룹에 권한을 부여하여 그룹에 소속된 사용자들이 동일한 권한을 적용받을 수 있다.
사용자 계정
- 사용자 계정에 관련된 파일
1. /etc/passwd : 사용자의 일반 정보가 들어있는 파일
* 파일 내용 보는 방법 (구분자 ‘:’)
itbank:x:1000:1000:asd:/home/itbank:/bin/bash | |
itbank | 사용자 ID, 뒤의 정보들이 어느 사용자의 정보인지 표시 |
x | 암호, passwd 파일에는 비밀번호를 표시하지 않음 |
1000(왼쪽) | UID, 이 사용자의 고유 번호 |
1000(오른쪽) | GID, 이 사용자가 소속된 주요 그룹의 고유 번호 |
asd | 사용자 별칭(계정명 혹은 ID로 사용 X, GUI환경에서 화면 에 표시 되는 이름) |
/home/itbank | 사용자의 홈 디렉토리의 경로와 이름을 절대경로로 저장 |
/bin/bash | 이 계정이 사용하는 shell |
* UID : User ID, 사용자에게 부여되는 고유번호
* GID : Group ID, 그룹에게 부여되는 고유번호
0 : root
1 ~ 199 : system or service
1000 ~ : 일반 사용자&그룹
* shell : 명령어 해독기, 사용자가 입력한 명령을 운영체제에 전달해주는 역할
shell에 따라 알지 못하는 명령어도 있다.
현재 시스템에 설치된 shell은 /etc/shells 파일에서 확인 가능
passwd 파일에 저장된 정보중 shell위치에 /sbin/nologin이 있다.
> 명령어 사용 shell X, 로그인을 하지 못하게 만드는 shell(system or service 계정에 부여)
2. /etc/shadow : 사용자의 고급 정보가 들어있는 파일
* 파일 내용 보는 방법
itbank:$6~~:18978:0:99999:7::: | |
itbank | 사용자 ID, 뒤의 정보들이 어느 사용자의 정보인지 표시 |
$6$~~$~~ | 암호, 사용자가 로그인 시 사용하는 비밀번호를 암호화하여 저장 (!! : 패스워드가 없다) |
18978 | 암호 생성 일자, 1970년 1월 1일을 기준으로 며칠째에 생 성된 암호인지 표시 (운영체제 설치 시 저장된 암호는 생성 일자가 표시 x) |
0 | 암호 최소 사용 일자 |
99999 | 암호 최대 사용 일자(= 암호 만료 일자) |
7 | 암호 만료 전 경고 일자 |
※ ** 이 뒤에 나오는 정보들은 거의 사용 X >> 생략
3. /etc/login.defs : 사용자 & 그룹 생성 및 삭제와 관련된 몇몇 정보들이 들어있는 파일
- 사용자 암호 변경
passwd : 명령어를 입력한 사용자의 암호 변경(모든 사용자)
passwd <계정명> : 해당 사용자의 암호 변경(관리자만 사용)
*옵션
-l : 패스워드 잠금 설정
-u : 패스워드 잠금해제
- 사용자 계정 생성
useradd [옵션] [값] ... [옵션] [값] 사용자명
옵션 | |
-u | UID 지정 |
-g | GID 지정(주요 그룸으 다른 그룸으로 지정) |
-c | 별칭 지정 |
-s | shell 지정 |
-d | 홈 디렉토리의 경로와 이름을 절대경로로 지정(홈 디렉토리가 만들 어질 경로는 미리 생성) /etc/login.defs 파일의 CREATE_HOME 설정이 없거나 no이면 –m 옵션과 함께 사용 |
-m | make directory |
-k | skel 지정(기본경로인 /etc/skel이 아닌 다른 디렉토리를 skel로 지 정) 반드시 -m 옵션과 함께 사용 |
-D | 사용자 생성 시 적용되는 기본 정보 확인 추가 옵션을 함께 사용하 여 기본 정보 변경(ex. -b 옵션을 함께 사용하면 홈 디렉토리 생성 위치 변경) -D 옵션을 사용하면 사용자 계정 생성 기능이 없어진다. |
* /etc/skel : 사용자 홈 디렉터리의 뼈대가 되는 디렉터리
사용자 생성 시 홈 디렉터리 내부에 /etc/skel/ 안에 있는 파 일/디렉터리들을 복사
> 사용자 홈 디렉토리 내부에 특정 파일/디렉터리를/ 자동으로 생성 가능
/etc/default/useradd
: 사용자 생성 시 적용되는 기본 정보가 저장된 파일
이 파일의 내용을 변경하면 useradd의 옵션을 사용하지 않아도 같 은효과 확인 가능
그룹
- 사용자 계정을 묶어주기 위한 객체
> 그룹에 권한을 부여해서 그룹에 소속된 모든 사용자가 동일한 권한을 적용 받음
- 사용자가 그룹에 소속되는 방법을 두 가지로 분류
1. 사용자가 그룹을 주요 그룹으로 사용(GID로 사용)
2. 사용자가 그룹에 일반 소속되어 사용
- 그룹에 관련된 파일
/etc/group : 그룹의 일반정보가 들어있는 파일
* 파일 내용 보는 방법
itbank:x:1000: | |
itbank | 그룹 이름, 뒤의 정보가 어느 그룹의 정보인지 알려준다. |
x | 암호, 그룹에는 별도의 암호를 지정하지 않는다. |
1000 | GID, 해당 그룹의 고유번호 |
<마지막 필드> | 그룹에 일반 소속된 사용자들의 목록 운영체제 설치과정에 서 생성된 사용자들은 주요 그룹의 일반소속 목록에 함께 출력 |
- 그룹 생성
groupadd [옵션] [값] ... [옵션] [값] 그룹명
* 옵션
-g : GID 지정
- 그룹 정보 수정
groupmod 옵션 값 [옵션] [값] ... [옵션] [값] 그룹명
* 옵션
-g : GID 지정
-n : 그룹 이름 지정
- 그룹 삭제
groupdel 그룹명
* 사용자가 주요그룹(GID)으로 사용중인 그룹은 삭제 X
사용자 + 그룹
- 사용자를 생성하면 동일한 이름의 그룹이 자동으로 생성
> 기본적으로 사용자는 함께 만들어진 그룹을 자신의 주요 그룹(GID)으로 사용
- 사용자가 일반 소속된 그룹과 사용자의 주요 그룹은 언제든지 변경 가능
> 주요 그룹
사용자 정보 수정(usermod)의 -g 옵션 사용
> 일반 소속된 그룹
사용자 정보 수정(usermod)의 -G 옵션 사용 >> 가급적 사용 X
gpasswd 명령어 >> 그룹을 기준으로 일반 소속된 사용자 목록을 편집
gpasswd
- 그룹에 소속된 일반 사용자 목록을 제어
- 형식
gpasswd 옵션 사용자명 그룹명
* 옵션
-a : 사용자를 그룹에 일반소속
-d : 그룹에 일반 소속된 사용자 목록에서 특정 사용자 제거
id
- 사용자의 UID, GID, 소속된 그룹의 목록 확인
- 형식
id 사용자명