CodeGym /행동 /Docker SELF /사용자 및 그룹 생성, 접근 권한 설정, 프로세스 관리

사용자 및 그룹 생성, 접근 권한 설정, 프로세스 관리

Docker SELF
레벨 2 , 레슨 6
사용 가능

사용자 및 그룹 생성, 접근 권한 설정, 프로세스 관리

1. 작업 설정

자, 이전 강의에서 배운 모든 지식을 적용할 수 있는 집중적인 실습 시간이 다가왔어. 우리는 사용자를 생성하고, 그룹에 추가하고, 고유한 접근 권한을 설정하고, 시스템에서 프로세스를 관리하게 될 거야. 만약 "그래서 이걸 왜 해야 하지?"라고 생각한다면, 너 자신이 시스템 관리자 또는 DevOps 엔지니어라고 상상해봐. 그리고 팀의 공동 작업을 위해 서버를 설정해야 한다고 말이야. 아니면 단순히 컴퓨터를 혼란으로부터 구하려는 거겠지! 현실 세계에서는 이런 상황이 꽤 자주 발생해.

너의 목표는 다음 사용자와 프로세스를 위해 시스템을 설정하는 거야:

  1. 두 명의 사용자 user1user2를 생성하기. 이들은 developers 그룹에서 함께 작업해야 해.
  2. 파일 (예: project.txt)을 설정해서 developers 그룹의 멤버만 편집할 수 있도록 하기.
  3. 몇 가지 프로세스 (예: sleep 명령을 사용해서) 생성하고, 필요하면 종료하는 방법 배우기.
  4. 활성 프로세스를 살펴보고, 어느 프로세스가 가장 많은 자원을 소비하는지 확인하기.

계획처럼 들려? 하나씩 단계적으로 실현해보자.


2. 단계 1: 사용자 생성하기

1. 사용자 생성

우선 두 명의 사용자를 생성해 보자:

sudo adduser user1
sudo adduser user2

이 명령을 실행하면 시스템이 암호를 설정하고 각 사용자에 대한 설명을 입력하도록 요청할 거야. 여기선 추가 데이터를 입력하지 않고 Enter만 눌러도 돼.

각 사용자마다 /home에 홈 디렉터리가 자동으로 생성돼. 이를 확인할 수 있어:

ls /home
참고:

로컬에서 작업 중이라면 관리자 권한을 얻기 위해 sudo를 사용하는 것을 잊지 마. 그리고 WSL에서 작업 중이라면 사용자와 관련된 몇 가지 특이사항이 있을 수 있어. 예를 들어, WSL에서는 기본 사용자가 이미 시스템 관리자야.


3. 단계 2: 그룹 만들기 및 사용자 추가

1. 그룹 생성하기

사용자들이 프로젝트를 함께 작업할 수 있도록 하려면 그들을 그룹에 추가해야 해. 먼저 developers 그룹을 만들어보자:

sudo groupadd developers

2. 사용자들을 그룹에 추가하기

이제 user1user2developers 그룹에 추가하자. 이 작업을 위해 usermod 명령어를 사용해봐:

sudo usermod -aG developers user1
sudo usermod -aG developers user2

3. 그룹 멤버십 확인하기

사용자들이 그룹에 올바르게 추가되었는지 확인하려면 다음을 실행해봐:

groups user1
groups user2

user1user2developers 그룹의 멤버라는 것을 확인할 수 있을 거야.


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단계: 프로세스 모니터링

시스템 부하를 추적하려면 다음을 사용해봐:

  1. top — 실시간 작업용:

       top
    

    여기에서 CPU, 메모리 부하 및 활성 프로세스를 확인할 수 있어. k 키 조합을 사용해서 인터페이스 내부에서 프로세스를 종료할 수도 있어.

  2. htop — 더 편리한 인터페이스 (설치되어 있다면):

    htop
    
    나가려면 F10를 눌러.

8. 체크리스트

모든 단계를 완료한 후 다음을 확인해야 해:

  1. 두 명의 사용자 user1user2가 생성되었어.
  2. developers 그룹이 생성되고 설정되었으며, 두 명의 사용자가 그룹에 추가되었어.
  3. project.txt 파일이 생성되었고, developers 그룹만 접근 가능한 상태야.
  4. kill, killall, pkill 명령어를 통해 몇 가지 프로세스를 생성하고 종료했어.
  5. ps, top, htop을 사용하여 프로세스 목록을 성공적으로 확인했어.

모든 작업이 완료되었다면 — 축하해! Linux 시스템에서 사용자, 그룹, 접근 권한 및 프로세스 관리를 마스터한 거야. 콘솔의 힘이 너와 함께 하길!

1
Опрос
리눅스 첫 번째 명령어들,  2 уровень,  6 лекция
недоступен
리눅스 첫 번째 명령어들
리눅스 첫 번째 명령어들
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION