리눅스/리눅스 고급
1. 사용자 관리
각수짱
2023. 2. 13. 19:45
728x90
반응형
SMALL
사용자 관리 관련 파일
/etc/passwd
user | x | 27 | 27 | MySQL | Server:/var/lib/mysql | /sbin/nologin |
로그인명 | 사용x | UID | GID | 주석(설명) | 사용자 홈 디렉토리 |
로그인 쉘 |
로그인명 | 각 사용자는 유일한 이름을 가지고 있어야 함(중복 허용X) 첫 문자는 영문자(._- 시스템에 따라 사용 가능) |
사용x | (본 사용 목적 : 패스워드를 저장 부분) 현재 사용x etc/shadow 파일에 따로 저장 |
UID | 로그인명은 중복이 X, but UID는 중복이 가능 시스템이 사용자를 식별하는 번호 (root의 권한을 가질 수도 있음) 일반사용자는 1000번 이상의 사용 normarlly 1000보다 작은 UID는 예약 UID |
GID | 해당 사용자가 속해있는 주 그룹의 GID |
주석 | 일반적으로 사용자의 전체 이름을 써준다. 또는 연락처, 부서 등 로그인명만으로 사용자의 구분이 힘들 때 자세한 설명을 쓰는 부분 |
사용자 홈디렉토리 | 사용자의 홈디렉토리 '~'를 사용했을 떄 참조하는 부분 |
로그인 쉘 | 사용자가 로그인할 때 실행되는 쉘을 지정 |
root | 시스템에서 모든 권한을 가지고 있는 최고 권한 사용자 시스템 내의 보호되는 파일이나 퍼미션 등의 제한 사항에 대해 대부분 영향을 받지 않는다 |
bin | 시스템의 구동중인 바이너리 파일을 관리하기 위한 계정 |
daemon | 백그라운드 프로세스에 대한 작업을 관리하는 시스템 계정 |
adm | 시스템 로깅이나 특정 작업을 관리하는 시스템 계정 |
Ip | 프린트를 위한 계정 |
gdm | Gnpme Display 관리 서비스 계정 |
/etc/shadow
mysql | !! | 19398 | ||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
1 | 로그인명 | 사용자의 로그인명 |
2 | 패스워드 필드 | 암호화되서 저장 대칭키 암호화 알고리즘(DES)을 이용한 Crypt 함수 $로 필드를 구분(패스워드 생성시 사용된 salt값을 저장 *LK* : 해당 사용자는 로그인 할 수 없는 lock이 걸린 사용자를 의미 공백 : 패스워드 입력 없이 로그인 할 수 있음 해시 함수 Windows의 암호저장 파일 경로 : C:Windows/System32/config/SAM 1비트 H() → 64비트 1GB H() → 64비트 |
3 | 마지막 변경일 | 1970/1/1 기준으로 패스워드를 변경한 날짜까지 count ex)19326 = 1970/1/1->19326일지남 |
4 | MIN | 패스워드 변경 후 최소 사용 기간 (패스워드 변경 후 설정 MIN 이 지날 때까지 재변경 불가) |
5 | MAX | 패스워드 변경 후 최대 사용 기간 지정된 MAX값 이내에 변경 패스워드 사용 가능 |
6 | WARN | 패스워드 만기일 이전에 사용자에게 경고 메세지를 전달할 날짜 지정 |
7 | Inactive | 비활성화 사용자 휴면 계정 설정 (설정 날짜만큼 로그인 활동이 없으면 Lock 계정 (휴면계정)으로 변경됨) ex) 7일로 설정하면 해당 사용자가 7일 이내에 로긍니하지 않을시 해당 계정을 locking하게 한다 |
8 | Expire | 패스워드 만기일 설정 해당 날짜에 자동으로 계정 locking →로그인 불가 (관리자에 의해 lock 해제 필요) |
9 | Reserved | 예약필드 현재는 사용 x |
<패스워드 생성>
- Password → H() → 암호문 1 → crypt(Salt값 추가 + 암호문 1) → 암호문 2
- salt 값 : 운영체제에서 random 하게 만들어내는 값
- why? 같은 암호를 사용하는 두 사용자의 암호값 혼란을 막기 위해
<로그인 시 패스워드 확인>
- 패스워드 → H() → 암호문 1 → crypt(shadow파일의 Salt값 + 암호문 1) → 암호문 2
/etc/group
- 사용자가 속한 그룹의 대한 정보를 담고 있는 파일
- 리눅스에서는 시스템 내의 각 사용자가 최소한 한 그룹에 속해야 하며, 사용자들은 주 그룹을 참조한다.
- 그룹은 주 그룹과 보조 그룹으로 나눠지며 주 그룹은 /etc/passwd의 GID 필드에 정의되고, 보조 그룹은 /etc/group 마지막 필드에 정의된다.
root | x | 0 | |
그룹 이름 | 패스워드 | GID | 사용자 목록 |
그룹이름 | 그룹의 이름 |
패스워드 | 하위 버전과의 호환성을 위해 제공되는 필드로 현재는 사용하지 않지만 사용이 불가능한 것은 아니다 |
GID | 해당하는 그룹을 구분하는 번호 |
사용자 목록 | 해당 그룹을 보조 그룹으로써 참조하는 사용자들의 로그인명을 작성 |
사용자 및 그룹 관리 명령어
사용자 관리 명령어
- useradd : 사용자를 추가하는 명령어
- ex) useradd [옵션] [아규먼트] [사용자이름]
- ex) useradd -m test1
- useradd test2
- useradd -u 2000 -g 1000 -m -d /sjb/test3 -s /bin/csh -c "Test Uset" test3
- useradd -d /sjb/test4 -m -u 0 -o -g 1000 -s /bin/bash -c "Test User" -k /etc/skel test4
- test4 사용자 추가
홈 디렉토리는 /sjb/test4
uid 0
gid 1000
로그인 쉘은 /bin/bash
주석은 Test User
스켈 디렉토리는 /sjb- 기본적으로 /etc/skel로 지정되어 있다.
skeleton의 약자로 사용자의 홈 디렉토리가 생성될 때
홈 디렉토리에 추가되야 하는 기본 파일들을 저장한 디렉토리
홈 디렉토리가 추가될 때 skel 디렉토리의 파일들을 복사 - *tip : 명령어를 이용해서 설정가능하고 파일을 수정해서도 설정 가능한 경우
명령어를 사용하는 걸 권장한다.
- 기본적으로 /etc/skel로 지정되어 있다.
- test4 사용자 추가
- 기본값 변경할 때는
useradd -D [추가옵션]로 변경 가능, 추가옵션은 홈디렉토리만 빼고 비슷하다.
[옵션] | [아규먼트] | [사용자 이름] |
-u | UID를 지정(normally set unique) | |
-g | 주 그룹의 GID 설정 | |
-G | 보조 그룹의 GID 설정 | |
-d | 홈 디렉토리 | |
-m | 홈 디렉토리 지정 시 홈 디렉토리가 존재하지 X 경우 해당 디렉토리를 자동으로 생성하도록 하는 옵션 | |
-s | 로그인 쉘 설정 | |
-c | 주석(사용자에 대한 설명) | |
-f | 휴면 계정 전환 날짜 지정 | |
-e | 만료일 지정 |
- usermod : 사용자 정보를 변경하는 명령어
- useradd 명령어에서 사용했던 옵션과 똑같다.
[옵션] | [아규먼트] | [사용자 이름] |
-u | UID를 지정(normally set unique) | |
-g | 주 그룹의 GID 설정 | |
-G | 보조 그룹의 GID 설정 | |
-d | 홈 디렉토리 | |
-s | 로그인 쉘 설정 | |
-c | 주석(사용자에 대한 설명) | |
-f | 휴면 계정 전환 날짜 지정 | |
-e | 만료일 지정 |
- userdel : 사용자를 제거하는 명령어
[옵션] | [사용자 이름] |
-r | 해당 사용자가 사용하던 홈 디렉토리도 같이 삭제 |
그룹 관리 명령어
- groupadd : 그룹을 추가할 때 사용하는 명령어
groupadd | -g | 그룹의 GID 지정 |
-o | GID 중복 설정 가능하게 하는 옵션 |
- groupmod : 그룹 정보를 수정할 때 사용하는 명령어
groupmod | -g | 그룹의 GID 지정 |
-o | GID 중복 설정 가능하게 하는 옵션 |
- groupdel : 그룹을 제거할 때 사용하는 명령어
groupdel | 그룹을 제거할 때 사용하는 명령어 |
패스워드 관련 파일 및 명령어
패스워드 정책
- 패스워드 정책 관련 파일
- /etc/security/pwquality.conf
- 대/소문자, 숫자, 특수문자를 혼용하여 8 글자 이상의 패스워드를 사용
- 동일 문자를 연속 4회 이상 사용하기 금지
- 패스워드 히스토리를 관리해 2~3개 이상 동일 패스워드를 사용 금지
- 패스워드 변경 주기를 설정 (패스워드 유효기간을 90일 이하로 설정)
- 사전에 나오는 쉬운 단어나 이름은 패스워드로 사용하지 못하도록 설정
- 기본 설정된 패스워드는 사용하지 못하도록 설정
- 초기 부여된 패스워드는 사용자 최초 접속 시 변경하도록 설정
패스워드 관련 파일
- shadow 관련 파일
- /etc/login.defs
패스워드 관련 명령어
passwd [사용자명] | |
해당 사용자의 패스워드 변경 사용자명을 입력하지 않으면 현재 사용자의 패스워드로 변경 |
|
-n | 패스워드 변경 후 최소 사용 기간 |
-x | 패스워드 변경 후 최대 사용 기간 |
-w | 패스워드 만기일 이전에 사용자에게 경고 메시지를 전달할 |
-f | 최초 로그인시에 강제로 패스워드를 변경하도록 설정 |
-d | shadow 파일의 패스워드 필드 값을 제거 passwd 입력 없이 로그인 가능 |
-l | 해당 사용자의 상태를 locking으로 변경 |
-s | 해당 사용자의 현재 패스워드 설정 조회 |
728x90
반응형
LIST