[Linux] 원격접속 / 사용자와 파일 권한

2026. 1. 5. 05:04📚 Linux

🐧 리눅스 OS & 원격 접속 및 권한 관리

1. 리눅스(Linux) OS 특징

🔹 임베디드 및 서버 개발

  • 임베디드 OS 개발:
    • 특정 목적에 맞는 컴퓨팅 시스템 세팅에 용이 (커스터마이징 가능).
  • 서버 구축:
    • 다중 사용자 환경(Multi-user) 제공에 최적화.
    • 핵심 기능: 그룹 관리, 사용자 관리, 파일 권한 관리.
    • 원격 접속: 서버 및 임베디드 개발자에게 필수 (개발 PC가 타겟 보드보다 성능이 우수하기 때문).

🔹 터미널(Terminal)의 이해

  • 정의: 컴퓨터에 접속하기 위한 텍스트(Text) 기반 장치 (과거에는 하드웨어 자체를 지칭).
  • 동작 원리:

    사용자터미널쉘(Shell)커널(Kernel)

🛠️ 추천 터미널 에뮬레이터: Terminator

기존 터미널보다 편리한 GUI 환경(화면 분할 등)을 제공합니다.

  • 설치 명령어: sudo apt install terminator -y
  • 사용 팁: Ctrl + 휠 (폰트 크기 조절), 화면 Split 기능 제공

2. 리눅스 원격 접속 (Remote Access)

🔹 원격 접속의 중요성 및 조건

  • 중요성: 장소(회사/집)에 구애받지 않고 작업 결과물을 공유하거나 제어할 수 있음.
  • 필수 조건:
    1. 접속할 PC의 전원이 켜져 있고 네트워크에 연결되어야 함.
    2. IP 주소를 알아야 함 (네트워크 접속용).
    3. ID / Password를 알아야 함 (계정 인증용).
    4. 원격 접속용 프로그램(Server/Client)이 필요함.

🔹 서버 프로그램 설정 (Ubuntu)

  • openssh-server 설치 (설치 즉시 데몬 자동 실행):
    sudo apt install openssh-server -y
  • 시스템 데몬 상태 확인 (종료하려면 q 입력):
    sudo systemctl status ssh

🔹 원격 접속 프로토콜 종류

  1. CLI 접속용 (쉘 접속)
    • Telnet: 암호화되지 않음 (보안 취약, 비권장).
    • SSH (Secure Shell): 데이터 암호화, 보안 강화 (표준 프로토콜).
  2. 파일 전송용
    • FTP: 파일 전송 표준이나 암호화되지 않음.
    • SFTP: SSH 기반으로 보안이 강화된 파일 전송.
    • 참고: SSH만 설치되어 있으면 원격 접속과 파일 전송 모두 가능.

3. 포트 포워딩 (Port Forwarding)

🔹 개념

  • Port: IP주소로 PC에 도달한 후, 어떤 프로세스(프로그램)인지 식별하는 번호.
  • Well-known Port:
    • 22: SSH / SFTP
    • 23: Telnet
    • 80: HTTP
  • 포트 포워딩: 외부(Host)의 포트와 내부(Guest/가상머신)의 포트를 연결하여 통신 길을 열어주는 작업.

🔹 실습: VirtualBox 포트 포워딩 설정

  1. IP 주소 확인
    • Windows (Host): Win + Rcmdipconfig
      • VirtualBox Host-Only Network: 192.168.56.1
    • Ubuntu (Guest): 터미널 → ifconfig (없으면 sudo apt install net-tools)
      • IP: 보통 10.0.2.15
  2. VirtualBox 설정
    • 가상머신 우클릭 → 설정 → 네트워크 → 고급 → 포트 포워딩
    • 규칙 추가:
      • 호스트 IP: 192.168.56.1 / 포트: 22
      • 게스트 IP: 10.0.2.15 / 포트: 22
  3. MobaXterm 접속
    • Session → SSH 클릭
    • Remote host: 192.168.56.1
    • Specify username: ssafy (또는 설정한 ID)
    • Port: 22
    • 기능: X11-Forwarding 지원으로 드래그&드롭 파일 공유 및 이미지 열람 가능.

