프로세스 및 사용자 관리

Ryan Han·6일 전
0
post-thumbnail

ps 명령어

  • ps : 현재 터미널에서 사용자가 실행한 프로세스의 정보를 출력

  • ps -f : 프로세스의 상세 정보 출력 (UNIX 옵션)

  • ps a : 터미널에서 실행한 프로세스의 정보 출력 (BSD옵션)

  • ps au : 터미널에서 실행한 프로세스(a)의 상세정보 출력(u)

  • ps -e : 전체 프로세스 목록 출력 (UNIX 옵션)

  • ps ax : 전체 프로세스 출력

  • ps -u : 특정 사용자가 실행한 프로세스 목록 출력

pgrep 명령어

  • pgrep : 지정된 패턴과 일치하는 프로세스의 정보 출력

  • 형식 : pgrep [option] < pattern >

  • pgrep -x bash : 패턴과 정확히 일치하는 CMD를 가진 프로세스 출력
    --> 프로세스의 CMD가 정확히 bash와 일치하는 프로세스 출력
    "정확히 일치한다" bash!=ssbash

  • pgrep -l bash : 패턴과 정확히 일치하는 프로세스의 PID와 이름 출력
    --> -x 옵션과의 차이점 : 프로세스 이름이 함께 표시

  • ps -fp $(pgrep -x bash) : 찾고자 하는 프로세스의 상세 정보 확인이 필요한 경우에 사용

    	--> pgrep 명령으로 bash의 PID를 검색한 결과를 -p 옵션의 인자로 사용
    
    	--> pgrep -x bash 명령으로 검색된 각 PID에 해당하는 프로세스의 상세 정보 출력
  • pgrep -fp $(pgrep -u ryanhan bash) : ryanhan 사용자가 실행한 bash 프로세스의 자세한 정보 확인

Kill 명령어

  1. 먼저 종료할 프로세스의 PID를 확인
  • ps -ef 나 ps aux 명령으로 종료하고자 하는 프로세스 PID를 알아냄
  1. PID 확인 후 kill 또는 pkill을 사용하여 종료 시킴
  • kill & pkill 명령은 프로세스에 시그널을 보내는 방식으로 프로세스를 종료

  • 시그널 : 프로세스에 무엇인가가 발생했음을 알리는 간단한 메세지
    --> kill -l 명령어를 통해 시그널 목록 확인 가능

kill 명령 : 지정한 시그널을 프로세스에게 보냄

단순 kill = kill -15

--> 형식 : kill [ - < signal > ] < pid >
--> < signal > 에 작성한 시그널이 가진 처리 방식으로 프로세스를 종료

kill -2 < ____ >---> 인터럽트 신호를 보냄 (SIGINT)

kill -9 < ____ > ---> 프로세스를 강제 종료 (SIGKILL)

kill -15 <____> ---> 프로세스와 관련된 파일을 정리한 후 종료(SIGTERM

  • kill 명령 사용법

--> ps -fp $(pgrep -x man) 을 통해 실행중인 man 프로세스의 PID를 확인한다

  • 프로세스 강제 종료 ( 9 )

  • kill < PID > 로 종료를 해도 sh 프로세스는 종료되지 않음
  • sh 는 15번 시그널 (SIGTERM)을 무시함

pkill 명령 사용법

  • pkill : kill 명령과 마찬가지로 시그널을 보냄
    --> PID가 아니라 프로세스의 명령 이름(CMD) 로 프로세스를 찾아 종료

- 여기서 기존 kill은 PID를 통해 프로세스를 종료하는 반면 pkill은 CMD 즉 man을 통해 pkill man 으로 man프로세스를 종료시킨다.

포그라운드 및 백그라운드 작업

  • 포그라운드 프로세스 : 입력한 명령의 결과가 출력될때까지 기다리는 프로세스

--> 작업이 완료될 때까지 기다려야 함.

--> sleep 명령으로 확인
ex) sleep 10 --> 10초 뒤 sleep 이 종료되기 이전에는ㅍ ㅡ롬프트가 다른 명령 받을 수 없음

  • 백그라운드 작업 : 프로세스가 실행되는 동안 다른 프로세스의 실행이 가능

실행방법 : 명령 끝에 & 기호 추가

ex) sleep 10 & --> sleep 명령을 백드라운드로 실행

--> 백드라운드 단점 : 작업 결과가 뒤섞여 결과 확인 어려움

작업 제어

  • 작업 전환 : 포그라운드 <--> 백그라운드

  • 작업 일시 중지 : 작업을 잠시 중단

  • 작업 종료 : 프로세스를 종료하는 것처럼 작업을 종료

  • jobs 명령어 : 현재 백그라운드에서 실행중인 작업 목록 출력

--> 형식 : jobs [ &id ] ( id에는 jobs 명령으로 확인한 작업 번호 작성

  • ^Z([ Ctrl ]+x) 또는 stop 명령은 현재 포그라운드 작업을 Stopped 상태로 바꿔 잠시 정지시킴(종료하는 것이 아님)

  • 작업 종료: ctrl + c , kill 명령

시스템 성능 모니터링

  • top 명령 : 현재 실행 중인 프로세스의 정보를 주기적으로 출력

--> 형식 : top [ option ]

  • htop 명령 : top 명령의 그래픽 버전( 색깔 추가 가시성 보완 )

시스템 사용자 관리

  • 런레벨 : 시스템 관리의 용이함을 위하여 서비스의 실행을 단계별로 구분하여 적용한 것

사용자 계정 관련 파일

  • /etc/passwd 파일 : 리눅스에 생성되어 있는 모든 사용자 계정의 간단한 정보를 저장 (7가지 항목) --> 비번은 x로 표시됨 --> 파일 유출된 경우에도 계정의 비밀번호를 알지 못하도록 하기위해 !
  • /etc/shadow 파일 : 사용자 암호에 대한 정보를 별도로 관리하는 파일(9가지 항목)

  • /etc/login.defs/ 파일 : 계정에 필요한 기본값을 정의

-/etc/group/ 파일 : 시스템에 생성된 그룹에 관한 정보가 저장된 파일

  • /etc/gshadow/ 파일 : 각 그룹에 대한 비밀번호가 저장된 파일

  • /etc/skel 디렉터리 : 사용자 홈 디렉터리에 공통으로 배포해야할 파일 가지고 있음

사용자 관리 명령어

사용자 생성 명령어

  • useradd 명령 : 사용자 계정 생성
    --> 사용법 : useradd [ options ] < user >
    --> 옵선 없이 사용하면, sh 쉘을 사용하고, 사용자명과 동일한 이름의 그룹에 속하며, 홈 디렉터리가 없는 상태를 기본값으로 가진 새로운 계정이 생성

--> 홈 디렉터리를 가진 bill 계정생성 : sudo useradd -m bill ( -m 은 사용자의 홈 디렉터리를 생성하는 옵션 )

  • passwd 명령 : 계정의 새로운 비밀변호를 설정
    --> 사용법 : passwd < user >
    --> < user >로 비밀번호를 변경할 사용자를 지정하지 않으면, 현재 로그인한 계정의 비밀번호를 변경

  • su 명령 : 현재 계정을 로그아웃 하지 않고 다른 계정으로 전환

--> 사용법 : su [ option ] < user >

사용자 정보 수정 명령어

  • usermod 명령 : 사용자 계정 정보를 수정

--> 사용법 : usermod [ options ] < user >

사용자 삭제 명령어

  • userdel 명령 : 사용자 계정을 삭제.

---> 사용법 : userdel [ option ] < user >
---> 옵션 : -r : 사용자의 홈 디렉터리까지 삭제

그룹 관리 명령어

그룹 생성 명령어

  • groupadd 명령 : 그룹 생성

--> 사용법 : groupadd [ options ] < groupname >

--> 옵션 : -g < gid > : 생성할 그룹의 GID 지정

그룹 정보 수정 명령어

  • groupmod 명령 : 그룹 정보 수정

--> 사용법 : groupmod [ options ] < group >

그룹 암호 변경 명령어

  • gpasswd 명령 : /etc/passwd/ 와 /etc/gshadow/ 파일을 관리

--> 사용법 : gpasswd [ options ] < group >

sudo gpasswd -a linus itgeeks --> itgeeks 그룹의 linus 라는 그룹원 추가

sudo gpasswd -d linus itgeeks --> itgeeks 그룹의 linus 라는 그룹원 삭제

기본 그룹 변경 명령어

- newgrp 명령 : 현재 사용자의 기본 그룹을 변경
--> 사용법 : newgrp < group >

그룹 삭제 명령어

  • groupdel 명령 : 그룹 삭제
    --> 사용법 : groupdel < group >

사용자 식별 명령어

---> 리눅스에서 사용자의 신원을 식별하고, 파일 시스템 및 프로세스 권한을 관리하는데 사용

– UID(User ID) : 사용자의 고유 식별 번호
– RUID(Real User ID) : 프로세스를 시작한 실제 사용자의 UID --> who am i 명령을 통해 확인
– EUID(Effective User ID) : 프로세스가 현재 수행 중인 작업에 대해 실제로 적용되는 UID --> whoami 명령을 통해 확인

사용자 정보 관리 명령어

  • who 명령 : 현재 시스템을 사용하는 사용자의 정보 출력
    --> who [ option ]

  • w 명령 : 현재 시스템을 사용하는 사용자의 정보와 작업 정보 출력

--> 사용법 : w [ option ][ user ]

  • last 명령어 : 시스템에 사용자들이 로그인/로그아웃한 정보를 출력

--> last [ user ]

  • groups 명령 : 사용자 계정이 속한 그룹 출력

--> 사용법 : groups [ user ]

파일 소유권 변경 명령어

  • chown 명령 : 파일/디렉터리 소유자나 소유 그룹을 변경

--> 사용법 : 사용법 : chown [ option ] < user > < file >

--> 옵션 : -R : 서브 디렉터리의 소유자와 소유 그룹도 변경

profile
소프트웨어학과 대학생

0개의 댓글