본문 바로가기

os/linux

[ Linux ] 사용자 생성, 정보 수정, 삭제

[ Linux ] 사용자 생성, 정보 수정, 삭제

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 리눅스 사용자 생성, 정보 수정 그리고 삭제에 대해서 알아보겠습니다.

 

리눅스와 더욱 더 친해지시길 바라면서 글 시작하겠습니다.

 

linux-logo
리눅스 로고



시작하기에 앞서 리눅스 사용자에 대한 작업을 하려면 root 권한이 필요하기 때문에

 

root의 비밀번호를 모르실 경우 아래 글을 참고해주세요.

 

[ Linux ] 우분투 비밀번호 분실 시 재설정 방법


 

사용자 생성

 

사용자를 생성하려면 아래 명령어를 사용합니다.

 

useradd [option] user-name

 

옵션값은 선택적인 사항이므로 아무것도 입력하지 않을 경우 기본값으로 적용됩니다.

 

root@symxsym-VirtualBox:~# useradd test_user1
root@symxsym-VirtualBox:~# tail -1 /etc/passwd
test_user1:x:1001:1001::/home/test_user1:/bin/sh
root@symxsym-VirtualBox:~# tail -1 /etc/shadow
test_user1:!:19385:0:99999:7:::

 

사용자를 생성하면 /etc/passwd와 /etc/shadow 가장 아랫줄에 사용자 정보가 추가되므로

 

tail 명령어를 사용해 마지막 한 줄을 출력해서 사용자 정보를 확인할 수 있습니다.

 

아직 비밀번호를 설정하지 않아서 /etc/shadow 파일의 내용 중 두번째 필드가 ! 인것을 확인할 수 있습니다.

 

비밀번호를 설정해 봅시다.

 

root@symxsym-VirtualBox:~# passwd test_user1
새 암호:
새 암호 재입력:
passwd: 암호를 성공적으로 업데이트했습니다
root@symxsym-VirtualBox:~# tail -1 /etc/shadow
test_user1:$y$j9T$hjPLGw0Q0gGbGW.TcqFjb/$WlLqmrVA6whC.uWsbjVrMMCx1GdktW.YhimmITM7tN/:19385:0:99999:7:::

 

비밀번호 설정 후 다시 /etc/shadow 파일의 내용을 살펴보면 두번째 필드에 값이 생성된것이 보입니다.


useradd 명령어 옵션

 

-u UID UID 지정
-U 사용자 생성 시 사용자 이름과 같은 그룹 생성
-g GID 기본 그룹 지정
-G 보조 그룹 지정
-c 주석 GECOS 지정 (주석)
-d 디렉터리 홈 디렉터리 지정
-s 셸 기본 셸 지정
-o UID 중복 허용
-p 비밀번호 /etc/passwd 두 번째 필드에 비밀번호 저장됨. 현재는 안씀
-r UID가 199~999 사이인 시스템 계정 만들 때 사용
-m 홈 디렉터리가 존재하지 않을 경우 생성
-e 만기일 /etc/shadow 파일의 expire 필드 값 지정
-f 기간 /etc/shadow 파일의 inactive 필드 값 지정

예제를 보면서 옵션이 어떻게 적용된지 살펴봅시다.

 

root@symxsym-VirtualBox:~# useradd -u 5000 -g 10 -m -d /home/test -s /bin/sh testtest
root@symxsym-VirtualBox:~# tail -1 /etc/passwd
testtest:x:5000:10::/home/test:/bin/sh

 

testtest라는 이름의 사용자를 생성하면서 다양한 옵션을 사용했습니다.

 

우선 -u 5000 으로 인해 UID가 5000으로 설정되었습니다.

 

-g 10 옵션으로 인해 기본 그룹의 GID가 10으로 설정되었습니다.

 

-m 옵션을 사용해 홈 디렉터리가 없을 경우 생성되도록하고 -d 경로 옵션으로 홈 디렉터리의 경로가 지정됩니다.

 

-s 옵션으로 인해 기본 셸이 /bin/sh로 지정됩니다.


사용자 정보 수정

 

사용자의 정보를 수정할 때는 usermod 명령어를 사용합니다.

 

