2022. 9. 13. 16:43ㆍLinux
오늘은 사용자 및 그룹을 관리하는 법에 대해서 알아보겠습니다.
먼저 사용자를 담고 있는 /etc/passwd 파일에 대해서 알아보겠습니다.
# tail -2 /etc/passwd
tail 명령어는 파일의 뒷부분을 출력해주는 명령어입니다.
옵션 -숫자 를 이용해서 원하는 줄의 수만큼 출력할 수 있습니다.
여기서 kjs 사용자를 참고해 설명해 보겠습니다.
kjs : 사용자명
x : 패스워드. 실제 패스워드 저장은 /etc/shadow 파일에 암호화되어 저장됨
10003 : UID(User ID)
10003 : GID(Group ID)
Top : 별칭, 설명
/home_1/kjs : 사용자의 홈 디렉토리 위치
/bin/bash : 로그인 시 부여되는 shell
다음으로 사용자를 추가하는 명령어에 대해서 알아보겠습니다.
# useradd [옵션] 사용자명
옵션 -
u : UID 지정
g : GID 지정. 지정안할 시 기본적으로 uid와 동일한 gid가 생성되어 부여됩니다.
G : 추가 그룹 설정
c : 별칭, 설명 설정
d : 홈 디렉토리 경로 지정
s : 로그인 시 사용할 shell 지정
모든 옵션을 사용해 hmh 사용자를 추가해 보겠습니다.
# useradd -u 1004 -g 100 -G 10003 -c myname `mkdir /sweethome` -d /sweethome/hmh -s /bin/sh hmh
-u 1004 : uid를 1004로 지정
-g 100 : gid를 100으로 지정
-G 10003 : 추가그룹을 10003으로 지정
-c myname : 별칭을 myname 으로 지정
`mkdir /sweethome` : ``안에 들어간 명령은 그 줄에서 가장 먼저 실행됩니다. /sweethome/hmh를 홈 디렉토리로 설정하기 이전에 /sweethome 디렉토리를 만들어주는 과정입니다.
-d /sweethome/hmh : 사용자의 홈 디렉토리를 /sweethome/hmh로 직접 지정
-s /bin/sh : shell을 /bin/sh로 지정
hmh : 추가할 사용자의 이름 지정
tail 명령어로 확인해보니 /etc/passwd 파일에 잘 추가된 모습입니다.
사용자를 수정하는 명령어에 대해서 알아보겠습니다.
# usermod [옵션] 사용자명
옵션은 useradd와 동일합니다.
여기서 중요한 점은 -d 옵션을 써서 홈 디렉토리를 수정할 때 -m 옵션을 같이 붙여줘야 한다는 점입니다.
-m 옵션을 붙이지 않으면 실제 홈디렉토리가 수정한 위치로 옮겨가지 않기 때문입니다.
먼저 -m을 붙이고 디렉토리를 수정해 보겠습니다.
# usermod -d /home/hmh -m hmh
디렉토리가 /sweethome/hmh 에서 /home/hmh로 옮겨진 모습입니다.
이제 -m 옵션을 붙이지 않고 /home에서 /sweethome으로 옮겨보겠습니다.
실제 hmh 홈디렉토리가 /sweethome으로 옮겨가지 않은 모습입니다.
이렇듯 usermod 명령어에서 -d 옵션을 사용할 때 -m을 같이 사용하지 않으면
사용자의 홈 디렉토리를 찾지 못하는 에러가 발생할 수 있기 때문에 꼭 기억하도록 해야 합니다.
다음으로 사용자를 삭제하는 명령어인 userdel에 대해서 알아보겠습니다.
# userdel [옵션] 사용자명
옵션에는 보통 -r을 붙여줍니다.
-r을 붙이는 이유는 사용자를 지우면서 사용자의 홈 디렉토리, 메일 디렉토리 등 관련된 데이터들을 모두 삭제하기 위함입니다. 붙여주지 않으면 nouser인 상태로 디스크 공간을 차지하게 됩니다.
먼저 -r을 붙인상태로 사용자를 삭제해 보겠습니다.
먼저 사용자 hmh를 만들어 놓겠습니다. 홈 디렉토리는 /home_1/hmh 입니다.
이제 삭제 명령어를 입력해보면 /home_1에 hmh 디렉토리가 사라진 모습입니다.
-r 옵션을 안 붙인 상황도 가정해 보겠습니다.
/home_1에 hmh 디렉토리가 그대로 남아있는 모습입니다.
이렇듯 불필요한 데이터가 남아있는 것을 방지하기 위해 userdel 명령어를 사용할 시 -r을 붙여줘야 합니다.
이제 그룹 관리를 알아보겠습니다.
먼저 그룹 파일을 살펴보겠습니다.
경로는 /etc/group 입니다.
kjs:x:10003: 그룹을 분석해보겠습니다.
kjs : 그룹명
x : 그룹 비밀번호
10003 : GID(Group ID)
그룹을 추가해보겠습니다.
기본적으로 사용자를 추가할 때 UID번호와 똑같은 GID의 그룹이 생성됩니다.
그리고 명령어를 사용해서 그룹만 따로 생성시킬 수 있습니다.
# groupadd [옵션] 그룹명
옵션-
g : 그룹의 GID를 지정할 수 있습니다.
# groupadd -g 1004 angel
GID가 1004인 angel 그룹을 생성하겠다.
/etc/group 안에 잘 생성된 것을 확인할 수 있습니다.
그룹의 이름을 변경해 보겠습니다.
# groupmod -n 변경후이름 변경전이름
# groupmod -n devil angel
이름이 잘 변경된 모습입니다.
그룹을 삭제해보겠습니다.
#groupdel 그룹명
#groupdel angel
잘 삭제됐습니다.
다음으로 그룹에서 사용자 계정을 컨트롤 해보겠습니다.
# gpasswd [옵션] 사용자명 그룹명
옵션 -
a : 사용자를 그룹에 추가합니다.
d : 사용자를 그룹에서 삭제합니다.
# gpasswd -a a devil
a를 devil 그룹에 추가합니다.
# gpasswd -a b devil
b를 devil 그룹에 추가합니다.
# cat /etc/group | grep devil
/etc/group 파일에서 devil 문자열이 존재하는 행을 출력합니다.
파이프라인은 X | Y 형태에서 X 의 처리결과를 Y 로 전달하는 것입니다.
그리고 grep은 특정 문자열이 존재하는 행을 출력합니다.
a,b 사용자가 devil 그룹에 추가된 모습입니다.
사용자를 그룹에서 삭제해 보겠습니다.
# gpasswd -d a devil
a 사용자를 devil에서 삭제합니다.
확인해보면 a가 devil 그룹에서 빠진걸 알 수 있습니다.
끝!
'Linux' 카테고리의 다른 글
8. 중괄호 { } 활용과 명령어 연속 입력 (3) | 2022.09.19 |
---|---|
7. 사용자 관련 설정 파일들 /etc/shadow, etc/skel, etc/default/useradd, etc/login.defs (3) | 2022.09.16 |
5. 파일 속성, 권한과 ACL (3) | 2022.09.13 |
4. tar 아카이브와 파일 압축 (7) | 2022.09.11 |
3. vi 편집기의 명령어와 파일 link (3) | 2022.09.10 |