사용자 및 그룹 생성, 접근 권한 설정, 프로세스 관리
1. 작업 설정
자, 이전 강의에서 배운 모든 지식을 적용할 수 있는 집중적인 실습 시간이 다가왔어. 우리는 사용자를 생성하고, 그룹에 추가하고, 고유한 접근 권한을 설정하고, 시스템에서 프로세스를 관리하게 될 거야. 만약 "그래서 이걸 왜 해야 하지?"라고 생각한다면, 너 자신이 시스템 관리자 또는 DevOps 엔지니어라고 상상해봐. 그리고 팀의 공동 작업을 위해 서버를 설정해야 한다고 말이야. 아니면 단순히 컴퓨터를 혼란으로부터 구하려는 거겠지! 현실 세계에서는 이런 상황이 꽤 자주 발생해.
너의 목표는 다음 사용자와 프로세스를 위해 시스템을 설정하는 거야:
- 두 명의 사용자
user1
과user2
를 생성하기. 이들은developers
그룹에서 함께 작업해야 해. - 파일 (예:
project.txt
)을 설정해서developers
그룹의 멤버만 편집할 수 있도록 하기. - 몇 가지 프로세스 (예:
sleep
명령을 사용해서) 생성하고, 필요하면 종료하는 방법 배우기. - 활성 프로세스를 살펴보고, 어느 프로세스가 가장 많은 자원을 소비하는지 확인하기.
계획처럼 들려? 하나씩 단계적으로 실현해보자.
2. 단계 1: 사용자 생성하기
1. 사용자 생성
우선 두 명의 사용자를 생성해 보자:
sudo adduser user1
sudo adduser user2
이 명령을 실행하면 시스템이 암호를 설정하고 각 사용자에 대한 설명을 입력하도록 요청할 거야. 여기선 추가 데이터를 입력하지 않고 Enter만 눌러도 돼.
각 사용자마다 /home
에 홈 디렉터리가 자동으로 생성돼. 이를 확인할 수 있어:
ls /home
로컬에서 작업 중이라면 관리자 권한을 얻기 위해 sudo
를 사용하는 것을 잊지 마. 그리고 WSL에서 작업 중이라면 사용자와 관련된 몇 가지 특이사항이 있을 수 있어. 예를 들어, WSL에서는 기본 사용자가 이미 시스템 관리자야.
3. 단계 2: 그룹 만들기 및 사용자 추가
1. 그룹 생성하기
사용자들이 프로젝트를 함께 작업할 수 있도록 하려면 그들을 그룹에 추가해야 해. 먼저 developers
그룹을 만들어보자:
sudo groupadd developers
2. 사용자들을 그룹에 추가하기
이제 user1
과 user2
를 developers
그룹에 추가하자. 이 작업을 위해 usermod
명령어를 사용해봐:
sudo usermod -aG developers user1
sudo usermod -aG developers user2
3. 그룹 멤버십 확인하기
사용자들이 그룹에 올바르게 추가되었는지 확인하려면 다음을 실행해봐:
groups user1
groups user2
user1
과 user2
가 developers
그룹의 멤버라는 것을 확인할 수 있을 거야.
4. 단계 3: 파일과 접근 권한 작업
1. 프로젝트 파일 생성
사용자들의 홈 디렉토리(예: user1
)에 project.txt
라는 파일을 생성하자:
sudo -u user1 touch /home/user1/project.txt
sudo -u
명령어는 다른 사용자 이름으로 작업을 실행할 수 있게 해줘.
2. 파일 소유자와 그룹 변경하기
소유자를 user1
로 설정하고, 그룹을 developers
로 설정해서 두 사용자 모두 같은 접근 권한을 갖게 해보자:
sudo chown user1:developers /home/user1/project.txt
3. 접근 권한 설정하기
이제 파일 접근 권한을 변경해보자. chmod
명령어를 사용해:
sudo chmod 660 /home/user1/project.txt
무엇을 했는지 볼까? user1
소유자와 developers
그룹에 읽기와 쓰기 권한 rw-
를 부여하고, 다른 모든 사람들은 아무 접근 권한도 없도록 했어.
ls
명령어를 사용해서 접근 권한을 확인할 수 있어:
ls -l /home/user1/project.txt
예상 결과:
-rw-rw---- 1 user1 developers 0 날짜 시간 /home/user1/project.txt
5. 단계 4: 프로세스 실행
1. 프로세스 실행하기
실험을 위해 sleep
명령어로 몇 개의 "장시간 실행" 프로세스를 만들어보자:
sleep 300 &
sleep 400 &
sleep 500 &
각 sleep
명령은 &
기호 덕분에 백그라운드에서 실행됨.
프로세스 목록을 확인하려면 ps
명령을 사용해봐:
ps
ps aux
를 사용하면 더 많은 정보를 확인할 수 있음:
ps aux | grep sleep
6. 5단계: 프로세스 종료
1. PID로 프로세스 종료
하나의 프로세스(PID)를 찾은 다음 종료해보자 (예: sleep
):
kill PID
여기서 PID
는 프로세스 식별자이고, ps
명령어로 확인할 수 있다.
2. 이름으로 프로세스 종료
모든 sleep
프로세스를 종료하려면 killall
명령어를 사용하면 돼:
killall sleep
3. pkill
사용
만약 정확한 프로세스 이름을 기억하지 못한다면, pkill
은 이름 일부로 프로세스를 종료하는 데 도움을 줄 거야:
pkill slee
7. 6단계: 프로세스 모니터링
시스템 부하를 추적하려면 다음을 사용해봐:
top
— 실시간 작업용:top
여기에서 CPU, 메모리 부하 및 활성 프로세스를 확인할 수 있어.
k
키 조합을 사용해서 인터페이스 내부에서 프로세스를 종료할 수도 있어.htop
— 더 편리한 인터페이스 (설치되어 있다면):
나가려면htop
F10
를 눌러.
8. 체크리스트
모든 단계를 완료한 후 다음을 확인해야 해:
- 두 명의 사용자
user1
와user2
가 생성되었어. developers
그룹이 생성되고 설정되었으며, 두 명의 사용자가 그룹에 추가되었어.project.txt
파일이 생성되었고,developers
그룹만 접근 가능한 상태야.kill
,killall
,pkill
명령어를 통해 몇 가지 프로세스를 생성하고 종료했어.ps
,top
,htop
을 사용하여 프로세스 목록을 성공적으로 확인했어.
모든 작업이 완료되었다면 — 축하해! Linux 시스템에서 사용자, 그룹, 접근 권한 및 프로세스 관리를 마스터한 거야. 콘솔의 힘이 너와 함께 하길!
GO TO FULL VERSION