Tech Artifacts/Linux

Linux - 11. services

메일은 한 번에 가지 않는다 — 인터넷 서비스의 역할 분담메일을 보냈다. 바로 도착할까? 아니다. 메일은 송신자 → 송신 서버(MTA) → 수신 서버(MTA) → 메일함(MDA) → 수신자(MUA) 의 다단계 흐름을 거친다. 어디쯤 걸려 지연되는지 알려면 이 흐름을 알아야 한다. 단일 "메일 서버"라는 말이 감추는 것이 바로 이 분업이다.서버의 주된 용도가 바로 이 서비스들이다 — 웹, 이름 해석(DNS), 메일, 파일 공유, 데이터베이스. 각각 고유한 프로토콜·포트·패키지·설정 파일을 갖는다. 이 글은 그 매핑과, 서비스가 "설치했는데 외부 접속이 안 될 때"의 3단계 진단을 다룬다.서비스는 역할별 부서다 — 포트가 내선 번호다서버는 하나의 회사, 각 서비스는 부서이자 안내 데스크다. 각 부서에 고유 ..

Tech Artifacts/Linux

Linux - 10. security

설정은 다 맞는데 403이 난다 — 9할은 SELinux다httpd 설정을 다 맞췄다. 파일도 /var/www/html에 넣었다. 그런데 브라우저에서 403 Forbidden. Apache 설정만 뒤지다 한참을 헤맨다 — 그런데 진짜 원인은 SELinux인 경우가 압도적으로 많다. 파일을 cp/mv로 옮기면 보안 레이블(컨텍스트)이 잘못되어 SELinux가 접근을 막는 것이다.리눅스 보안은 다층 방어(defense in depth)다. 전통 권한(DAC) 위에 강제 접근 제어(SELinux), 네트워크 검문(firewalld), 인증(PAM)이 올려져 있고, 각 층이 독립적으로 통과돼야 접근이 허용된다. 이 장을 모르면 "설정 다 맞는데 왜 안 되지?"의 원인을 못 찾고, 방화벽·인증 정책도 못 짠다. ..

Tech Artifacts/Linux

Linux - 09. network

DNS를 바꾸려고 resolv.conf를 고쳤다가 사라졌다 — 네트워크 관리DNS 서버를 바꾸려고 /etc/resolv.conf를 직접 편집했다. 잘 되는 듯했는데 재부팅하니 원래대로 돌아갔다. 왜? Rocky 10에선 NetworkManager가 /etc/resolv.conf를 자동 관리한다. 직접 편집하면 덮어쓴다. DNS 변경은 nmcli로 해야 한다.이런 함정이 네트워크 관리엔 많다. 서버의 대부분은 네트워크로 통신하고, IP 설정·포트 점검·DNS 오류·라우팅 문제는 운영 일상이다. 이 글은 컴퓨터가 서로 통신하는 세 가지 기반 — 서로를 식별할 주소(IP), 데이터를 전달할 경로(라우팅), 이름을 주소로 바꿀 DNS — 과, Rocky 10이 이걸 NetworkManager로 관리하는 방식을 ..

Tech Artifacts/Linux

Linux - 08. package

rpm -i로 설치하면 왜 의존성 에러가 나는가 — RPM과 dnf의 역할 분담nginx를 설치하려고 rpm -i nginx.rpm을 쳤더니 의존성 에러로 실패한다. 왜? RPM은 의존성을 풀어주지 않는다. 단순 설치만 한다. 의존성 해결은 dnf의 일이다. 그래서 로컬 .rpm 파일도 dnf install ./pkg.rpm으로 설치해야 dnf가 의존성까지 처리한다.이 글은 Rocky 10이 패키지를 어떻게 관리하는지 다룬다 — RPM(포장 형식 + 저수준 도구)과 dnf(앱스토어 관리자)의 역할 분담, 그리고 Rocky 10의 두 가지 큰 변화: dnf5 전환과 modularity 폐지. 이 변화를 모르면 구형 자료의 명령이 Rocky 10에서 동작하지 않는다.RPM과 dnf는 역할이 다르다 역할비유R..

Tech Artifacts/Linux

Linux - 07. shell script

