Super Kawaii Cute Cat Kaoani
본문 바로가기
{Bootcamp}/KT Cloud Tech up 클라우드 인프라

[KT Cloud] 리눅스 관리자 실습 (1)

by wonee1 2026. 8. 28.
728x90

 

 

 

0. 초기 셋팅 

 

 

다운 받은 우분투 zip을 압축해제 → ovf를 두번 click → vm name/ubuntu, path는  c:/VM/ubuntu —> import하면 된다. 

 

네트워크 설정 NAT으로 변경해준다

 

 

더보기
VM→Host 가상머신에서 호스트로
VM←Host 호스트에서 가상머신으로
VM1↔VM2 가상머신끼리
VM→Net/LAN 가상머신에서 외부 인터넷/랜으로
VM←Net/LAN 외부에서 가상머신으로

 

Host-only — 호스트와 가상머신만

호스트와 가상머신 사이, 그리고 가상머신끼리는 통신되지만 외부 인터넷으로는 못 나간다. 격리된 내부 네트워크를 만들 때 쓴다. 외부와 완전히 차단하고 싶은 실습에 적합하다.

Internal — 가상머신끼리만

가상머신끼리만 통신되고 호스트와도, 외부와도 안 된다. 가장 폐쇄적이다. 가상머신들만의 독립 네트워크를 꾸릴 때 쓴다.

Bridged — 실제 네트워크에 직접 연결

모든 방향이 +다. 가상머신이 호스트와 같은 네트워크에 직접 붙은 것처럼 동작한다. 가상머신이 공유기로부터 실제 IP를 받아 물리 PC와 대등한 장비가 된다. 외부에서 가상머신으로 직접 접속도 가능하다.

 

NAT — 나갈 순 있지만 들어오긴 제한

이게 앞서 실습에서 쓴 모드다. 특징을 보면 이렇다.

  • VM→Host, VM→Net : +. 가상머신에서 호스트나 외부로 나가는 건 된다
  • VM←Net : Port forward. 외부에서 가상머신으로 들어오려면 포트 포워딩 설정이 필요하다
  • VM1↔VM2 : -. 기본 NAT에서는 가상머신끼리 통신이 안 된다

NAT는 가상머신이 호스트의 IP를 빌려 외부로 나간다. 나가는 건 자유롭지만, 외부에서 가상머신을 직접 찾아 들어오는 건 막혀 있다. 들어오려면 포트 포워딩으로 특정 포트를 열어줘야 한다.

 

 

 

인터넷은 되고 설정은 간단하게 NAT
가상머신을 실제 장비처럼 외부 노출 Bridged
외부 차단, 내부만 실습 Host-only
가상머신끼리만 완전 격리 Internal

 

 

 

 

ssh로 우분투 접속하기

 

host이름 매칭해주는 편이 확인이 편하다

 

 

 

 

 

 

 

 


 

1. 사용자 관리 

 

사용자 account

사용자 계정을 이루는 요소다.

  • User name : 사용자 이름. 로그인할 때 쓰는 이름이다.
  • UID : 사용자 ID 번호. 시스템은 이름이 아니라 이 숫자로 사용자를 구분한다. 앞서 배운 대로 0은 root, 1000 이상이 일반 사용자다.
  • Password : 비밀번호. 실제 값은 /etc/shadow에 암호화돼 저장된다.
  • 인증 목적 : 계정은 누가 접속하는지 확인(인증)하는 데 쓰인다.
 
student : x : 1000 : 1000 : ...
이름     비번  UID   GID

 

이름과 UID로 사용자를 식별하고, 비밀번호로 본인임을 인증한다.

Groups

그룹은 사용자들을 묶는 단위다.

  • Group name : 그룹 이름
  • GID : 그룹 ID 번호. 사용자의 UID처럼 그룹도 숫자로 구분한다.
  • 파일 접근 제어 목적 : 그룹의 핵심 용도다. 여러 사용자에게 같은 파일 권한을 한 번에 주기 위해 쓴다.
  • 사용자 집합 : 그룹은 사용자들의 모임이다.
  • 하나 이상의 그룹 멤버가 될 수 있다 : 한 사용자가 여러 그룹에 동시에 속할 수 있다.

 

 

그룹의 존재 이유는 파일 접근 제어 때문이다. 예를 들어 개발팀 5명에게 같은 프로젝트 폴더 권한을 주고 싶다면, 각자에게 따로 권한을 줄 필요 없이 dev라는 그룹을 만들어 5명을 넣고 폴더에 그룹 권한을 주면 된다.

 

더보기

Primary Group과 Secondary Group

 

한 사용자가 여러 그룹에 속할 수 있는데, 그룹은 두 종류로 나뉜다. 이 구분이 중요하다.

Primary Group (주 그룹)

  • 저장 위치 : /etc/passwd
  • 사용자마다 하나만 있다
  • 그 사용자가 파일을 만들 때 기본으로 붙는 그룹이다

/etc/passwd의 4번째 필드(GID)가 primary group을 가리킨다.

 
student : x : 1000 : 1000 : ...
                     ↑
                  primary group의 GID

Secondary Group (보조 그룹)

  • 저장 위치 : /etc/group
  • 여러 개 가질 수 있다
  • 추가로 소속돼 권한을 더 얻는 그룹이다

/etc/group 파일에 어떤 사용자가 어느 보조 그룹에 속하는지 기록된다.

 

관련 설정 파일 

  • /etc/passwd => 사용자 계정 기본 정보 
  • /etc/group => 그룹 정보와 멤버 
  • /etc/shadow  => 암호화된 비밀번호와 만료 정보 
작업 유형 관련 명령어 기본 option 설정 파일
사용자 생성 useradd /etc/default/useradd, /etc/login.defs
수정 usermod  
삭제 userdel, deluser  
그룹 추가 groupadd  
수정 groupmod  
삭제 groupdel  
암호 변경 passwd  
aging chage  

 

 

 

2-1. 사용자 추가 (useradd 옵션)

 
useradd [-u uid][-g gid][-G gid[,gid,..]][-d dir][-m][-s shell][-c comment] loginname
-u uid UID 지정
-g gid primary group 지정
-G gid,... secondary group 지정 (여러 개 가능)
-d dir 홈 디렉터리 경로 지정
-m 홈 디렉터리를 실제로 생성
-s shell 로그인 셸 지정
-c comment 설명(실명 등) 지정
loginname 만들 사용자 이름

 

 
user2 : x : 1000 : 1000 : : /home/user1 : /bin/bash
  1     2    3      4    5       6            7

 

1 로그인 ID user2 사용자 이름
2 x x 비밀번호는 shadow에
3 UID 1000 -u 1000으로 지정
4 GID 1000 primary group
5 설명 (빈칸) -c 안 줘서 비어 있음
6 홈 디렉터리 /home/user1 -d로 지정
7 로그인 셸 /bin/bash -s로 지정

 

 

 

useradd -u 2001 -g 2000 -c user -d /home/class1 -m -s /bin/bash  class2

 

 

 

 

 

예를 들어 기본값 umask 022라면

디렉토리:  777 - 022 = 755  →  drwxr-xr-x
파일:      666 - 022 = 644  →  rw-r--r--

 

 

umask는 권한을 제한(제거) 한다. umask를 설정 한 다음 새로 만드는 파일, 디렉토리에 적용된다. 

 

 

 

현재 세션의 주 그룹(primary group) 전환

groups / id 내가 속한 그룹 확인
newgrp 주 그룹 임시 전환 (이번 세션만)
usermod -g 주 그룹 영구 변경
usermod -aG 보조 그룹 추가

 

 

docker group에 사용자 추가하기

더보기

 

==========root===========
root@rocky10:~# id -a student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
root@rocky10:~# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
root@rocky10:~# usermod -aG docker student
root@rocky10:~# id -a student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel),980(docker)
root@rocky10:~# 

========student=========
student@rocky10:~$ id
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
student@rocky10:~$ newgrp docker
student@rocky10:~$ id
uid=1000(student) gid=980(docker) groups=980(docker),10(wheel),1000(student) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
student@rocky10:~$ docker ps

 

 

 

2-2. 사용자 삭제 (userdel 옵션)

 

userdel [-r] 사용자명

 

 

userdel kim 계정 정보만 홈 디렉토리 /home/kim, 메일함이 그대로 남음
userdel -r kim 계정 정보 + 홈 디렉토리 + 메일 스풀 깔끔하게 정리됨

 

 

 

2-3. 암호 관리 

 

chage는 비밀번호의 유효 기간과 만료를 관리하는 명령이다. 설정은 /etc/shadow에 저장된다.

 

Last change date(마지막 변경일)를 기준으로 각 옵션이 기간을 정한다.

 

 

옵션 정리

-d 마지막 변경일 기준점
-m 최소 사용 기간 변경 후 며칠간 못 바꿈
-M 최대 사용 기간 며칠 후 변경 강제
-W 만료 전 경고 일수 만료 며칠 전 알림
-I 만료 후 유예 기간 만료 후 며칠간 기회
-E 계정 만료일 계정 자체 수명

비밀번호 변경(-d)
  → 최소 기간(-m) 동안은 못 바꿈
  → 이후 자유롭게 변경 가능
  → 만료 임박, 경고 시작(-W)
  → 최대 기간(-M) 도달, 만료
  → 유예 기간(-I) 동안 마지막 기회
  → 완전 잠김
그리고 이와 별개로 -E 날짜가 되면 계정 자체 만료

 

 

 

 

chage -l로 현재 상태를 먼저 확인하는 습관이 좋다.

 

마지막 변경일을 0으로 만들면 비밀번호를 다시 설정해야함 / 사용자 락 관리

 

 

2-4. 그 외 사용자 관리 tool 및 파일 

 

 

/etc/issue — 로그인 전 메시지

 

로그인 프롬프트 앞에 표시되는 메시지다. 이스케이프 문자로 시스템 정보를 넣을 수 있다.

  • \r : 커널 릴리스
  • \m : 머신 타입
  • \o : 도메인 이름

/etc/motd — 로그인 후 메시지

motd(message of the day)는 로그인 성공 후 표시되는 안내문이다. 시스템 점검 공지 같은 전체 공지에 쓴다.

 

728x90