chown으로 파일 소유권 관리하기

사용자와 그룹의 이해 사용자는 시스템을 사용하는 독립된 주체다. 모든 사용자에게는 고유한 UID(User ID)가 할당되는데, 특히 UID 0은 root 사용자를 의미하며 일반 사용자는 1000번 이상의 UID를 받는다. 각 사용자는 개인 파일과 설정을 저장할 수 있는 홈 디렉토리를 가지며, 기본 셸과 환경 변수, 접근 권한 등을 개별적으로 설정할 수 있다. 반면 그룹은 여러 사용자를 하나로 묶어 관리하는 단위로, 파일이나 디렉토리의 권한을 그룹 단위로 부여할 수 있다. 사용자는 여러 그룹에 동시에 속할 수 있는데, 계정 생성 시 지정되는 기본 그룹(primary group)과 필요에 따라 추가되는 보조 그룹(supplementary groups)으로 나뉜다. 그룹 역시 사용자처럼 고유한 GID(Group ID)를 가진다. ...

2월 18, 2025 · 2 분 · 417 단어 · In-Jun Hwang

리눅스 chmod 완벽 이해하기

리눅스 권한 체계의 이해 리눅스는 유닉스의 전통을 이어받아 강력한 파일 권한 시스템을 가지고 있다. 모든 파일과 디렉토리는 소유자, 그룹, 그리고 그 외 사용자에 대한 읽기, 쓰기, 실행 권한을 각각 지정할 수 있다. 이러한 권한 체계는 다중 사용자 시스템에서 보안과 자원 공유를 가능하게 한다. 기본 권한의 구성 리눅스의 권한은 세 가지 기본 요소로 구성된다. 읽기(r), 쓰기(w), 실행(x)이다. 이 권한들은 소유자, 그룹, 기타 사용자 각각에 대해 독립적으로 설정할 수 있다. 파일 목록을 볼 때 보이는 -rwxr-xr– 와 같은 표기는 이러한 권한의 조합을 나타낸다. ...

2월 17, 2025 · 3 분 · 451 단어 · In-Jun Hwang

리눅스 크론 작업 설정 방법 - 시스템 자동화

크론 반복적인 작업을 수동으로 처리하는 것은 시간 낭비다. 시스템 백업, 로그 정리, 디스크 공간 확인 등의 작업은 자동화가 필수다. 리눅스의 크론은 이러한 작업을 자동화하는 가장 기본적인 도구다. 크론의 개념 크론은 정해진 시간에 지정된 작업을 실행한다. 크론탭이라는 설정 파일에 실행할 시간과 명령어를 정의한다. 크론탭의 각 라인은 실행 시간과 명령어로 구성된다. 1 * * * * * /path/to/command 이 다섯 개의 별표는 각각 분, 시, 일, 월, 요일을 의미한다. 별표는 ‘모든’을 의미한다. 따라서 위 설정은 매분 해당 명령어를 실행한다. ...

2월 17, 2025 · 1 분 · 142 단어 · In-Jun Hwang

도커 컴포즈로 개발 환경 한 방에 세팅하기

개발 환경 구성의 어려움 웹 애플리케이션을 개발하다 보면 데이터베이스, 캐시 서버, 메시지 큐 등 다양한 미들웨어가 필요하다. 각각의 미들웨어를 설치하고 설정하는 과정은 번거롭고 시간도 많이 걸린다. 새로운 팀원이 합류할 때마다 이 과정을 반복해야 한다면 더욱 비효율적이다. 도커 컴포즈의 필요성 도커 컴포즈는 이러한 문제를 해결하는 도구다. YAML 파일 하나로 여러 컨테이너의 구성을 정의하고, 한 번의 명령으로 전체 환경을 실행할 수 있다. 버전 관리 시스템에 이 파일을 포함하면 모든 팀원이 동일한 환경을 쉽게 구성할 수 있다. ...

2월 17, 2025 · 3 분 · 592 단어 · In-Jun Hwang

도커 이미지 크기 10배 줄인 비결

최적화 전 상태 일반적인 Node.js 애플리케이션의 도커파일은 다음과 같다. 1 2 3 4 5 FROM node:18 WORKDIR /app COPY . . RUN npm install CMD ["npm", "start"] 이 이미지의 크기는 1GB를 넘는다. 주된 원인은 다음과 같다: 무거운 베이스 이미지 개발 도구 포함 불필요한 파일 존재 캐시 파일 누적 최적화 기법 1. 멀티 스테이지 빌드 적용 빌드 단계와 실행 단계를 분리한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 빌드 스테이지 FROM node:18-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build # 실행 스테이지 FROM node:18-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/package*.json ./ RUN npm install --production CMD ["npm", "start"] 2. 알파인 리눅스 사용 알파인 리눅스는 기본 이미지 크기를 크게 줄인다. ...

2월 17, 2025 · 3 분 · 535 단어 · In-Jun Hwang