0. 목자
1. 사용자 및 그룹 관리
1.1. 관련된 파일 및 디렉토리
2. 사용자 계정 생성
2.1. 사용자 계정 생성 시 자동생성되는 디렉토리 및 파일
2.2. 삭제 시 주의 사항
3. /etc/passwd 파일분석
4. useradd, usermod
------------------------------------------------------------------------------------------------------------
1. 사용자 및 그룹 관리
1.1. 관련된 파일 및 디렉토리
- /etc/passwd : id, 패스워드, uid, gid, 코멘트, 홈디렉토리, shell
- /etc/group : id, 패스워드, gid, 사용자
- /etc/shadow : id, 패스워드, 마지막으로 패스워드 수정한 날짜, 패스워드 최소 사용기간 패스워드 최대 사용기간, 경고메세지 출력일 , 유예기간 , 계정만료일
- /etc/default/useradd : 기본그룹, 유예기간, 계정만료일, shell, spool 생성 여부
- /etc/login.defs : 메일사서함위치, 패스워드 최소사용일, 최대사용일, 경고 메세지 출력일, 패스워드 최소길 이, uid시작 및 끝번호, gid 시작 및 끝번호, 패스워드 암호화 방식 sha512
- /etc/skel : 사용자 계정 생성시 기본적으로 홈디렉토리에 복사하는 파일 및 디렉토리
2. 사용자 계정 생성 & 삭제 : useradd 사용자이름 & userdel 사용자 이름
2.1. 사용자 계정 생성 시 자동생성 되는 디렉토리 및 파일
- /home/계정이름 디렉토리 생성됨. 사용자의 홈 디렉토리
- /var/spool/mail/계정이름 파일생성. 메일 사서함 파일 = /var/mail/계정이름
2.2. 사용자 계정 삭제 시 -r 사용하지 않으면 위의 두 파일과 디렉토리가 그대로 남아있게 됨
- -r 옵션을 사용하면 a 사용자와 관련된 파일과 디렉토리가 함께 삭제 된다.
- -r을 사용하지 않으면 기존 사용자와 관련된 파일과 디렉토리가 지워지지 않음.
또한 동일한 이름의 계정 생성 시 계정은 생성되지만 uid 충돌 문제 발생.
==> 재성성한 b의 uid와 gid가 다르다
==> 따라서 새로 생성된 b는 기존 파일과 디렉토리를 삭제하지못한다.
==> rm 명령어를 이용하여 해당 파일과 디렉토리를 지우게 되면 오류 없이 사용자 b를 생성 제거 할 수 있다.
- 사용자를 제거할 때는 다른 사용자가 앞 사용자의 gid를 사용할 수 있기 때문에 맨 뒤에 있는 사용자부터 제거.
=> 혹은 그룹을 제거하는 방법도 있다
* gpasswd -d 사용자 그룹 : 사용자를 그룹에서 제거하는 명령어
* groupdel 그룹 : 그룹을 제거
3. /etc/passwd 파일 분석
- 예시) a:x:1000:1000: :/home/a:/bin/bash
3.2. 분석 (칼럼별로 분석, 칼럼은 콜론으로 구분됨)
- a: : ID
- x: : password
- 1000: : uid 사용자별로 고유하다. 기본적으로 1000번부터 생성됨. /etc/login.defs 관련
만일 순차적 2000번 uid를 사용하면 그 다음 계정은 2001로 생성됨
중간의 제외된 uid는 사용하지 않음.
- 1000: : gid 그룹별로 고유하다. 사용자 계정을 생성하면 동일한 그룹이 자동 생성됨
- : : 코멘트 설명
- /home/a: : 사용자의 홈 디렉토리
- /bin/bash : login 주어지는 Shell
4. useradd, usermod : 옵션은 동시에 여러 개 설정 가능
- id 사용자 : 사용자가 해당되는 uid 와 gid, 그룹을 출력.
4.1. useradd
- -u : uid 설정. 기본적으로 1000번부터 할당, 마지막 uid값 이후로 생성
> uid는 마지막으로 만든 uid 다음 숫자로 생성.
- -g : gid 설정. 기본적으로 uid와 동일한 gid 자동생성. 단 -g 옵션은 해당 그룹이 존재해야함
> 사용자 e가 사용자 d가 가진 gid 3000에 해당됨을 볼 수 있다.
>> /etc/group파일을 통해 3000 그룹에 e가 포함됨을 볼 수 있다.
- -c : comment 설정
- -d : 홈디렉토리 지정. 해당 홈디렉토리 존재해야함.
- -s : login Shell 지정. 기본값 -> /bin/bash , 다른종류의 Shell: /bin/sh
> shell은 명령어 해석기, App 전달하는 명령을 받아서 Kernel에 전달
shell 이 없으면 login 불가
>>현재 shell 확인 : # echo $ SHELL
모든 shell 확인 : # cat /etc/shells
login shell 변경 : # chsh -s 로그인shell 사용자
# chsh -s /bin/bash root
login 불가능 : /bin/false 로그인 불가 메세지 출력 안함
/sbin/nologin 로그인 불가 메세지 출력
- -G : 추가 그룹 설정
4.2. usermod : 옵션은 useradd와 동일
- 단, 홈디렉토리 변경 시 내부 컨텐츠까지 이동을 위해서는 -m 옵션 추가
옵션이 없다면 내부 파일은 이동하지 않는다.
- ex) # usermod -d /home_1/a -m a
5. 그룹관련 명령어
- groupadd -d gid번호 그룹이름 : gid를 가지는 그룹을 생성
- gpasswd -d 사용자 그룹이름 : 사용자를 그룹에서 제거
- groupdel 그룹이름 : 그룹 삭제
'리눅스' 카테고리의 다른 글
8. 디스크 관리(1) (0) | 2022.02.22 |
---|---|
7. 사용자 및 그룹 관리 (2) (0) | 2022.02.21 |
5. 파일 및 디렉토리 권한 (0) | 2022.02.19 |
4. Archive & 압축 (0) | 2022.02.19 |
3. 리눅스 기본 명령어 (0) | 2022.02.19 |