ls *.txt에서 별을 처리하는 건 ls가 아니다 — 셸과 확장ls *.txt를 친다. ls가 *.txt를 처리할까? 아니다. 셸이 먼저 *.txt를 a.txt b.txt c.txt로 펼쳐서(확장) ls에 넘긴다. ls는 이미 펼쳐진 파일 이름만 받는다. 이 사실을 모르면 셸 스크립트의 이상한 동작 원인을 평생 못 찾는다.셸은 단순한 명령 실행기가 아니다. 명령을 해석하고, 변수·glob·산술을 치환(확장)하며, 파이프·리다이렉션·제어문까지 처리하는 인터프리터다. cron, systemd unit, 배포 스크립트, 설정 자동화 — 리눅스 관리의 상당수가 셸 기반이다. 이 글은 셸이 명령을 어떻게 해석하는지, 그리고 그 해석을 스크립트로 어떻게 묶는지를 다룬다.셸은 명령 번역사다flowchart LR ..

Tech Artifacts/Linux

Linux - 06. io device

SSD, 키보드, 네트워크 카드를 같은 방식으로 다룬다 — 장치 추상화와 LVM서버에 디스크를 하나 더 꽂았다. 이제 공간이 모자라니 LVM으로 볼륨을 늘리고 싶다. 그런데 스크립트가 /dev/sda1을 찾는데 실제는 /dev/nvme0n1p1이라 실패한다 — 왜 이름이 다르지? 또 모든 드라이버를 커널에 넣지 않고도 필요할 때만 쓸 수 있는데, 어떻게?이 글은 리눅스가 수십~수백 종의 하드웨어를 일관되게 다루는 방식(장치 파일 추상화)과, 고정된 물리 디스크를 유연하게 쪼개고 합치는 방식(LVM)을 다룬다. 서버 운영 일상 — 디스크 추가, LVM 확장, 드라이버 적재 — 의 기반을 잡는다.하드웨어도 파일이다 — 장치 파일과 major/minor리눅스는 "모든 것은 파일" 원칙에 따라 하드웨어를 /de..

Archive

'Tech Artifacts/Linux' 11

Tech Artifacts/Linux

Linux - 11. services

메일은 한 번에 가지 않는다 — 인터넷 서비스의 역할 분담메일을 보냈다. 바로 도착할까? 아니다. 메일은 송신자 → 송신 서버(MTA) → 수신 서버(MTA) → 메일함(MDA) → 수신자(MUA) 의 다단계 흐름을 거친다. 어디쯤 걸려 지연되는지 알려면 이 흐름을 알아야 한다. 단일 "메일 서버"라는 말이 감추는 것이 바로 이 분업이다.서버의 주된 용도가 바로 이 서비스들이다 — 웹, 이름 해석(DNS), 메일, 파일 공유, 데이터베이스. 각각 고유한 프로토콜·포트·패키지·설정 파일을 갖는다. 이 글은 그 매핑과, 서비스가 "설치했는데 외부 접속이 안 될 때"의 3단계 진단을 다룬다.서비스는 역할별 부서다 — 포트가 내선 번호다서버는 하나의 회사, 각 서비스는 부서이자 안내 데스크다. 각 부서에 고유 ..

댓글
Tech Artifacts/Linux

Linux - 10. security

설정은 다 맞는데 403이 난다 — 9할은 SELinux다httpd 설정을 다 맞췄다. 파일도 /var/www/html에 넣었다. 그런데 브라우저에서 403 Forbidden. Apache 설정만 뒤지다 한참을 헤맨다 — 그런데 진짜 원인은 SELinux인 경우가 압도적으로 많다. 파일을 cp/mv로 옮기면 보안 레이블(컨텍스트)이 잘못되어 SELinux가 접근을 막는 것이다.리눅스 보안은 다층 방어(defense in depth)다. 전통 권한(DAC) 위에 강제 접근 제어(SELinux), 네트워크 검문(firewalld), 인증(PAM)이 올려져 있고, 각 층이 독립적으로 통과돼야 접근이 허용된다. 이 장을 모르면 "설정 다 맞는데 왜 안 되지?"의 원인을 못 찾고, 방화벽·인증 정책도 못 짠다. ..

댓글
Tech Artifacts/Linux

Linux - 09. network

