사용자 정보를 가지고 있는 파일 : /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
[userid]:[hash]:[lastchange]:[min]:[max]:[warning]:[inactive]:[expire]
$algorithm_id$salt$encrypted_assword
$algoritm_id
: 숫자 한 자리로 암호의 해쉬(Hash) 방식을 지정. 6-SHA512, 1-MD5$salt
: 패스워드 해시를 계산할 때 함께 집어넣는 값, 패스워드 크래킹을 방지라기 위해$encrypted_password
: 패스워드 + Salt로 계산된 패스워드의 해쉬값su [사용자명]
: 지정한 사용자로 변경su
: root사용자로 변경su -
해당 사용자의 초기설정을 로드(- 사용시 현재 위치 변경 : 변경된 사용자의 루트 디렉토리)-i
: su와 같이 관리자 권한의 쉘 사용useradd : 사용자 생성
[root@localhost~]#useradd -uid 2000 -g 1000 -G wheel -c 'test user' -m -d /userhome -s /bin/sh testuser
useradd [옵션]...<생성할 사용자ID>
-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 : 사용자 정보 수정
userdel : 사용자 삭제
groupadd : 그룹 추가
groupmod : 그룹정보 변경
groupdel : 그룹 삭제
패스워드 변경 명령어 : passwd
chage : 사용자 패스워드 설정 변경 명령어
[root@localhost ~]#chage -d 0 //패스워드를 무조건 변경하도록 비밀번호를 만료시킴
/etc/default/useradd : 사용자 기본그룹, 사용자 쉘, 기본 배포파일, 만료일자, inactive
- useradd -D 명령으로 조회 및 변경 가능
/etc/login.defs : 사용자 암호 관련 설정(최소/최대/경고/암호길이), UID관련 설정 등
SSH 연결 사용 (SSH : Secure Shell)
Telnet, rlogin : 원격에서 시스템 쉘 연결하는 도구. 암호화가 없음
- SSH를 사용하여 쉘 연결 가능
- SSH를 사용하여 일회성 명령 전달 가능
- SSH를 사용한 터널링
- SFTP 기능포함
- SCP : SSH를 통한 cp 명령