소개
LabEx Corporation 에서 보내는 첫 주의 마지막 날에 오신 것을 환영합니다! 첫 정찰 임무부터 요새의 수호자가 되기까지 놀라운 여정을 거쳤습니다. 이제 회사는 여러분을 최고의 신뢰가 필요한 직책인 Project Phoenix 의 열쇠를 지키는 사람으로 승진시킵니다.
CTO 가 여러분을 따로 불러 중요한 브리핑을 전합니다. "Project Phoenix 가 최종 단계에 들어섰습니다. 시스템에 접근할 수 있는 사람을 완벽하게 통제해야 합니다. 최종 완성을 위한 개발을 이끌 새로운 선임 개발자 Brenda Smith 를 영입합니다. 안타깝게도 이전 팀의 계약직 직원인 John Doe 가 여러분이 앞서 조사했던 보안 사고 당시 승인되지 않은 접근 권한을 가지고 있었다는 사실도 발견했습니다. 그의 접근 권한은 즉시 취소해야 합니다."
이제 열쇠를 지키는 사람으로서 여러분은 Project Phoenix 에 접근하는 관문을 관리합니다. 여러분의 사용자 관리 결정에 따라 TechNova 의 가장 중요한 프로젝트에 기여할 수 있는 사람과 보안상의 이유로 차단해야 하는 사람이 결정됩니다.
Linux 사용자 관리 능력을 완벽하게 보여 줄 순간입니다. Project Phoenix 의 미래는 필요한 사람에게 접근 권한을 부여하고 시스템을 손상시킬 수 있는 사람에게는 권한을 거부하는 여러분의 능력에 달려 있습니다. 이 임무를 완수해 봅시다!
새 개발자를 시스템에 등록하기
첫 번째 작업은 Project Phoenix 의 최종 개발 단계를 이끌 선임 개발자 Brenda Smith 의 사용자 계정을 만드는 것입니다. TechNova 의 정책에 따라 사용자 이름은 first_initial.last_name 형식을 따라야 합니다.
작업
- Brenda Smith 의 새 사용자 계정을 생성합니다.
요구 사항
- 사용자 이름은
b.smith여야 합니다. useradd명령을 사용해 시스템에 새 사용자를 추가합니다.sudo권한이 필요합니다.
힌트
- 이 과제에서는 대화형
adduser도우미가 아니라 표준useradd명령을 사용해야 합니다. - 관리자 권한으로 명령을 실행하려면
sudo를 사용해야 합니다.
예시
새 사용자 계정을 성공적으로 생성하면 시스템 사용자 데이터베이스에서 사용자 항목을 확인할 수 있습니다.
$ grep "b.smith" /etc/passwd
b.smith:x:5002:5004::/home/b.smith:/bin/sh
사용자 계정에는 시스템이 사용자 ID 와 그룹 ID 를 자동으로 할당합니다. 다음 명령으로 계정이 존재하는지 확인하고 세부 정보를 확인할 수 있습니다.
$ id b.smith
uid=5002(b.smith) gid=5004(b.smith) groups=5004(b.smith)
새 사용자를 위한 전용 홈 디렉터리 만들기
사용자는 만들었지만 중요한 단계를 빠뜨렸습니다! Project Phoenix 의 최종 단계를 이끄는 선임 개발자 Brenda 에게는 중요한 프로젝트 파일과 개발 도구를 저장할 안전한 작업 공간이 필요합니다. Brenda 의 홈 디렉터리가 생성되도록 해야 합니다.
작업
- 사용자
b.smith의 홈 디렉터리를/home/b.smith에 생성합니다.
요구 사항
- 사용자
b.smith의 홈 디렉터리를 생성해야 합니다. useradd명령의 옵션을 사용해 홈 디렉터리를 자동으로 생성해야 합니다. 홈 디렉터리 없이 이미 사용자를 만들었다면 먼저 사용자를 삭제한 후 올바르게 다시 만들어야 할 수 있습니다.-m또는--create-home을 사용할 수 있으며, 플래그는 사용자 이름 앞이나 뒤에 올 수 있습니다.
힌트
- 사용자를 삭제하려면
userdel명령을 사용할 수 있습니다. 예:sudo userdel b.smith useradd명령에는 사용자의 홈 디렉터리를 생성하는 전용 플래그가 있습니다.man useradd페이지에서-m또는--create-home과 같은 옵션을 확인합니다.
예시
홈 디렉터리와 함께 사용자를 생성하면 홈 디렉터리 목록에서 새 디렉터리를 확인할 수 있습니다.
$ ls -la /home/
drwxr-xr-x 1 root root 47 Sep 3 16:32 .
drwxr-xr-x 1 root root 62 Sep 3 16:31 ..
-rw-r--r-- 1 root root 58 Jul 18 2024 .zshrc
drwxr-x--- 2 b.smith b.smith 57 Sep 3 16:32 b.smith
drwxr-x--- 2 j.doe j.doe 57 Sep 3 16:31 j.doe
drwxr-x--- 1 labex labex 4096 Sep 3 16:35 labex
홈 디렉터리는 제한된 권한으로 사용자에게 소유권이 부여됩니다. 즉, 소유자와 그룹만 접근할 수 있습니다. 내용을 확인하려면 적절한 권한이 필요하므로 sudo를 사용해야 할 수 있습니다.
$ sudo ls -la /home/b.smith/
drwxr-x--- 2 b.smith b.smith 57 Sep 3 16:32 .
drwxr-xr-x 1 root root 47 Sep 3 16:32 ..
-rw-r--r-- 1 b.smith b.smith 220 Sep 3 16:32 .bash_logout
-rw-r--r-- 1 b.smith b.smith 3771 Sep 3 16:32 .bashrc
-rw-r--r-- 1 b.smith b.smith 655 Sep 3 16:32 .profile
새 사용자의 초기 비밀번호 설정하기
사용자 계정 b.smith는 생성되었지만 현재 잠겨 있습니다. Brenda 가 비밀번호 없이 Project Phoenix 시스템에 접근해 업무를 시작할 수는 없습니다. 다음 작업은 Brenda 의 계정에 안전한 초기 비밀번호를 설정하는 것입니다.
작업
- 사용자
b.smith의 비밀번호를 설정합니다.
요구 사항
- 사용자의 비밀번호를 변경할 때 사용하는 표준 Linux 명령을 사용합니다.
- 새 비밀번호를 입력하고 확인하라는 메시지가 표시됩니다. 예를 들어
password123과 같은 간단한 비밀번호를 사용할 수 있습니다.
힌트
- 비밀번호를 설정하거나 변경하는 명령은
passwd입니다. - 다른 사용자의 비밀번호를 변경하므로
sudo권한이 필요합니다. 구문은sudo passwd <username>입니다.
예시
비밀번호를 성공적으로 설정하면 shadow 파일에 사용자 계정의 비밀번호 해시가 저장됩니다. shadow 파일을 확인하여 이를 검증할 수 있습니다. 이 파일을 확인하려면 root 권한이 필요합니다.
$ sudo grep "^b.smith:" /etc/shadow
b.smith:$y$j9T$XbJLH9LJgY518Th4qcd1V0$NrfHOJ2MGm/1OhLGfpfMQkvPasV23Eenhwl9bA0i8O4:20334:0:99999:7:::
새 개발자를 "developers" 그룹에 추가하기
Brenda 가 이번 주 내내 보안 작업을 진행해 온 Project Phoenix 의 파일과 저장소에 접근할 수 있도록 developers 그룹에 추가해야 합니다. 이 그룹은 TechNova 에서 작업하는 동안 계속 사용해 온 그룹이며, 프로젝트에 필요한 특별한 권한을 가지고 있습니다.
작업
- 사용자
b.smith를developers그룹에 추가합니다.
요구 사항
- 사용자
b.smith는developers그룹의 구성원이어야 합니다. - 사용자의 기존 그룹 구성원 자격을 삭제해서는 안 됩니다.
힌트
usermod명령은 사용자 계정을 수정할 때 사용합니다.-a(추가) 와-G(그룹) 플래그를 확인합니다. 두 플래그를 함께 사용하면 기존 그룹을 삭제하지 않고 사용자를 새 그룹에 추가할 수 있습니다.
예시
사용자를 developers 그룹에 성공적으로 추가하면 사용자의 그룹 목록에 그룹 구성원 자격이 표시됩니다.
$ groups b.smith
b.smith : b.smith developers
id 명령으로 더 자세한 그룹 정보를 확인할 수도 있습니다.
$ id b.smith
uid=5002(b.smith) gid=5004(b.smith) groups=5004(b.smith),5003(developers)
이제 사용자는 developers 그룹에 접근 권한이 부여된 파일과 디렉터리에 접근할 수 있습니다. 다음 명령으로 그룹 파일을 확인하여 그룹이 존재하는지 검증할 수 있습니다.
$ grep "^developers:" /etc/group
developers:x:5003:b.smith
구성원 목록에 b.smith가 표시되는지 확인합니다. 이는 기존 그룹 구성원 자격을 유지하면서 사용자가 그룹에 성공적으로 추가되었음을 의미합니다.
퇴사 직원의 계정을 일시적으로 비활성화하기
이제 이번 주의 마지막 작업이자 Project Phoenix 의 보안을 위해 가장 중요한 작업을 수행합니다. John Doe(j.doe) 는 앞서 조사한 보안 사고 당시 승인되지 않은 접근을 했을 가능성이 있는 인물로 확인되었습니다. CTO 는 그의 모든 TechNova 시스템 접근을 즉시 제거하라고 지시했습니다. 그러나 법무팀과 규정 준수팀은 진행 중인 보안 감사를 위해 그의 파일을 보존해야 하므로, 계정을 완전히 삭제하지 않고 잠가야 합니다.
작업
- 사용자 계정
j.doe를 잠가 로그인을 차단합니다.
요구 사항
- 사용자 계정
j.doe가 잠겨 있어야 합니다. - 사용자 또는 사용자의 홈 디렉터리를 삭제하지 마세요.
힌트
-L(잠금) 옵션과 함께usermod명령을 사용할 수 있습니다.- 또는
passwd명령의-l(잠금) 플래그를 사용해도 같은 결과를 얻을 수 있습니다. sudo를 사용해야 합니다.
예시
shadow 파일을 확인하여 계정이 잠겼는지 검증할 수 있습니다.
$ sudo grep "^j.doe:" /etc/shadow
j.doe:!:20334:0:99999:7:::
비밀번호 필드의 시작 부분에 느낌표 (!) 가 표시됩니다. 이는 계정이 잠겼다는 뜻입니다. 나중에 잠금을 해제할 수 있도록 원래 비밀번호 해시는 ! 뒤에 보존됩니다.
요약
축하합니다, 열쇠를 지키는 사람! LabEx Corporation 에서 보낸 첫 주의 놀라운 여정을 성공적으로 마치고, Project Phoenix 가 최종 완성 단계로 나아갈 수 있도록 안전하게 보호했습니다.
이번 뜻깊은 한 주 동안 여러분은 신입 주니어 시스템 관리자에서 TechNova 의 가장 중요한 시스템을 맡는 신뢰받는 수호자로 성장했습니다. 마지막 과제에서는 다음과 같은 핵심 사용자 관리 명령을 익혔습니다.
- Project Phoenix 의 완성을 이끌 선임 개발자의 새 사용자 계정을 생성했습니다.
- 핵심 팀원을 위한 안전한 홈 디렉터리를 구성했습니다.
passwd를 사용해 강력한 비밀번호 정책을 적용했습니다.- Project Phoenix 리소스에 올바르게 접근할 수 있도록 그룹 구성원 자격을 관리했습니다.
- 감사 기록을 보존하면서 승인되지 않은 접근을 차단해 시스템을 보호했습니다.
초기 정찰부터 디지털 아키텍처, 로그 조사, 보안 구현, 그리고 사용자 관리에 이르기까지 전문 시스템 관리자에게 필요한 전체 역량을 보여 주었습니다. CTO 는 여러분의 정식 직책을 확정했으며, 이미 승진 가능성도 논의하고 있습니다.
Project Phoenix 는 이제 안전하게 관리되고 있으며, 여러분의 헌신과 전문성 덕분에 TechNova 의 미래도 안전합니다!



