22.02.18
목차
1. 사용자 및 그룹 관리
- 관련된 파일 및 디렉터리
2. /etc/passwd 파일 분석
3. 사용자 계정 생성
- useradd
- 사용자 계정 생성시 자동 생성되는 디렉터리 및 파일
- 사용자 계정 uid 바꿔서 생성
- 사용자 계정 gid 바꿔서 생성
- 사용자 계정 Comment 달아서 생성
- 사용자 계정 홈 디렉터리 변경해서 생성
- 사용자 계정 shell 형식 변경해서 생성
4. 사용자 계정 삭제
- userdel
5. 사용자 계정 수정
- usermod
- 사용자 계정 uid 수정
- 사용자 계정 gid 수정
- 사용자 계정 Comment 수정
- 사용자 계정 홈 디렉터리 수정
- 사용자 계정 shell 수정
사용자 및 그룹 관리
관련된 파일 및 디렉터리
- /etc/passwd : id, pw, uid, gid, 코멘트, 홈디렉터리, shell
- /etc/group : id, pw, gid, 사용자
- /etc/shadow : id, pw, 마지막으로 패스워드 수정한 날짜, 패스워드 최소 사용기간,
패스워드 최대 사용기간, 경고메세지 출력일, 유예기간, 계정만료일
- /etc/dafault/useradd : 기본그룹, 유예기간, 계정만료일, 로그인 shell, spool 생성여부
- /etc/login.defs : 메일사서함위치, 패스워드 최소 사용일, 패스워드 최대 사용일,
경고 메세지 출력일, 패스워드 최소 길이, 패스워드 암호화 방식 sha512
uid 시작 및 끝 번호 지정, gid 시작 및 끝 번호 지정
- /etc/skel : 사용자 계정 생성시 기본적으로 홈디렉터리에 복사하는 파일 및 디렉터리
- head, tail : 문서의 앞쪽 부분부터 or 뒷쪽 부분 부터 볼 수 있는 명령어
ex) head -5 /etc/passwd(이런 식으로 많이 사용)
/etc/passwd 칼럼별 분석
- 칼럼 : 콜론으로 구분
- lee2: : 사용자 id
- x: : 사용자 pw
- 2006: : uid (user identity, 사용자별로 고유하며 기본적으로 1000번 부터 생성)
- /etc/login.defs에서 생성
- 만일 순차적 2000번 uid를 사용하면 그 다음 계정은 2001로 생성됨 / 중간에 제외된 uid 사용 x
- 즉, 위의 예제는 lee의 uid가 2005기 때문에 2006으로 설정된 것이다
- 2006: : gid (그룹별로 고유하며 기본적으로 1000번 부터 생성)
- 사용자 계정을 생성하면 동일한 그룹이 자동생성
- : : 코멘트(설명)
- /home/lee2: : 사용자의 홈 디렉터리
- /bin/bash : 사용자가 로그인 할때 주어지는 Shell
사용자 계정 생성
- useradd 사용
사용자 계정 생성시 자동 생성되는 디렉터리 및 파일
- /home/사용자 계정이름 : 사용자의 홈디렉터리
- /var/spool/mail/사용자 계정이름 : 메일 사서함 파일(= /var/mail/사용자 계정이름)
- 둘 중 한 곳이라도 삭제가 되면 다른 곳도 삭제가 된다(같은 파일)
사용자 계정 uid 바꿔서 생성
ex) useradd -u 2100 lee3
- 보통이라면 lee3의 uid는 2007이여야 하지만, -u 옵션을 통해 2100이 되었다
사용자 계정 gid 바꿔서 생성
ex) useradd -g 1000 second
- second 사용자의 경우, 보통이라면 gid가 1001되었을 것이다
- useradd -g 2000 third 를 했을 때는 2000이라는 그룹이없어 사용자가 만들어 지지 x
- 즉, 존재하는 그룹에 한해서만 바꿔서 생성할 수 있다
- fourth 사용자의 경우 기본 gid가 1003이고, -G 옵션을 통해 추가 그룹 1002까지 주었다
- /etc/passwd에서는 추가 그룹까지는 확인할 수 없어 명령어 id를 이용해서 확인하여야 한다
사용자 계정 Comment 달아서 생성
ex) useradd -c five fifth
- -c 옵션을 통해 five라는 comment를 작성
사용자 계정 홈 디렉터리 변경해서 생성
ex) useradd -d /test/sixth sixth
- -d 옵션을 통해 본래 sixth의 홈디렉터리였을 /home/sixth에서 /test/sixth로 변경해서 생성
사용자 계정 shell 형식 변경해서 생성
- shell : 명령어 해석기
- 사용자 계정에서만 아니라
chsh(change shell) -s /bin/sh root 이런 형식으로 변경할 수 있다
- echo $SHELL
- ex) useradd -s /bin/sh seventh
- 보통 shell은 /bin/bash로 형성되지만, -s 옵션을 통해 /bin/sh로 변경
- /sbin/nologin : 애플리케이션 실행시 필요한 기본 로그인 같은 느낌이라 로그인이 되지 x
ex) Apache 같은 것이라고 생각
- su - 로 접속을 시도하려 할 때 메세지가 뜨면서 접속이 되지 않는다
- /bin/false : /sbin/nologin과 동일하지만, /sbin/nologin과는 달리 메세지가 출력 x
사용자 계정 삭제
userdel
- 사용자 계정 삭제시 옵션 -r을 사용하지 않으면 귀찮아진다
- userdel의 옵션 -r을 사용하지 않으면 저 2개의 디렉터리에서 수동으로 삭제해주어야한다
- 만약, 수동 삭제 안한 상태에서 계정 같은 것을 생성하면 오류는 나지만 생성은 된다
- 그러나, userdel -r로 삭제를 하려하면 삭제가 되지 않는다
- 자기가 소유주가 아니므로(기존의 gid, uid가 달라짐)
사용자 계정 수정
usermod
- useradd의 옵션과 동일하다
사용자 계정 uid 수정
- u 옵션을 통해 uid를 1004 -> 1100으로 수정
사용자 계정 gid 수정
- g 옵션을 통해 gid를 1004 -> 1003으로 수정
- groupadd -g 1100 test를 통하여 gid 1100을 가진 test 그룹을 생성(임의로)
- gid 1100 그룹이 생겨나서 usermod를 통해 gid 1100으로 수정이 가능
- 수업중엔 크게 좋은 것은 아니라고 언급하셨음
- 추가 그룹 제거 방법
- gpasswd -d 사용자 그룹
- 만약 추가 그룹 되있는 것 말고 그 위에 그룹을 지웠다면, gpasswd -d 사용해서 그룹 삭제
- 보통 추가 그룹때문에 /etc/passwd 밑에 사용자 계정부터 지우는 것이 좋다
사용자 계정 Comment 수정
사용자 계정 홈 디렉터리 수정
- m 옵션을 써야 사용자의 전 홈 디렉터리에 있던 contents도 같이 옮겨진다
사용자 계정 shell 수정