전체 글 206

SELinux ②파일 컨텍스트(file context) 제어

이번 포스팅에서는 SELinux 파일 컨텍스트를 제어하는 방법을 알아보겠습니다. SELinux 파일 컨텍스트는 인증된 사용자와 프로세스만 특정 파일 및 디렉터리에 액세스할 수 있도록 합니다. 파일 컨텍스트 설정 방법 semanage fcontext 파일 컨텍스트 정책을 생성 restorecon 정책에 지정된 컨텍스트를 파일에 적용 chcon SELinux 컨텍스트를 파일에 직접 설정 (일시적이어서 테스트 및 디버깅에 사용됨) 목적에 따라 수백 개의 많은 파일 컨텍스트 유형이 있습니다. 각 파일 컨텍스트 유형은 특정 목적 및 보안 요구 사항이 있는 특정 범주의 파일 또는 디렉터리를 나타냅니다. 파일 컨텍스트 유형 예시 bin_t 실행 가능한 이진 파일 etc_t/etc /etc 디렉터리의 구성 파일 hom..

SELinux ①리눅스 엑세스 활성화, 비활성화(getenforse, setenforce)

SELinux(Security Enhanced Linux) SELinux는 Linux의 보안 기능으로, 파일, 포트 및 기타 리소스에 대한 액세스를 제어합니다. 프로세스는 해당 SELinux 정책 또는 SELinux 부울 설정에서 지정하는 리소스에만 액세스할 수 있습니다. SELinux 모드 확인 getenforce SELinux 모드 변경 SELinux는 시스템 애플리케이션, 프로세스, 파일에 대한 엑세스 제어를 정의합니다. 엑세스가 허용되는 정도에 따라 3가지 모드로 분류됩니다. 의미 설정 명령어 enforce 기본값. 보안 정책에 맞지 않는 요청은 거부된다. setenforce 1 permissive 경고만 한다. setenforce 0 disable SELinux를 영구적으로 비활성화한다. gru..

시스템 성능 튜닝 ②nice/renice: 프로세스 우선순위 할당/수정

nice: 특정 프로세스에 우선순위를 할당하는 명령어 renice: 특정 프로세스에 우선순위를 수정하는 명령어 [ nice 값 ] 범위: -20 ~ 19 범위값이 낮을 수록 우선순위가 높다. [ nice 값 확인 ] # top 명령어로 우선순위 및 nice값을 확인할 수 있다. top # ps 명령어로 nice 값을 정렬할 수 있다. # pid, command, nice, cls 옵션을 nice 내림차순으로 확인 ps axo pid,comm,nice,cls --sort=-nice [ 사용자 지정 nice 값으로 프로세스 시작 ] 0. nice 명령어를 사용하지 않으면 nice 기본값은 0이다. # 백그라운드로 sleep 60 명령어 실행 후 nice 값 조회 sleep 60 & ps -o pid,comm..

시스템 성능 튜닝 ①tuned: 시스템 성능 최적화

tuned: 튜닝 프로파일을 선택해서 프로세스의 예약 우선순위 조정 [ tuned 패키지 설치] dnf install tuned [ tuned 활성화 확인 ] systemctl enable --now tuned [ tuned 실행 확인 ] systemctl is-active tuned [ Red Hat Enterprise Linux 9과 함께 배포되는 튜닝 프로파일 ] 튜닝 프로파일 목적 balanced 절전과 성능 간에 절충이 필요한 시스템에 적합 powersave 최대 절전을 위해 시스템을 조정 throughput-performance 최대 처리량을 얻기 위해 시스템을 튜닝 accelerator performance throughput-performance와 동일하게 튜닝하고 대기 시간도 100μs ..

작업 예약 ③Anacron을 사용해서 정기적으로 작업 예약하기(anacrontab)

Anacron: 시스템이 꺼져있더라도 예약 기능을 건너뛰지 않고 실행된다. [ anacrontab 파일의 필드 ] /etc/anacrontab 파일에서 매일, 매주, 매월 실행되는 시스템 작업에 대한 설정을 정의할 수 있다. /etc/anacrontab Period in days 반복 스케줄에 따라 실행되는 작업의 간격(일)을 정의. 정수 또는 매크로 값으로 표현. 매크로 값 @daily 정수 1과 동일(작업을 매일 실행) @weekly 정수 7과 동일(작업을 매주 실행) @monthly 한 달에 한 번 실행 Delay in minutes 작업을 시작하기 전에 crond 데몬이 기다려야 하는 시간을 정의. Job identifier 로그 메시지에서 고유한 작업 이름을 식별. Command 실행할 명령. ..

