🐧 Linux 심화: 파일 권한, 패키지 및 네트워크 관리
오늘은 리눅스 시스템 관리의 핵심 요소인 파일 권한(Permission), 소프트웨어 패키지 관리, 그리고 네트워크 설정에 대해 학습했다. chmod
와 chown
을 사용하여 파일 접근을 제어하고, apt
와 dpkg
로 패키지를 설치 및 관리하며, ssh
와 scp
를 통해 원격 서버에 접속하고 파일을 전송하는 실용적인 기술들을 익혔다.
💡 권한과 패키지, 왜 알아야 할까?
권한 관리는 시스템의 보안을 유지하고 다중 사용 환경에서 파일을 보호하는 기본이다. 패키지 관리는 필요한 소프트웨어를 손쉽게 설치하고 시스템을 최신 상태로 유지하는 핵심 기술이다. 이 두 가지를 마스터하면 리눅스 시스템을 안정적이고 효율적으로 운영할 수 있다.
🔐 파일 권한(Permission)과 소유권
리눅스의 모든 파일과 디렉토리에는 소유자(owner), 소유 그룹(group), 그리고 그 외 사용자(others)에 대한 접근 권한이 설정되어 있다.
ls -l
명령어로 확인한 권한 정보 예시:
-rwxr-xr-x 1 root root 4096 ...
필드 | 의미 | 설명 |
---|---|---|
- | 파일 종류 | - : 일반 파일, d : 디렉토리, l : 심볼릭 링크 |
rwx | 소유자 권한 | 읽기(r), 쓰기(w), 실행(x) 가능 |
r-x | 소유 그룹 권한 | 읽기(r), 실행(x) 가능 (쓰기 불가) |
r-x | 그 외 사용자 권한 | 읽기(r), 실행(x) 가능 (쓰기 불가) |
1 | 링크 수 | 파일에 연결된 하드 링크의 개수 |
root | 소유자 | 파일의 주인 (user) |
root | 소유 그룹 | 파일이 속한 그룹 (group) |
💡 디렉토리 권한의 특별한 의미
r
(읽기): 디렉토리 내의 파일 및 하위 디렉토리 목록을 볼 수 있는 권한.w
(쓰기): 디렉토리 내에서 파일을 생성, 삭제, 이름 변경할 수 있는 권한. (파일 자체의 w 권한과 무관!)x
(실행):cd
명령어로 해당 디렉토리에 진입할 수 있는 권한.
🛠️ 권한 및 소유권 변경 명령어
1. chmod
(Change Mode): 권한 변경
chmod
는 파일이나 디렉토리의 권한을 변경하며, 기호 모드와 숫자 모드 두 가지 방식이 있다.
- 숫자 모드 (권장):
r=4
,w=2
,x=1
의 합으로 권한을 표현한다.rwx
= 4+2+1 = 7rw-
= 4+2+0 = 6r-x
= 4+0+1 = 5r--
= 4+0+0 = 4
# 소유자에게 rwx, 그룹과 다른 사용자에게 r-x 권한 부여 (가장 일반적인 디렉토리 권한)
$ chmod 755 my_directory
# 소유자에게 rw-, 그룹과 다른 사용자에게 r-- 권한 부여 (가장 일반적인 파일 권한)
$ chmod 644 my_file.txt
# 모든 사용자가 실행할 수 있도록 실행 권한 추가
$ chmod +x my_script.sh
2. chown
(Change Owner): 소유자 및 그룹 변경
chown
은 파일이나 디렉토리의 소유자나 소유 그룹을 변경한다. (주로 sudo
권한 필요)
# 소유자를 user01로 변경
$ sudo chown user01 my_file.txt
# 소유 그룹을 team1으로 변경
$ sudo chgrp team1 my_file.txt
# 소유자와 그룹을 한번에 변경
$ sudo chown user01:team1 my_file.txt
# 디렉토리와 그 하위 모든 파일/디렉토리의 소유권을 재귀적으로 변경 (-R 옵션)
$ sudo chown -R user01:team1 my_directory/
📦 소프트웨어 패키지 관리
우분투(데비안 계열)에서는 apt
와 dpkg
를 사용하여 소프트웨어를 관리한다.
명령어 | 설명 | 주요 용도 |
---|---|---|
apt |
고수준 패키지 관리 도구 | 의존성을 자동으로 해결하며 패키지 설치, 업데이트, 삭제. (가장 권장) |
dpkg |
저수준 패키지 관리 도구 | .deb 파일을 직접 설치/삭제. (의존성 문제 발생 가능) |
apt-cache |
패키지 정보 검색 | 패키지 검색, 정보 확인, 의존성 조회 등 |
apt
주요 명령어
# 1. 패키지 목록 업데이트 (설치 전 항상 실행 권장)
$ sudo apt update
# 2. 패키지 검색
$ apt-cache search net-tools
# 3. 패키지 설치
$ sudo apt install -y net-tools
# 4. 설치된 패키지 정보 확인
$ dpkg -L net-tools
# 5. 패키지 삭제
$ sudo apt remove net-tools
🌐 네트워크 설정 및 원격 접속
1. 네트워크 상태 확인
# IP 주소 및 네트워크 인터페이스 정보 확인 (최신 방식)
$ ip addr
# 네트워크 인터페이스 정보 확인 (구 방식, net-tools 필요)
$ ifconfig
# 네트워크 연결 테스트 (Google DNS 서버로 핑 테스트)
$ ping -c 3 8.8.8.8
2. 원격 접속 및 파일 전송
ssh
와 scp
는 원격 서버 작업을 위한 필수 도구다.
ssh
(Secure Shell): 원격 서버에 안전하게 로그인하고 명령을 실행한다.scp
(Secure Copy):ssh
프로토콜을 기반으로 원격 서버와 안전하게 파일을 복사한다.
# user01 계정으로 192.168.1.100 서버에 원격 접속
$ ssh user01@192.168.1.100
# [로컬 → 원격] 로컬의 my_file.txt를 원격 서버의 /tmp 디렉토리로 복사
$ scp my_file.txt user01@192.168.1.100:/tmp
# [원격 → 로컬] 원격 서버의 /home/user01/data.log를 현재 로컬 디렉토리로 복사
$ scp user01@192.168.1.100:/home/user01/data.log .
# [로컬 → 원격] 디렉토리 전체를 복사 (-r 옵션)
$ scp -r my_project/ user01@192.168.1.100:/home/user01/
✨ 오늘의 회고
- 파일 권한의 세 가지 요소(소유자, 그룹, 기타)와 r, w, x의 의미를 이해하고,
chmod
명령어로 권한을 변경하는 방법을 익혔다. chown
과chgrp
를 사용하여 파일 및 디렉토리의 소유권을 변경하는 방법을 학습했다.apt
를 중심으로 우분투에서 패키지를 검색, 설치, 삭제하는 방법을 마스터했다.ip addr
,ping
등 네트워크 상태를 진단하는 기본 명령어를 사용해보았다.ssh
로 원격 서버에 안전하게 접속하고,scp
를 사용하여 로컬과 원격지 간에 파일을 효율적으로 전송하는 방법을 실습했다.