4. 사용자 및 그룹 관리

🔹 Root와 Host의 이해

  • Root: 리눅스 시스템의 최고 권한 관리자.
  • Host: 네트워크에 연결된 컴퓨터 한 대의 개념.

🔹 사용자 (User) 관리

  • 사용자 생성 (Home 디렉토리 자동 생성): sudo adduser kfc
  • 사용자 변경 (로그인): su kfc
  • 사용자 삭제 (파일 포함 완전 삭제): sudo deluser kfc --remove-all-files
  • 주의: sudo 명령어는 /etc/sudoers 설정 파일에 등록된 계정만 사용 가능.

🔹 그룹 (Group) 관리

  • 목적: 파일/디렉토리에 대한 권한을 그룹 단위로 단체 설정하기 위함.
  • 정보 확인: cat /etc/group
  • 그룹 생성 (Root 권한 필요): sudo addgroup embedded
  • 그룹 정보 확인: groups [계정명]
  • 그룹에 사용자 추가: sudo gpasswd -a [유저명] [그룹명]
  • 그룹에서 사용자 삭제: sudo gpasswd -d [유저명] [그룹명]
  • 그룹 삭제: sudo delgroup [그룹명]

5. 리눅스 파일 시스템 및 권한 (Permission)

🔹 리눅스 파일의 종류

리눅스는 모든 것을 파일로 관리합니다. ls -al 명령어로 확인 시 맨 앞글자로 구분합니다.

  • - : Regular File (일반 파일)
  • d : Directory File (디렉토리도 파일로 취급)
  • l : Link File (윈도우의 바로가기와 유사)
  • c / b : Device File (장치 파일, /dev에 위치하여 장치 제어)

🔹 파일 권한 구조

ls -al 출력 예시: -rwxr-xr-- (총 9자리 권한 정보)

  1. 첫 3글자: Owner (소유자) 권한
  2. 중간 3글자: Owner Group (소유 그룹) 권한
  3. 마지막 3글자: Other (그 외 사용자) 권한
기호 의미 파일(File)에서의 역할 디렉토리(Directory)에서의 역할 2진수 값
r Read 내용 읽기 ls로 파일 목록 확인 4
w Write 내용 수정 디렉토리 내 파일 생성/삭제 2
x Execute 실행 가능 cd로 디렉토리 접근(이동) 1

🔹 권한 변경 실습

1. 소유자/그룹 변경 (chown)

  • 명령어: sudo chown [소유자]:[그룹] [파일명]
  • 예시: sudo chown jdragon:embedded abc
  • 우선순위: 파일에 접근할 때 Owner 권한이 Owner Group 권한보다 우선합니다.

2. 권한 변경 (chmod)

  • 기호 모드 (Symbolic Mode)
    • u(User), g(Group), o(Other), a(All)
    • +(추가), -(제거), =(지정)
    • 예시: sudo chmod u=rwx abc (User에게 읽기/쓰기/실행 모두 부여)
  • 8진수 모드 (Numeric Mode)
    • r(4) + w(2) + x(1)의 합계로 설정
    • 예시: sudo chmod 777 abc (모든 사용자에게 모든 권한 rwx 부여)
    • 예시: sudo chmod 421 abc (u=r, g=w, o=x)

3. 파일 및 디렉토리 권한 상세

  • echo HI > abc: abc 파일에 내용을 씀.
  • 복사(cp) 권한 조건:
    • 복사할 원본 파일Read 권한 필요.
    • 복사될 목적지 디렉토리Write 권한 필요.
  • 디렉토리 필수 권한:
    • 내부 목록을 보려면 Read.
    • 내부로 들어가려면(cd) Execute가 반드시 필요.

'📚 Linux' 카테고리의 다른 글

[Linux] Build System 이해  (0) 2026.01.12
[Raspberry pi] sensor  (1) 2026.01.10
라즈베리파이 & 임베디드 기초  (0) 2026.01.10
[Linux] vi / plugin  (0) 2026.01.05
Linux Shell  (0) 2026.01.02