-
Notifications
You must be signed in to change notification settings - Fork 0
KR_Linux_Admin
somaz edited this page Mar 30, 2026
·
1 revision
질문: Linux의 파일 권한 시스템(rwx)을 설명하고, chmod, chown, /etc/passwd, /etc/shadow, /etc/skel의 역할을 설명하세요.
답변:
ls -l /etc/hosts
-rw-r--r-- 1 root root 220 Nov 6 10:00 /etc/hosts
│││││││││ │ │ │ │ │ └─ 파일명
│││││││││ │ │ │ │ └─ 수정 시간
│││││││││ │ │ │ └─ 파일 크기
│││││││││ │ │ └─ 그룹
│││││││││ │ └─ 소유자
│││││││││ └─ 링크 수
│││││││└─ 기타 사용자 권한 (r--)
││││││└─ 그룹 권한 (r--)
│││└─ 소유자 권한 (rw-)
││└─ 특수 권한 (setuid, setgid, sticky bit)
│└─ 파일 타입 (- = 일반 파일, d = 디렉터리, l = 심볼릭 링크)# Symbolic 방식
chmod u+x file.sh # 소유자에게 실행 권한 추가
chmod g-w file.txt # 그룹 쓰기 권한 제거
chmod o=r file.txt # 기타 사용자는 읽기만
# Numeric 방식 (8진수)
chmod 755 file.sh # rwxr-xr-x
chmod 644 file.txt # rw-r--r--
chmod 600 ~/.ssh/id_rsa # rw-------
# 권한 숫자 계산
# r = 4, w = 2, x = 1
# 755 = rwxr-xr-x = (4+2+1)(4+0+1)(4+0+1)cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
somaz:x:1000:1000:Somaz User:/home/somaz:/bin/bash
│ │ │ │ │ │ └─ 기본 셸
│ │ │ │ │ └─ 홈 디렉터리
│ │ │ │ └─ GECOS (사용자 설명)
│ │ │ └─ GID (그룹 ID)
│ │ └─ UID (사용자 ID, root=0)
│ └─ 비밀번호 (x = /etc/shadow에 저장)
└─ 사용자명sudo cat /etc/shadow
root:$6$xyz...:19000:0:99999:7:::
│ │ │ │ │ │
│ │ │ │ │ └─ 경고 기간
│ │ │ │ └─ 최대 사용 기간
│ │ │ └─ 최소 사용 기간
│ │ └─ 마지막 변경일
│ └─ 암호화된 비밀번호 ($6$ = SHA-512)
└─ 사용자명# /etc/skel 내용
ls -la /etc/skel/
.bash_logout
.bashrc
.profile
# 새 사용자 생성 시 자동 복사
sudo useradd -m newuser
# → /home/newuser/에 /etc/skel/ 내용 복사됨질문: systemd의 주요 개념과 서비스 관리 방법을 설명하세요. Unit 파일 작성 방법과 주요 명령어를 포함하세요.
답변:
systemd는 최신 Linux 배포판의 init 시스템 및 서비스 매니저입니다.
주요 Unit 타입:
- Service: 데몬 프로세스 (.service)
- Socket: IPC 소켓 (.socket)
- Target: 여러 Unit 그룹 (.target)
- Mount: 파일시스템 마운트 (.mount)
- Timer: 크론 작업 대체 (.timer)
# 서비스 시작/중지/재시작
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx # 설정만 재로드
# 부팅 시 자동 시작 설정
sudo systemctl enable nginx
sudo systemctl disable nginx
# 상태 확인
systemctl status nginx
systemctl is-active nginx # active/inactive
systemctl is-enabled nginx # enabled/disabled
# 전체 서비스 목록
systemctl list-units --type=service
systemctl list-unit-files --type=service# /etc/systemd/system/myapp.service
[Unit]
Description=My Application
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=myapp
Group=myapp
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/bin/start.sh
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target# Unit 파일 리로드
sudo systemctl daemon-reload
# 서비스 시작 및 활성화
sudo systemctl enable --now myapp.service
# 로그 확인
journalctl -u myapp.service
journalctl -u myapp.service -f # 실시간
journalctl -u myapp.service --since today질문: Linux의 네트워크 관리 명령어(ip, ss, route)를 설명하고, 실무 활용 사례를 제시하세요.
답변:
# 네트워크 인터페이스 확인
ip link show
ip addr show
ip addr show eth0
# IP 주소 추가/삭제
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip addr del 192.168.1.100/24 dev eth0
# 인터페이스 활성화/비활성화
sudo ip link set eth0 up
sudo ip link set eth0 down
# 라우팅 테이블
ip route show
sudo ip route add default via 192.168.1.1
sudo ip route add 10.0.0.0/8 via 192.168.1.254
# ARP 테이블
ip neigh show# TCP 연결 확인
ss -tunap
# -t: TCP
# -u: UDP
# -n: 숫자로 표시
# -a: 모든 소켓
# -p: 프로세스 정보
# 특정 포트 확인
ss -tunap | grep :80
ss -tulpn | grep :22
# 연결 통계
ss -s# 연결 테스트
ping -c 4 8.8.8.8
ping6 -c 4 2001:4860:4860::8888
# 경로 추적
traceroute google.com
mtr google.com # 실시간 traceroute
# DNS 조회
dig google.com
nslookup google.com
host google.com
# 포트 스캔
nc -zv 192.168.1.1 22
nmap -p 22,80,443 192.168.1.1질문: Linux의 프로세스 관리 명령어(ps, top, htop, kill)를 설명하고, 프로세스 우선순위 조정 방법을 설명하세요.
답변:
# 기본 사용법
ps aux
ps -ef
# 특정 프로세스 검색
ps aux | grep nginx
pgrep -a nginx
# 프로세스 트리
ps auxf
pstree -p# top 주요 키
# P: CPU 사용률 정렬
# M: 메모리 사용률 정렬
# k: 프로세스 종료
# r: nice 값 변경
# q: 종료
# htop (더 강력한 인터페이스)
sudo apt install htop
htop# 주요 시그널
kill -l # 모든 시그널 목록
# SIGTERM (15): 정상 종료 요청
kill 1234
kill -15 1234
kill -TERM 1234
# SIGKILL (9): 강제 종료
kill -9 1234
kill -KILL 1234
# SIGHUP (1): 재시작/설정 리로드
kill -HUP 1234
# 프로세스 이름으로 종료
pkill nginx
killall nginx# nice 값: -20 ~ 19 (낮을수록 높은 우선순위)
# 일반 사용자: 0 ~ 19만 가능
# nice로 시작
nice -n 10 ./heavy-process.sh
# 실행 중인 프로세스 우선순위 변경
sudo renice -n -5 -p 1234
sudo renice -n 10 -u username질문: Linux Kernel 모듈 관리 방법과 SELinux/AppArmor의 차이점을 설명하세요.
답변:
# 로드된 모듈 확인
lsmod
lsmod | grep e1000
# 모듈 정보
modinfo e1000e
modinfo -p e1000e # 파라미터
# 모듈 로드
sudo modprobe e1000e
sudo insmod /path/to/module.ko
# 모듈 언로드
sudo modprobe -r e1000e
sudo rmmod e1000e
# 부팅 시 자동 로드
echo "e1000e" | sudo tee -a /etc/modules
# 모듈 블랙리스트
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.confSELinux (Red Hat 계열):
# 상태 확인
getenforce
sestatus
# 모드 변경
sudo setenforce 0 # Permissive
sudo setenforce 1 # Enforcing
# 영구 설정
sudo vi /etc/selinux/config
SELINUX=enforcing
# 컨텍스트 확인
ls -Z /var/www/html
ps -eZ | grep httpd
# 컨텍스트 변경
sudo chcon -t httpd_sys_content_t /var/www/html/index.html
sudo restorecon -Rv /var/www/htmlAppArmor (Debian/Ubuntu 계열):
# 상태 확인
sudo aa-status
# 프로파일 모드
sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx # Enforce
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx # Complain
# 프로파일 비활성화
sudo ln -s /etc/apparmor.d/usr.sbin.nginx /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.nginx