소개
이 실습에서는 Linux 시스템의 기본적인 사용자 계정 관리 작업을 단계별로 안내합니다. 사용자 계정을 생성, 수정, 삭제하는 방법과 비밀번호를 설정하고 변경하는 방법을 배우게 됩니다. 이는 Linux 시스템 관리를 위한 가장 기초적이고 필수적인 기술입니다. Linux 가 처음이더라도 걱정하지 마세요. 모든 과정을 차근차근 설명해 드립니다!
이 실습에서는 Linux 시스템의 기본적인 사용자 계정 관리 작업을 단계별로 안내합니다. 사용자 계정을 생성, 수정, 삭제하는 방법과 비밀번호를 설정하고 변경하는 방법을 배우게 됩니다. 이는 Linux 시스템 관리를 위한 가장 기초적이고 필수적인 기술입니다. Linux 가 처음이더라도 걱정하지 마세요. 모든 과정을 차근차근 설명해 드립니다!
먼저 "joker"라는 이름의 새로운 사용자 계정을 생성해 보겠습니다.
sudo useradd joker
명령어의 의미를 살펴보겠습니다.
sudo는 일시적으로 슈퍼유저 (관리자) 권한을 부여하는 명령어입니다. 새로운 사용자를 생성하려면 이러한 높은 수준의 권한이 필요하기 때문에 사용합니다.useradd는 새로운 사용자를 생성하는 명령어입니다.joker는 우리가 생성할 사용자 이름입니다.참고: sudo 없이 이 명령어를 실행하려고 하면 "permission denied(권한 거부)" 오류가 발생합니다. 일반 사용자는 새로운 사용자 계정을 생성할 수 없으며, 이는 시스템 관리자에게만 허용된 작업이기 때문입니다.
이를 통해 슈퍼유저와 일반 사용자의 차이를 알 수 있습니다. 일반 사용자는 직접 계정을 생성할 수 없지만, sudo를 사용해 일시적으로 권한을 격상시켜 관리자 작업을 수행할 수 있습니다.
/etc/passwd 파일을 확인해 보겠습니다.sudo grep -w 'joker' /etc/passwd
/etc/passwd 파일은 사용자 계정의 전화번호부와 같습니다. 각 줄은 하나의 사용자 계정을 나타내며, 정보들은 콜론 (:) 으로 구분됩니다.
다음과 유사한 출력 결과가 나타나야 합니다.
joker:x:5001:5001::/home/joker:/bin/sh
이 줄의 의미는 다음과 같습니다.
/home/joker (아직 실제로 생성되지는 않았습니다)/bin/sh이번에는 "bob"이라는 이름의 또 다른 사용자를 생성하면서 홈 디렉터리도 함께 만들어 보겠습니다.
sudo useradd -m bob
-m 옵션은 사용자 생성 시 홈 디렉터리를 함께 만들도록 시스템에 지시합니다. 홈 디렉터리는 사용자가 자신의 파일과 설정을 저장할 수 있는 개인 폴더와 같습니다.
sudo ls -ld /home/bob
다음과 유사한 출력 결과가 나타나야 합니다.
drwxr-x--- 2 bob bob 57 Jan 19 13:33 /home/bob
출력 결과의 의미는 다음과 같습니다.
d는 디렉터리임을 의미합니다.rwxr-x---는 이 디렉터리에 대해 누가 읽고, 쓰고, 실행할 수 있는지를 보여줍니다.bob은 이 디렉터리의 소유 사용자와 소유 그룹이 모두 bob 임을 나타냅니다.57은 디렉터리의 크기 (바이트 단위) 입니다.Jan 19 13:33은 디렉터리가 생성된 시간입니다./home/bob은 디렉터리의 위치입니다.이제 생성한 사용자들의 비밀번호를 설정해야 합니다. "joker"의 비밀번호를 설정해 보겠습니다.
sudo passwd joker
중요: 비밀번호를 입력할 때 화면에는 아무런 글자도 표시되지 않습니다. 이는 다른 사람이 입력하는 비밀번호를 볼 수 없도록 하는 Linux 의 보안 기능입니다. 실수로 잘못 입력했다면 다시 시도하면 됩니다.
중요: 설정한 비밀번호를 꼭 기억하세요! 실습 후반부에서 다시 사용하게 됩니다.
참고: 실제 환경에서는 항상 강력하고 고유한 비밀번호를 사용해야 합니다!
내부적으로 Linux 는 암호화된 비밀번호를 /etc/shadow라는 보안 파일에 저장합니다. 이는 누구나 볼 수 있는 /etc/passwd 파일에 저장하는 것보다 훨씬 안전합니다.
Linux 에서는 사용자 계정을 생성한 후에도 다양한 설정을 변경할 수 있습니다. 예시로 joker 의 홈 디렉터리 경로를 변경해 보겠습니다.
sudo usermod -d /home/wayne joker
명령어의 역할은 다음과 같습니다.
usermod는 사용자 계정 설정을 수정하는 명령어입니다.-d /home/wayne은 새로운 홈 디렉터리 경로를 지정합니다.joker는 수정할 대상 사용자입니다.sudo grep -w 'joker' /etc/passwd
-w 옵션은 단어 전체가 일치하는 항목을 찾는 데 사용되며, grep은 파일 내에서 특정 단어를 검색하는 명령어입니다. 출력 결과에서 joker 의 홈 디렉터리가 업데이트된 것을 확인할 수 있습니다.
수정할 수 있는 또 다른 중요한 설정은 사용자의 기본 쉘입니다. 쉘은 터미널에 입력하는 명령어를 해석하고 실행하는 프로그램입니다.
기본적으로 'joker' 사용자는 /bin/sh를 쉘로 사용하고 있습니다. sh(Bourne Shell) 는 대부분의 유닉스 계열 시스템에 존재하는 기본적인 쉘이지만, bash(Bourne Again Shell) 는 더 많은 기능을 제공하며 일반적으로 더 사용자 친화적입니다.
joker 의 쉘을 bash 로 변경하면 다음과 같은 장점이 있습니다.
변경 방법은 다음과 같습니다.
sudo usermod -s /bin/bash joker
sudo grep -w 'joker' /etc/passwd
joker 정보의 마지막 부분에 /bin/bash가 표시되어야 합니다. 이제 bash 가 joker 의 기본 쉘이 되었습니다.
이 변경 이후, joker 는 로그인하거나 새로운 터미널 세션을 열 때마다 더 풍부한 기능을 갖춘 bash 환경을 사용할 수 있게 됩니다.
Linux 에서는 사용자를 조직화하고 권한을 관리하기 위해 그룹을 사용합니다. 특히 sudo 그룹은 사용자에게 관리자 권한을 부여하는 중요한 그룹입니다. 예시로 joker 를 sudo 그룹에 추가해 보겠습니다.
왜 사용자를 sudo 그룹에 추가할까요?
"항상 'sudo' 명령어를 사용할 수 있는데 왜 굳이 그룹에 추가하나요?"라고 궁금할 수 있습니다. 이유는 다음과 같습니다.
실제 환경에서는 보통 다음과 같은 경우에 사용자를 sudo 그룹에 추가합니다.
사용자를 sudo 그룹에 추가하는 것은 시스템에 대한 강력한 권한을 부여하는 것이므로, 반드시 필요할 때만 신중하게 수행해야 합니다.
이제 joker 를 sudo 그룹에 추가해 보겠습니다.
sudo usermod -aG sudo joker
명령어의 의미는 다음과 같습니다.
usermod는 사용자 계정을 수정하는 명령어입니다.-aG는 "append to Group"의 약자로, 기존 그룹에서 제거하지 않고 새로운 그룹에 추가한다는 의미입니다.sudo는 추가할 대상 그룹입니다.joker는 수정할 대상 사용자입니다.groups joker
joker 의 그룹 목록에 sudo가 포함되어 있어야 합니다.
su - joker
이 명령어는 현재 사용자 (labex) 에서 joker 사용자로 전환합니다. joker 의 비밀번호를 입력하라는 메시지가 나타나면, 이전에 설정한 비밀번호 (password123) 를 입력하세요. 보안상 입력하는 글자는 화면에 보이지 않습니다.
sudo cat /etc/shadow
메시지가 나타나면 joker 의 비밀번호를 다시 입력하세요. 평소에는 root 만 접근할 수 있는 /etc/shadow 파일의 내용이 보인다면, joker 가 성공적으로 sudo 권한을 갖게 된 것입니다.
exit를 입력하여 원래 사용자 계정 (labex) 으로 돌아옵니다.참고: 실제 운영 환경에서는 sudo 그룹에 누구를 추가할지 매우 신중해야 합니다. 큰 권한에는 큰 책임이 따릅니다!
때로는 사용자 계정을 삭제하지 않고 일시적으로 비활성화해야 할 때가 있습니다.
sudo passwd -l joker
-l 옵션은 비밀번호를 잠급니다 (lock).
su - joker
비밀번호를 묻는 메시지가 나타나면 이전에 설정한 비밀번호 ("password123") 를 입력해 보세요.
"authentication failure(인증 실패)" 메시지가 나타나야 합니다. 이는 계정이 성공적으로 잠겼음을 의미합니다.
sudo passwd -u joker
-u 옵션은 비밀번호 잠금을 해제합니다 (unlock).
su - joker
비밀번호를 입력하면 이번에는 성공적으로 joker 사용자로 전환될 것입니다.
다음 단계로 넘어가기 전에 exit를 입력하여 원래 사용자 계정으로 돌아오세요.
마지막으로 사용자를 삭제하는 방법을 배워보겠습니다. 이전에 생성한 "bob" 사용자를 삭제하겠습니다.
sudo userdel -r bob
userdel은 사용자 계정을 삭제하는 명령어입니다. -r 옵션은 사용자의 홈 디렉터리와 메일 스풀까지 모두 제거합니다.
sudo grep -w 'bob' /etc/passwd
sudo ls -ld /home/bob
두 명령어 모두 결과가 나오지 않아야 합니다. 이는 사용자와 홈 디렉터리가 성공적으로 제거되었음을 의미합니다.
축하합니다! Linux 사용자 계정 관리 실습을 마쳤습니다. 이번 실습을 통해 다음 내용들을 학습했습니다.
또한 /etc/passwd 파일, 홈 디렉터리, 쉘, 사용자 그룹과 같은 중요한 Linux 개념들도 접해 보았습니다. 이러한 기술들은 Linux 시스템 관리를 위한 기초가 됩니다. 실제 환경에서 사용자 계정을 관리할 때는 항상 조직의 보안 정책을 준수해야 함을 잊지 마세요.