[ Linux ] 사용자 생성, 정보 수정, 삭제
안녕하세요. 심심한 코딩쟁이입니다.
오늘은 리눅스 사용자 생성, 정보 수정 그리고 삭제에 대해서 알아보겠습니다.
리눅스와 더욱 더 친해지시길 바라면서 글 시작하겠습니다.
시작하기에 앞서 리눅스 사용자에 대한 작업을 하려면 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 사용자가 삭제되면서 홈 디렉터리도 같이 삭제된 것을 볼 수 있습니다.
여기까지 리눅스 사용자 생성, 정보 수정, 삭제에 대해서 알아보았습니다.
다음시간에는 그룹 생성, 정보 수정, 삭제를 공부해보도록 하겠습니다.
앞으로 꾸준하게 리눅스 관련 글을 업로드할 예정이오니 많은 도움이 되었으면 합니다.
감사합니다.
'os > linux' 카테고리의 다른 글
[ Linux ] 리눅스 사용자 계정 전환 방법 (0) | 2023.02.04 |
---|---|
[ Linux ] 그룹 생성, 정보 수정, 삭제 (0) | 2023.01.31 |
[ Linux ] 리눅스 사용자, 그룹 정보 파일 (2) | 2023.01.28 |
[ Linux ] vi 편집기 사용법 (vimdiff 파일 비교) (0) | 2023.01.20 |
[ Linux ] 리눅스 명령어 (중급) - 리다이렉션, 파이프, tee (0) | 2023.01.19 |