출처 : 따라하면서 배우는 it - 리눅스 고급편
사용자 및 그룹 관리 명령어
- 사용자 관리 명령어 - 사용자 계정 생성 useradd
[옵션] | [아규먼트] | [사용자 이름] |
---|
-u | UID를 지정(normally set unique) | |
-g | 주 그룹의 GID 설정 | |
-G | 보조 그룹의 GID 설정 | |
-d | 홈 디렉토리 | |
-m | 홈 디렉토리 지정 시 홈 디렉토리가 존재하지 않는 경우, 해당 디렉토리를 자동으로 생성하도록 하는 옵션 | |
-s | 로그인 쉘 지정 | |
-c | 주석(사용자에 대한 설명) | |
-f | 휴면 계정 전환 날짜 지정 | |
-e | 만료일 지정 | |
- 옵션은 선택
- UID Linux는 일반 사용자 1000번부터/ Unix는 다름
- 주 그룹 : /etc/passwd
- 보조 그룹 : /etc/group 마지막 필드
- m : 디렉토리가 없는 경우에 생성, 있는 경우엔 그대로. m옵션 없이도 요즘에는 자동으로 생성
- s : 일반적으로 /bin/bash 쉘을 쓰고 있음
- e : 특정 날짜 지정
- 명령어는 잘못쓰면, 알려줌
- 명령어를 사용해서 설정하는 게 좀 더 안정적임
사용자 계정 정보 변경 - usermod
[옵션] | [아규먼트] | [사용자 이름] |
---|
-u | UID를 지정(normally set unique) | |
-g | 주 그룹의 GID를 설정 | |
-G | 보조 그룹의 GID 설정 | |
-d | 홈 디렉토리 | |
-s | 로그인 쉘 지정 | |
-c | 주석(사용자에 대한 설명) | |
-f | 휴면 계정 전환 날짜 지정 | |
-e | 만료일 지정 | |
사용자 계정 삭제 - userdel
[옵션] | [사용자 이름] |
---|
-r | 해당 사용자가 사용하던 홈 디렉토리도 같이 삭제 |
- 🚑 상황에 따라 삭제를 판단해야 할 때
ex) 사용자는 필요 없어졌는데, 사용자가 쓰던 파일은 필요 있을 때는 지우면 안 됨.
그룹 관리 명령어 - Groupadd, groupmod, groupdel
1. groupadd
groupadd | -g | 그룹의 GID 지정 |
---|
| -o | GID 중복 설정 가능하게 하는 옵션 |
2. groupmod
groupmod | -g | 그룹의 GID 지정 |
---|
| -o | GID 중복 설정 가능하게 하는 옵션 |
3. groupdel
groupdel | 그룹을 제거할 때 사용하는 명령어 |
---|
- ex) test사용자인데, UID가 0인 경우, -> root사용자만 있게 관리를 해줘야한다. 고 가이드라인에 나와있다.
실습
- 👍 su - 사용자명 해도 관리자 root로 열리게 됨ㅋㅋ gid는 다름!
- user03 uid 0에서 변경하고 다시 해보기
- userdel이 안돼서 프로세스를 죽였다
-> 그럼에도 안돼서, root에서 exit하고 계속 나가니, 일반 사용자로 로그인이 같이 되어있는 것을 발견 후 .. 다시 root에서 하니 잘 됐다.
- 삭제 잘 됨, r 옵션은 홈디렉토리도 같이 삭제.
- r 옵션 없이 삭제하면 홈 디렉토리 남아있다.
- 안 지워지면? -r로 지운 다음, 사용자는 사라진 것 확인한 다음 홈디렉토리는 별도로 삭제 해주는 방법도 있다.
실습2
- 이 초기화 파일들은 어떻게 생겼고, 무엇인지?
- alias라던가, 프롬프트 모양, 환경변수 등 사용자가 생성될 때부터 초기화 파일이 자동으로 생성된다.
- 그런데, 이 파일들은 /etc/skel이라는 디렉토리 안에 내용 보면 똑같은 걸 볼 수 있다.
- skel : 뼈대. 특정 생성되는 사용자에 뼈대를 잡아주는. 배포되어야 하는 파일을 여기에 만들어놓음. 초기화 파일도 수정해놓는다면, 수정된걸로. 기본값들이 저장되어 있는.
- 👍 사용자 디렉토리는 여기에 있는 파일들이 복사가 되어서 만들어지는 것이다.!
useradd -D
: 사용자가 생성될 때, 기본적으로 설정되는 설정값들을 출력해주는 내용.
- 만약 기본값 자체를 바꾸게 되면, 바뀐 값으로 사용자가 생성이 된다.
- 바꾸고 싶다.
useradd -D -s /bin/sh
이런 식으로 바꾸면 된다.
- sh쉘로 바뀐 것 확인
- 옵션값 따로 지정 안 했음에도, /bin/sh로 바뀐 것을 알 수 있다.
- 다시 돌려주기 ㅎㅎ