리눅스에서는 여러 사용자 계정을 만들어서 같은 컴퓨터에서 작업을 할 수 있습니다.
이번 포스팅에서는 사용자 계정과 관련된 명령어들을 알아보겠습니다.
useradd & usermod
useradd는 사용자 계정을 만들어주고
usermod는 만들어진 사용자의 설정을 바꿔주는 명령어입니다.
usermod는 useradd에서 설정하지 못한 사항을 추가로 지정해주는 기능을 해서
useradd와 같은 옵션을 사용하는 부분이 많습니다.
그래서 useradd와 usermod 명령어는 같이 정리하도록 하겠습니다.
useradd [옵션] 사용자명
usermod [옵션] 사용자명
옵션 | 설명 | ||
u | UID(User ID) 지정 | ||
g | GID(Group ID, 기본그룹) 지정(단, 존재하는 그룹이어야 한다) 자동설정되는 부분이니 건드리지 않아도 된다 |
||
G | 추가그룹 | ||
c | comment | ||
d | 홈디렉토리(단, 존재하는 디렉토리여야 한다) usermod 사용 시에는 -m 옵션도 같이 사용해야 컨텐츠(파일)도 함께 이동된다. |
||
s | login shell 지정 |
useradd에 대한 실습으로는
1. 기본 명령어로 사용자 a 만들기
2. 옵션을 사용해서 사용자 b 만들기
usermod에 대한 실습으로는
1. 사용자 a의 comment와 그룹 바꾸기
2. 사용자 b의 이름 바꾸기
를 해보겠습니다.
간단하게 기본 명령어만으로 사용자 a를 만들고 확인해 봅니다.
사용자 계정 조회 명령어는 끝부분 2줄만 보겠습니다.
useradd a
tail -2 /etc/passwd
방금 만든 사용자 a가 확인됩니다.
(여기서 볼 수 있는 사용자 계정에 대한 정보는 무엇을 나타내는건지,
/etc/passwd 파일이 무엇인지는 앞의 포스팅에서 확인 가능합니다.)
따로 UID, GID 지정을 하지 않아도 각각 1000으로 자동 할당됐습니다.
홈 디렉토리 위치는 /home/a 이고
로그인 shell은 /bin/bash 입니다.
사용자 계정을 만들면 /home 디렉토리와 /var/spool/mail 디렉토리에
사용자이름의 디렉토리와 파일이 생깁니다.
확인해 볼까요.
그러고보니 사용자 패스워드를 지정하지 않았군요.
패스워드 지정 방법은 두 가지가 있습니다.
passwd 사용자이름
echo '비밀번호' | passwd --stdin 사용자이름
passwd 사용이 일반적이고, 패스워드 지정 시 다른사람에게 노출되지 않습니다.
다른 방법은 패스워드를 지정 할 때 명령어 자체에 입력을 해야하기 때문에 노출될 위험이 있습니다.
이제는 옵션을 사용해서 사용자 b를 만들어봅시다.
직책이 매니저인 사용자 b는 홈 디렉토리를 /home_b/manager 로,
(디렉토리는 mkdir /home_b/manager 명령어로 미리 만들어둡시다)
comment에 manager로 표시해주고,
UID는 2000로 설정하고 싶습니다.
사용자 b를 만들고 /etc/passwd 디렉토리를 확인해봅니다.
useradd -c manager -d /home_b/manager -u 2000 b
tail -2 /etc/passwd
GID 지정을 하지 않았는데 UID를 따라 2000으로 할당됐습니다.
comment도 manager로 잘 달려있고, 홈 디렉토리 위치는 /home_b/manager 입니다.
이제 사용자 a의 comment와 그룹을 수정하겠습니다.
a도 사실 매니저 직급이라고 합니다.
comment는 manager, 그룹도 2000 으로 바꿔보도록 하겠습니다.
usermod -c manager -g 2000
tail -2 /etc/passwd
사용자 b의 이름을 manager 로 수정하겠습니다.
이미 만들어진 계정에 대한 수정은 usermod 명령어를 사용해줍니다.
-l 옵션을 사용하면 사용자 이름을 새로 지정할 수 있습니다.
usermode -l [새로운이름] [기존이름]
파일도 확인해볼까요.
ls -l /home_b
ls -l /var/spool/mail
이렇게 4가지 실습을 마쳤습니다.
userdel
userdel은 생성한 사용자계정을 삭제하는 명령어입니다.
이 명령어를 사용할 때는 -r 옵션을 필수적으로 붙여줘야 사용자의 파일까지 함께 삭제가 됩니다.
만약 -r 옵션을 붙이지 않는다면 이 파일들은 삭제되지 않아 수동삭제를 해야하는 일이 발생할 수 있습니다.
이 부분을 주의해서 사용자 manager을 삭제해봅시다.
userdel -r manager
tail -2 /etc/passwd l
s -l /home_b
ls -l /var/spool/mail
사용자 계정을 물론 파일까지 잘 삭제된 것을 확인했습니다.
그럼 group 설정도 삭제됐는지 볼까요?
group 파일을 아래 5줄만 출력해봅시다.
tail -5 /etc/group
b(manager)의 그룹ID였던 2000이 사라지지 않고 계속 남아있습니다.
다른 사용자가 포함된 group은 사용자 계정을 삭제해도 남아있기 때문입니다.
b(manager)의 그룹ID를 사용자 a도 사용하고 있어서 그런거니 사용자 a도 삭제하면 될까요?
사용자 a의 기본 그룹이 아니므로 제거되지 않는다는 메세지가 뜹니다.
그럼 그룹에 대해서는 어떻게 처리를 해야하는지는 다음 포스팅에서 다뤄보도록 하겠습니다.
[K-Digital Training, 애티버스러닝 교육 내용을 정리한 포스팅입니다.]
'Linux > 사용자 및 그룹 관리' 카테고리의 다른 글
사용자 및 그룹관리 ③groupadd, groupmod, groupdel 예시 (2) | 2023.03.08 |
---|---|
사용자 및 그룹관리 ①/etc/passwd, /etc/shadow, /etc/group, /etc/skel (0) | 2023.03.08 |