
[42 Seoul] Born2beroot - sudo, ufw, ssh, cron
2022. 9. 5. 16:56
42 Seoul
SUDO sudo란? Super User Do 혹은 Substitute User Do의 약자로 유닉스 계열의 운영체제에서 루트가 아닌 다른 유저에게 제한적으로 관리자 권한을 부여 /etc/sudoers 설정 파일에 명시되어 있는 유저만 사용 가능 sudo의 장점 시스템 침입자가 sudo를 사용하게 되면 sudoers에 자신이 노출되기에 침입을 확인할 수 있음 root 계정에 장시간 머무를 일이 없어져, 위험한 명령을 실행할 가능성이 낮아짐 root와 달리 log가 남아서 추적이 쉬움 root의 password를 타인과 공유 하지 않아도 됨 sudo 설정 #root 계정 전환 su - #sudo 패키지 설치 apt-get install sudo #sudo 패키지 확인 dpkg -l | grep 'sudo'..

[42 Seoul] Born2beroot - User, Hostname, Partitions
2022. 9. 5. 15:32
42 Seoul
설치 과정 Hard disk file type VDI (VirtualBox Disk Image) : Virtualbox에서만 사용 가능한 포맷 방식 VHB(Virtual Hard Disk) : Virtualbox, Hyper-V, Xen에서 사용 가능한 포맷 방식 VMDK(Virtual Machine Disk) : Virtualbox, VMware Player에서 사용 가능한 포맷 방식 => VDI 선택 Storage on physical hard disk Dynamically allocated : 가상머신 하드 디스크에 데이터가 기록될 때 크기가 자동으로 증가 장점 : 가변적으로 크기가 늘어나므로 공간 낭비를 방지 단점 : 속도가 느림 Fixed size : 가상머신 하드 디스크의 크기를 고정 장점 :..

[42 Seoul] Born2beroot - 프로젝트 개요
2022. 9. 1. 16:17
42 Seoul
설명에 들어가기 전 후기 과제를 시작하기 몇 달 전 UMC 동아리에서 VirtualBox를 사용하여 APM(Apache + PHP + MySQL)을 설치 해 본적이있어서 Virtual Box를 다루는 데는 어렵지 않았다. 다만 처음 들어보는 LVM과 ufw, 그리고 오류가 많이 났던 포트포워딩 하는 과정은 좀 헤맸다. 게다가 비밀번호 정책 설정 중 오타를 발견하여 제대로 비밀번호 정책이 설정되지 않은 점(ucredit인데 uncredit으로 오타낸다던지...), 기존의 사용자에는 비밀번호 정책(만료 기간...등)이 적용이 되지 않은 점 등 오류가 있던 부분이 있었지만 수많은 구글링으로 겨우 설정을 마무리 할 수 있었다. 설치는 간단하였지만, 설정 부분에서 애를 먹었고, 더 힘들게 만든 점은 개념 숙지였다..

[42 Seoul] ft_printf
2022. 8. 19. 14:54
42 Seoul
설명에 들어가기 전 후기 42 Seoul을 시작하기 전에는 c를 사용하며 굉장히 많이 사용하는 함수였지만, 42 Seoul에서는 강력하게 금지하여 사용하지 못했던 printf를 드디어 구현하는 프로젝트였다. ft_printf를 구현하기 위해 가변 인자에 대한 개념을 새롭게 알게 되었다. 보너스를 구현하지 않았지만, 보너스를 구현하신 분의 평가를 다녀오며 printf에서 사용하는 다양한 플래그들을 만나볼 수 있었다. printf는 단지 인자를 받아서 해당하는 형식에 맞게 출력해주는 함수라고만 단순히 알고있었는데, 다양한 플래그들을 통해 많은 방법으로 출력하는 함수임을 처음 알게 되었다. 보너스를 하지 않으니 구현하는 데에는 크게 어렵지 않았다. 단지 unsigned 형에 음수가 나올때의 처리 방법만이 조금..

[42 Seoul] Libft - Bonus
2022. 8. 2. 23:05
42 Seoul
ft_lstnew t_list *ft_lstnew(void *content); 새로운 요소를 할당하고 요소내의 변수 content는 매개변수로 받아온 content로 초기화하여 반환 요소 내의 변수 next는 NULL로 초기화 매개변수 content : 새로운 요소에 들어갈 content의 주소값 반환값 새로운 요소의 주소값 리턴 ft_lstadd_front void ft_lstadd_front(t_list **lst, t_list *new); 요소 new를 리스트의 맨 앞에 추가 매개변수 lst : 리스트의 맨 앞에 위치한 요소 new : 리스트에 추가할 요소 반환값 없음 ft_lstsize int ft_lstsize(t_list *lst); 리스트의 길이 반환 매개변수 lst : 리스트의 맨 앞에 위..

[42 Seoul] Libft - Part 2
2022. 8. 2. 21:50
42 Seoul
ft_substr char *ft_substr(char const *s, unsigned int start, size_t len); 문자열 s로부터 start부터 len길이만큼 부분 문자열을 할당 매개변수 s : 부분 문자열을 생성할 원본 문자열의 시작 주소 start : 부분 문자열의 맨 처음 인덱스 len : 부분 문자열의 최대 길이 반환값 부분 문자열의 주소값 리턴 할당 실패시 NULL 주의사항 문자열 s의 길이

[42 Seoul] Libft - Part 1
2022. 8. 2. 18:57
42 Seoul
ft_isalpha int ft_isalpha(int c); 매개변수로 들어온 값이 알파벳인지 아닌지 판단 매개변수 c : 아스키코드 값 반환값 매개변수 값이 알파벳이면 0, 아니라면 0이 아닌 정수를 리턴 ft_isdigit int ft_isdigit(int c); 매개변수로 들어온 값이 10진수 숫자인지 아닌지 판단 매개변수 c : 아스키코드 값 반환값 매개변수 값이 10진수 숫자이면 0이 아닌 정수, 아니면 0 리턴 ft_isalnum int ft_isalnum(int c); 매개변수로 들어온 값이 알파벳 혹은 10진수 숫자인지 아닌지 판단 매개변수 c : 아스키코드 값 반환값 매개변수 값이 알파벳 혹은 10진수 숫자이면 0이 아닌 정수, 아니면 0 리턴 ft_isascii int ft_isasci..

[42 Seoul] Libft - 시작하기 전
2022. 8. 2. 16:35
42 Seoul
설명에 들어가기 전 후기 42 Seoul 본과정에 들어가서 처음으로 하는 과제였다. 첫 과제인 만큼 피신 때와 과제 유형은 굉장히 비슷했다. 어렵지는 않았지만 함수 수가 굉장히 많아서 까먹고 빠뜨리는 함수도 있었다. 피신 후반, 러쉬때에 간단하게 작성했던 makefile을 본격적으로 작성하게 되고, bonus까지 고려하여 makefile을 작성해야 했기에 피신 때 공부했던 내용들에서 조금 더 공부를 하게 되었다. makefile의 make relink 방지법을 배우며 makefile은 위에서부터 순차적으로 작동함을 알게 되고, 따라서 코드의 순서만 바꾸어도 relink가 방지됨을 알 수 있었다. 프로젝트 소개 나만의 라이브러리 만들기 Part 1 man에 정의되어 있는 그대로 libc 함수 구현 isal..