리눅스 OS 관련 포스팅 목록
2020.07.11 - [Linux/OS] - 리눅스 우분투 파일 소유자 변경(ubuntu, chown, user)
2020.07.10 - [Linux/OS] - 리눅스 우분투 파일 내용 검색(ubuntu, grep)
2020.07.10 - [Linux/OS] - 리눅스 우분투 특정 파일 검색(Ubuntu, Find)
2020.07.09 - [Linux/OS] - Linux tar 압축 풀기(Ubuntu, tar.gz)
2020.06.30 - [Linux/OS] - Linux Ubuntu 권한 설정(chmod)
우분투 환경의 신규 사용자 추가 및 삭제 관리
안녕하세요.
오늘은 리눅스 우분투 환경에서 신규 사용자 추가 및 삭제와 같은 관리 기능에 대해 알아보도록 하겠습니다. 사용자라 함은 곧 무언가 시스템의 리소스를 사용하려는 유저를 의미합니다.
리눅스는 정말 무궁무진한 기능들을 제공하고 있고 리소스를 사용할 수 있도록 제공하고 있습니다. 하지만 최초 1회 운영체제 설치 시 설정하는 기본 유저 외에 우리가 새로운 사용자를 추가하고 싶을 때가 있습니다.
예를 들어 나는 아침 9시부터 점심시간까지 컴퓨터를 이용하지만 다음 친구가 바통을 이어받아 저녁까지 사용하는 그러한 공유 환경이라면 나와 친구가 같은 사용자 계정을 쓰면 여러모로 불편하겠죠?
과제 파일을 생성했으나... 친구가 이 파일을 모르고 지우거나 등의 문제가 생길 수 있습니다. 또한 리눅스 운영체제는 서버로 많이 사용합니다 서버로 사용한다는 의미는 웹서버, 클라우드 서버, VPN 서버 등 클라이언트들의 요청을 응답해줄 역할을 한다는 의미입니다.
그러나 우리가 흔히 개인 용도로 쓰는 것은 리눅스의 데스크톱 버전과 같습니다. 따라서 톰캣 웹서버 같은 프로그램이 전용으로 사용하는 리눅스 사용자 계정을 생성해 관리할 수 있습니다. 왜냐하면 리눅스는 사용자 계정이 사용하는 고유의 홈 디렉토리가 존재하기 때문입니다.
자 그러면 이제 리눅스의 사용자 계정 관리 기능을 알아보기에 앞서 기본적으로 제공하고 있는 사용자 관리 프로그램은 adduser, useradd 등이 있습니다. 이 2개의 기능 차이점은 adduser는 신규로 생성되는 사용자의 홈 디렉토리를 자동으로 생성해주는 반면 useradd는 관리자가 직접 할당해야 하는 불편함이 있습니다.
때에 따라 사용하면 되겠지만 오늘 포스팅에서는 adduser에 대해 알아보도록 하겠습니다.
제일 먼저 현재 사용자 계정 목록을 확인하는 방법입니다.
우분투 사용자 목록 확인
$ cut -f1 -d: /etc/passwd
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
saned
usbmux
ahope
sshd
라인 설명
1: cut 명령을 통해 "/etc/passwd" 파일을 읽습니다. passwd 파일은 사용자 이름, 소속 그룹, 홈 디렉토리, 패스워드 등의 정보를 가지고 있는 시스템 파일입니다. 따라서 관리자만 수정이 가능합니다. 각 인자는 아래와 같습니다.
cut -f1: 여러 필드 값들 중 1번 필드의 값을 출력하겠다는 의미. 본 예제에서는 passwd 파일을 열었을 때 첫 번째 필드에 사용자명이 있기 때문에 위와 같이 "f1"을 사용하였습니다.
'-d:' : 문자열에서 필드를 나눌 특정 문자를 의미. 예를 들어 "abc:abc:ccc"라는 문자가 있는데 ':' 문자를 기준으로 나눠 "abc", "abc", "ccc" 3개의 필드 값을 만들겠다는 의미입니다. 본 예제에서는 passwd 파일을 열면 ":" 문자로 필드가 나눠 지기 때문에 위와 같이 옵션을 "-d"로 설정하였습니다.
/etc/passwd: cut 명령으로 자를 소스 문자열 파일 경로.
아래는 passwd 파일을 열었을 때 원래의 텍스트입니다.
신규 사용자 추가
$ sudo adduser testuser
[sudo] password for ahope:
Adding user `testuser' ...
Adding new group `testuser' (1001) ...
Adding new user `testuser' (1001) with group `testuser' ...
Creating home directory `/home/testuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: test1234
Retype new UNIX password: test1234
passwd: password updated successfully
Changing the user information for testuser
Enter the new value, or press ENTER for the default
Full Name []: test
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
라인 설명
1: 신규 사용자 추가는 시스템에 영향을 주는 일이기 때문에 sudo와 같은 관리자 명령으로 수행해야 합니다. 따라서 sudo adduser 명령을 사용하고 인자로 생성할 사용자명을 입력합니다. 본 예제에서는 "testuser"로 설정하였습니다.
2: 관리자 비밀번호를 입력합니다.
8: 신규 사용자 비밀번호를 입력합니다. 본 예제에서는 "tset1234"로 설정하였습니다.
9: 신규 비밀번호를 한번 더 입력합니다.
13: 사용자의 추가 정보를 입력합니다. 본 예제에서는 "Full Name" 영역만 설정하고 나머지는 엔터를 입력하여 Skip 하였습니다.
18: 마지막으로 위 입력한 정보가 맞는지 확인 입력창에 'Y'를 입력하고 엔터를 눌러 사용자 생성을 완료합니다.
이후 생성된 사용자 목록 확인을 위해 다시 cut명령을 사용합니다. 그러면 아래와 같이 testuser가 추가된 걸 알 수 있습니다.
기존 사용자 삭제
$ sudo deluser testuser
Removing user `testuser' ...
Warning: group `testuser' has no more members.
Done.
라인 설명
1: deluser 명령을 통해 사용자를 삭제합니다. 인자로는 삭제할 사용자명을 입력합니다. 본 삭제 예제 수행 이전에 신규 사용자 추가 과정에서 sudo 관리자 비밀번호를 한번 입력했기 때문에 재입력창이 나타나지 않았습니다. 만약 관리자 비밀번호 입력창이 나타난다면 입력해주세요.
마무리
오늘은 리눅스 운영체제에 신규 사용자를 추가하는 방법에 대해 알아보았습니다. useradd 명령과 달리 adduser는 홈디렉토리도 동시에 생성해주기 때문에 편리한 부분이 있었습니다. 또한 사용자 추가 삭제 과정은 시스템에 영향을 주기 때문에 반드시 관리자 권한으로 수행해야 합니다.
다음 포스팅에서는 쉘 명령을 통해 사용자를 전환하는 방법에 대해 알아보도록 하겠습니다.
관련 글
리눅스 OS 관련 포스팅 목록
2020.07.11 - [Linux/OS] - 리눅스 우분투 파일 소유자 변경(ubuntu, chown, user)
2020.07.10 - [Linux/OS] - 리눅스 우분투 파일 내용 검색(ubuntu, grep)
2020.07.10 - [Linux/OS] - 리눅스 우분투 특정 파일 검색(Ubuntu, Find)