[Born2beroot] Script monitoring
·
🏃‍♀️ Activities/42 Cursus
스크립트 동작 코드 보기apt-get -y install sysstat #패키지 다운vi /root/monitoring.sh #스크립트 작성 위치cron유닉스 계열 컴퓨터 운영체제의 시간 기반 잡 스케줄러shell 명령어들이 주어진 일정에 주기적으로 실행하도록 규정해놓은 crontab(cron table) 파일에 의해 구동된다.crontab 파일들은 잡 목록 및 cron 데몬에 대한 다른 명령어들이 보관된 위치에 저장되어 있다. 서버 시작 이후 10분마다 실행되는 설정 확인crontab -e1분마다 실행되게 변경하려먼 10을 1로 변경한다. cron 중지systemctl disable cron #inactive 상태systemctl stop cron #현재 상태 종료 monitoring.sh 구조아키텍처..
[Born2beroot] SSH
·
🏃‍♀️ Activities/42 Cursus
SSH에 대한 설명은 아래의 링크에 작성해 두었습니다. [Born2beroot] 기본 설정해당 환경이 그래픽 환경인지 확인입력echo $XDG_SESSION_TYPE출력x11 #그래픽 환경(GUI)wayland #그래픽 환경(GUI)tty #명령 줄 인터페이스(CLI) 사용자(user)에 연결하기loginlogin: Password: 포트 포워딩(Port Forwardiy-e-99.tistory.com SSH 서비스 설치 확인dpkg -l | grep sshSSH 동작 확인sudo systemctl status sshSSH 서비스가 4242포트만을 사용하는지 확인sudo ss -ltnp | grep sshd새롭게 생성된 유저에 로그인하기 위해 SSH 사용하기사용자는 key나 간단한 비밀번호를 사용할 수 ..
[Born2beroot] UFW
·
🏃‍♀️ Activities/42 Cursus
UFW에 관한 설명은 아래 링크에 작성해 두었습니다. [Born2beroot] 기본 설정해당 환경이 그래픽 환경인지 확인입력echo $XDG_SESSION_TYPE출력x11 #그래픽 환경(GUI)wayland #그래픽 환경(GUI)tty #명령 줄 인터페이스(CLI) 사용자(user)에 연결하기loginlogin: Password: 포트 포워딩(Port Forwardiy-e-99.tistory.com UFW 설치 확인dpkg -l ufwUFW 동작 확인sudo ufw statusUFW의 활성된 규칙4242 포트에 대한 규칙도 있어야 한다.sudo vim /etc/ssh/sshd_config8080 포트를 열기 위한 새로운 규칙 추가새로운 규칙을 추가한 후 활성된 규칙의 목록에 추가되었는지 체크한다.ufw..
[Born2beroot] Sudo
·
🏃‍♀️ Activities/42 Cursus
sudoUnix 계열 운영체제의 명령어로 Linux 및 그 계열 배포판에서 쓰인다. Substitute User and do의 줄임말로, '다른 사용자 권한으로 실행한다'는 뜻이다. 각종 명령어 맨 앞에 sudo를 붙이면 그 명령어는 root 권한, 즉 최고 관리자 권한으로 실행된다. 동작 방식사용자 인증: sudo를 처음 실행할 때, 사용자는 자신의 비밀번호를 입력해야 합니다.권한 확인: 입력된 비밀번호가 확인되면, sudo는 /etc/sudoers 파일에서 사용자가 해당 명령어를 실행할 권한이 있는지 확인합니다.명령어 실행: 사용자가 권한이 있다면, sudo는 새로운 쉘을 생성하여 지정된 명령어를 root 권한으로 실행합니다.세션 유지: sudo는 일정 시간 동안(보통 10분~15분) 사용자의 인증 ..
[Born2beroot] 호스트명과 파티션들
·
🏃‍♀️ Activities/42 Cursus
호스트명 형식 확인입력hostname출력42 호스트명 수정su -sudo nano /etc/hostname 가상 머신 재시작sudo reboot 다시 호스트명 형식을 확인하여, 호스트명이 업데이트 되어있는지 확인한다.그리고 원래의 호스트명으로 복원한다. 가상머신의 파티션 확인pdf와 같은 형식으로 출력lsblk모든 하드 디스크와 파티션의 정보 출력sudo fdisk -l단순 디스크 용량 정보만 출력df -h LVMLVM (Logical Volume Manager): 리눅스에서 하드디스크를 논리적으로 나누고 확장/축소할 수 있게 해주는 디스크 관리 시스템 구성 요소PV (Physical Volume)실제 디스크나 파티션 (/dev/sda1 같은 것)VG (Volume Group)여러 PV를 하나로 묶은..
[Born2beroot] 사용자
·
🏃‍♀️ Activities/42 Cursus
현재 로그인한 유저가 sudo와 user42에 속해 있는지 확인#유저가 속한 그룹groups #특정 그룹 확인groups | grep sudo 비밀번호 정책에 관해 제시된 규칙 확인1. 새로운 유저 생성sudo adduser 2. 임의로 비밀번호 생성3. 어떻게 규칙을 설정했는지#비밀번호 규칙 위치su -sudo vi /etc/login.defssudo vi /etc/pam.d/common-passwordminlen=10ucredit=-1 #대문자lcredit=-1 #소문자dcredit=-1 #숫자maxrepeat=3reject_usernameenforce_for_rootdifok=7 #기존 패스워드와 달라야하는 문자 수 새로운 유저를 "evaluating" 그룹에 할당#그룹 추가sudo groupad..
[Born2beroot] 기본 설정
·
🏃‍♀️ Activities/42 Cursus
해당 환경이 그래픽 환경인지 확인입력echo $XDG_SESSION_TYPEXDG(X Desktop Group): 리눅스 데스크탑 환경에서 여러 배포판이 공통으로 쓸 수 있는 표준을 만드는 그룹출력x11 #그래픽 환경(GUI)X Window System (전통적인 리눅스 GUI 시스템)wayland #그래픽 환경(GUI)차세대 GUI 시스템 (보안, 성능이 개선됨)tty #명령 줄 인터페이스(CLI)그래픽이 없는 순수 터미널 로그인사용자(user)에 연결하기loginlogin: Password: 포트 포워딩(Port Forwarding)은 호스트 컴퓨터의 포트를 가상머신 내부의 포트로 연결해주는 것이다. 자신의 것으로 들어가는 것은 포트 포워딩같은 간접 접근이 아니라, 직접 IP 주소로 들어가는 것을 말..
[Born2beroot] 프로젝트 개요
·
🏃‍♀️ Activities/42 Cursus
가상머신 동작 원리사용자가 가상머신을 생성하고 게스트 OS(운영체제)를 설치하이퍼바이저가 물리 자원을 가상으로 분할해서 가상머신에게 전달게스트 OS는 마치 진짜 하드웨어가 있는 컴퓨터처럼 동작사용자는 가상머신 안에서 앱 설치, 파일 저장, 인터넷 사용 등을 할 수 있음가상머신: 실제 컴퓨터처럼 동작하는 소프트웨어 컴퓨터- 자체 cpu, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상환경- 하이퍼바이저라 불리는 소프트웨어는 하드웨어에서 가상 머신의 리소스를 분할하고 적절히 할당하여 VM에서 사용할 수 있도록 한다. 호스트(Host): 실제 컴퓨터CPU, 메모리, 디스크 등 실제 하드웨어를 가진 컴퓨터하이퍼바이저(Hypervisor): 가상머신 관리자하이퍼바이저는 하드..
[C] Memory Leak
·
🏃‍♀️ Activities/42 Cursus
메모리 릭(Memory Leak)동적으로 할당한 메모리를 해제하지 않아서, 더 이상 접근할 수 없지만 프로그램이 종료될 때까지 메모리를 계속 차지하는 현상이다.malloc, calloc, realloc 등으로 힙 메모리를 할당해놓고, 나중에 free()로 해제하지 않으면 그 메모리는 프로그램이 끝날 때까지 계속 차지하고 남아 있게 된다.그런데 우리는 그 주소를 잃어버렸기 때문에 다시는 접근할 수 없다. 즉, 쓸 수도 없고 돌려줄 수도 없는 유령 메모리가 되는 것이다. 예시char *str = malloc(100); // 100바이트 메모리 할당// str에 접근 불가해지거나str = NULL; // 원래 할당된 100바이트는 더 이상 접근 불가// 혹은return; // 함수가 끝났는데도 free()를 ..
[get_next_line][C] read & write 함수
·
🏃‍♀️ Activities/42 Cursus
read()와 write() 함수는 unistd.h 헤더 파일에 정의되어 있다.표준입력(0), 표준출력(1), 표준에러(2)와 같은 파일 디스크립터를 사용해 다양한 입출력 작업을 수행할 수 있다. read() 함수read() 함수는 파일 디스크립터를 통해 데이터를 읽어오는 C 언어의 시스템 호출 함수이다.ssize_t read(int fd, void *buf, size_t count);fd: 읽을 대상의 파일 디스크립터buf: 데이터를 저장할 버퍼count: 읽을 바이트 수성공하면 읽은 바이트 수를 반환하고, 실패하면 -1을 반환한다. write() 함수write() 함수는 파일 디스크립터를 통해 데이터를 쓰는 C 언어의 시스템 호출 함수이다.ssize_t write(int fd, const void *..