작업 예약 ②at 명령어: 특정 시간 이후에 실행하는 작업 예약하기(반복x 단일 작업)

설치 dnf install -y at at [옵션] # 3분 뒤에 /myscript.txt 파일에 시간 출력 echo "date >> /myscript.txt" | at now +3min atq 보류중인 작업 확인 watch atq 작업 실시간 확인 atrm 작업번호 작업 삭제 # 보류중인 작업 확인 atq # 보류중인 작업 실시간확인 watch atq # 작업 삭제 atrm 7 atrm 8 [위 내용은 Redhat의 공인 교육과정 내용 중 일부를 정리한 글입니다.]

작업 예약 ①crontab 명령어: 반복 작업 스케줄 예약하기

crontab: 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하는 명령어 [ crontab 파일의 필드 ] # /etc/crontab 파일 확인 cat /etc/crontab • 분 • 시간 • 일 • 월 • 요일 • 명령 [ crontab 옵션 ] 명령 용도 crontab -l 현재 사용자의 작업을 나열 crontab -r 현재 사용자의 모든 작업을 제거 crontab -e 현재 사용자의 작업을 편집 crontab filename 모든 작업을 제거하고 filename에서 읽은 작업으로 바꿈 파일이 지정되지 않은 경우 stdin 입력을 사용 # e옵션: timestamp.txt 파일에 2분마다 날짜 정보를 저장하기 crontab -e */2 * * * Mon-Fri /usr/b..

grep 명령어: 정규표현식을 사용한 grep 명령어 사용 예시

grep: 텍스트 검색 기능을 가진 명령어 1. 파일에서 검색 # test.txt 파일에서 'a'가 포함된 텍스트만 검색 grep a /text.txt 2. 명령 결과에서 검색 # ps aux 명령어에서 'pts'가 포함된 텍스트만 검색 ps aux | grep 'pts' [ grep 옵션 ] 옵션 기능 -i 제공된 정규 표현식을 사용 단, 대소문자를 구분하지 않음(대소문 자 구분 없이 실행) -v 정규 표현식과 일치하는 항목이 없는 행만 표시 -r 정규 표현식과 일치하는 데이터를 파일 그룹 또는 디렉터리에서 반복적으로 검색 -A NUMBER 정규 표현식과 일치하는 항목 다음의 행 수를 표시 -B NUMBER 정규 표현식과 일치하는 항목 앞의 행 수를 표시 -e 여러 개의 -e 옵션을 사용하면 복수의 정..

bash 스크립트 작성 방법: 반복문(for) 및 조건문(if) 사용해보기

Bash 쉘 스크립트: 명령 목록이 포함된 실행 파일 [ Bash 쉘 스크립트 사용 방법 ] 1. 스크립트 작성 스크립트의 첫 번째 행은 '#!' 표기법으로 시작해야 한다. #!/usr/bin/bash 2. 스크립트 파일 권한 변경(chmod) 파일은 기본적으로 644 이기 때문에 실행권한(x)를 추가해줘야 한다. chmod a+x 스크립트파일명 3. 스크립트 실행 [ Bash 스크립트 종료 코드 ] 종료 코드는 스크립트 종료 시 상태를 나타낸다. 문제 발생 시 종료코드로 오류를 파악하고 조치하는 용도로 사용된다. exit 명령어로 스크립트 종료 시 상태를 나타낼 수 있다. exit [0~255 사이의 정수] 0 표준입력(stdin), 정상 1 표준출력(stdout) 2 표준에러(stderr) 127 c..

[FTP]FTP 서버 구축 방법(vsfpd), 파일질라(FileZilla) 사용법

FTP란 파일 전송 프로토콜(File Transfer Protocol)의 약자로 TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 대용량 파일 전송을 하는데 사용됩니다. FTP는 파일 전송을 위한 포트 2가지를 사용합니다. 인증 및 제어포트 21번 포트 data 전송포트 active mode 클라이언트가 포트를 지정해서 서버에 통보하면 서버가 데이터를 전송한다. 클라이언트 측 방화벽에 20번 포트를 열려있어야 전송 가능하다 (그래서 잘 사용하지 않는다) passive mode 서버가 데이터 전송 포트를 지정해서 클라이언트에게 통보하면 클라이언트가 서버에 접속해서 데이터를 가져간다. 20번 포트 사용 안하고 임의의 포트를 사용한다. 이번 포스팅은 vsftpd 패키지를 사용해서 passive mode로..