DNS를 바꾸려고 resolv.conf를 고쳤다가 사라졌다 — 네트워크 관리DNS 서버를 바꾸려고 /etc/resolv.conf를 직접 편집했다. 잘 되는 듯했는데 재부팅하니 원래대로 돌아갔다. 왜? Rocky 10에선 NetworkManager가 /etc/resolv.conf를 자동 관리한다. 직접 편집하면 덮어쓴다. DNS 변경은 nmcli로 해야 한다.이런 함정이 네트워크 관리엔 많다. 서버의 대부분은 네트워크로 통신하고, IP 설정·포트 점검·DNS 오류·라우팅 문제는 운영 일상이다. 이 글은 컴퓨터가 서로 통신하는 세 가지 기반 — 서로를 식별할 주소(IP), 데이터를 전달할 경로(라우팅), 이름을 주소로 바꿀 DNS — 과, Rocky 10이 이걸 NetworkManager로 관리하는 방식을 ..

댓글
Tech Artifacts/Linux

Linux - 08. package

rpm -i로 설치하면 왜 의존성 에러가 나는가 — RPM과 dnf의 역할 분담nginx를 설치하려고 rpm -i nginx.rpm을 쳤더니 의존성 에러로 실패한다. 왜? RPM은 의존성을 풀어주지 않는다. 단순 설치만 한다. 의존성 해결은 dnf의 일이다. 그래서 로컬 .rpm 파일도 dnf install ./pkg.rpm으로 설치해야 dnf가 의존성까지 처리한다.이 글은 Rocky 10이 패키지를 어떻게 관리하는지 다룬다 — RPM(포장 형식 + 저수준 도구)과 dnf(앱스토어 관리자)의 역할 분담, 그리고 Rocky 10의 두 가지 큰 변화: dnf5 전환과 modularity 폐지. 이 변화를 모르면 구형 자료의 명령이 Rocky 10에서 동작하지 않는다.RPM과 dnf는 역할이 다르다 역할비유R..

댓글
Tech Artifacts/Linux

Linux - 07. shell script

ls *.txt에서 별을 처리하는 건 ls가 아니다 — 셸과 확장ls *.txt를 친다. ls가 *.txt를 처리할까? 아니다. 셸이 먼저 *.txt를 a.txt b.txt c.txt로 펼쳐서(확장) ls에 넘긴다. ls는 이미 펼쳐진 파일 이름만 받는다. 이 사실을 모르면 셸 스크립트의 이상한 동작 원인을 평생 못 찾는다.셸은 단순한 명령 실행기가 아니다. 명령을 해석하고, 변수·glob·산술을 치환(확장)하며, 파이프·리다이렉션·제어문까지 처리하는 인터프리터다. cron, systemd unit, 배포 스크립트, 설정 자동화 — 리눅스 관리의 상당수가 셸 기반이다. 이 글은 셸이 명령을 어떻게 해석하는지, 그리고 그 해석을 스크립트로 어떻게 묶는지를 다룬다.셸은 명령 번역사다flowchart LR ..

댓글
Tech Artifacts/Linux

Linux - 06. io device

SSD, 키보드, 네트워크 카드를 같은 방식으로 다룬다 — 장치 추상화와 LVM서버에 디스크를 하나 더 꽂았다. 이제 공간이 모자라니 LVM으로 볼륨을 늘리고 싶다. 그런데 스크립트가 /dev/sda1을 찾는데 실제는 /dev/nvme0n1p1이라 실패한다 — 왜 이름이 다르지? 또 모든 드라이버를 커널에 넣지 않고도 필요할 때만 쓸 수 있는데, 어떻게?이 글은 리눅스가 수십~수백 종의 하드웨어를 일관되게 다루는 방식(장치 파일 추상화)과, 고정된 물리 디스크를 유연하게 쪼개고 합치는 방식(LVM)을 다룬다. 서버 운영 일상 — 디스크 추가, LVM 확장, 드라이버 적재 — 의 기반을 잡는다.하드웨어도 파일이다 — 장치 파일과 major/minor리눅스는 "모든 것은 파일" 원칙에 따라 하드웨어를 /de..

댓글

wall

방명록

방문 흔적을 남겨주세요. 질문이나 인사 모두 환영합니다.