usermod [option] user-name

 

usermod 명령어의 옵션입니다.

 

-u UID UID 변경
-g GID 기본 그룹 변경
-G 보조 그룹 변경 (기존의 보조 그룹 삭제됨)
-a 보조그룹을 2개 이상 지정하려할 때
-G 옵션과 같이 사용해 보조 그룹을 추가
-c 주석 GECOS 변경 (주석)
-d 디렉터리 홈 디렉터리 변경
-m -d 옵션과 같이 사용, 홈 디렉터리를 이동
-s 셸 기본 셸 변경
-o UID를 변경할 때 UID 중복 허용
-p 비밀번호 /etc/passwd 두 번째 필드 비밀번호 변경. 현재는 안씀
-e 만기일 /etc/shadow 파일의 expire 필드 값 변경
-f 기간 /etc/shadow 파일의 inactive 필드 값 변경
-L 사용자를 잠금 상태로 변경
-U 사용자의 잠금 상태 해제

 

예제를 보면서 옵션이 어떻게 사용되었나 살펴봅시다.

 

root@symxsym-VirtualBox:~# id test_user1
uid=1001(test_user1) gid=1001(test_user1) 그룹들=1001(test_user1)
root@symxsym-VirtualBox:~# usermod -G 1000 test_user1
root@symxsym-VirtualBox:~# id test_user1
uid=1001(test_user1) gid=1001(test_user1) 그룹들=1001(test_user1),1000(symxsym)
root@symxsym-VirtualBox:~# usermod -G 10 test_user1
root@symxsym-VirtualBox:~# id test_user1
uid=1001(test_user1) gid=1001(test_user1) 그룹들=1001(test_user1),10(uucp)
root@symxsym-VirtualBox:~# usermod -aG 1000 test_user1
root@symxsym-VirtualBox:~# id test_user1
uid=1001(test_user1) gid=1001(test_user1) 그룹들=1001(test_user1),10(uucp),1000(symxsym)

 

-G 옵션을 사용해 보조 그룹을 변경할 수 있지만 2개 이상의 보조 그룹을 지정하기위해서는

 

-aG 옵션을 사용해 GID를 입력해줘야합니다.

 

그렇지 않으면 예제처럼 앞에서 지정한 보조 그룹의 정보가 사라지는 현상이 발생합니다.


사용자 삭제

 

사용자 정보를 삭제하려면 userdel 명령어를 사용합니다.

 

userdel [option] user-name

 

일반적으로 사용자를 삭제할 때는 -r 옵션을 같이 사용해줍니다.

 

그렇지 않으면 홈 디렉터리가 삭제되지 않고 남아있기 때문에 UID가 같은 새로운 사용자가 생성될 경우

 

이전 사용자의 홈 디렉터리에 접근이 가능해져버리는 보안상의 문제가 발생하기 때문입니다.

 

root@symxsym-VirtualBox:~# ls -l /home
합계 8
drwxr-x--- 16 symxsym  symxsym 4096  1월 17 12:21 symxsym
drwxr-x---  2 testtest uucp    4096  1월 29 01:53 test
root@symxsym-VirtualBox:~# userdel -r testtest
userdel: testtest mail spool (/var/mail/testtest) not found
root@symxsym-VirtualBox:~# ls -l /home/
합계 4
drwxr-x--- 16 symxsym symxsym 4096  1월 17 12:21 symxsym

 

/home 경로에 있는 파일 리스트를 출력해보면 사용자 testtest의 홈 디렉터리인 test  디렉터리가 존재합니다.

 

userdel -r testtest 명령어를 실행하고 다시 /home 경로에서 ls를 실행해보면

 

testtest 사용자가 삭제되면서 홈 디렉터리도 같이 삭제된 것을 볼 수 있습니다.


여기까지 리눅스 사용자 생성, 정보 수정, 삭제에 대해서 알아보았습니다.

 

다음시간에는 그룹 생성, 정보 수정, 삭제를 공부해보도록 하겠습니다.

 

앞으로 꾸준하게 리눅스 관련 글을 업로드할 예정이오니 많은 도움이 되었으면 합니다.

 

감사합니다.

반응형