리눅스는 운영체제
운영체제(OS)
컴퓨터 하드웨어와 사용자를 이어주는 핵심 소프트웨어
하드웨어와 소프트웨어 사이의 중재자 역할
핵심기능
프로세스 관리
메모리 관리
저장 장치 관리
입출력 장치 관리
리눅스: 유닉스 계열 운영체제
오픈소스
안정성, 보안성
유연성
커뮤니티 중심
| 배포판 | 특징 | 주요 활용 분야 |
| Ubuntu | 사용하기 쉽고, 커뮤니티가 활발 | 데스크톱, 서버, 교육 |
| Debian | 안정성과 보수적 업데이트 | 서버 운영, 기반 배포판(우분투의 뿌리) |
| Fedora | 최신 기술 반영, Red Hat 실험적 버전 | 개발·테스트 환경 |
| CentOS / Rocky Linux | Red Hat 계열, 기업용 서버에 적합 | 서버, 기업 환경 |
| Arch Linux | 최소한의 설치, 사용자 커스터마이징 | 고급 사용자, 연구 환경 |
| Kali Linux | 보안·해킹 도구 특화 | 보안 실습, 침투 테스트 |
WSL을 사용하여 Windows에 리눅스 설치하기
Windows는 Linux랑 다른 운영체제
마이크로소프트도 리눅스가 중요한 운영체제란 것을 알고 있음
그러다 보니 사용자들이 윈도우 안에서 리눅스 이용을 할 수 있도록 시스템 내부에 기능을 추가함
그것이 WSL
22.04가 ROS에 적합

ID, PW [steezer, 1234]


터미널
컴퓨터와 사용자 간에 상호작용할 수 있게 연결하는 장치
컴퓨터와 사용자의 상호작용에서 가장 중요한 것은, 사용자가 컴퓨터에 명령을 전달하고 컴퓨터는 명령을 수행한 결과를 사용자에게 전달하는 것
셸
운영체제가 제공하는 명령어 기반 인터페이스
사람과 컴퓨터 시스템이 명령어로 상호작용한다는 의미
터미널은 사용자가 명령어를 입력할 수 있는 창, 즉 입력과 출력의 인터페이스를 의미
셸은 터미널을 통해 입력된 명령어를 받아서 해석하고 실행하는 프로그램
터미널과 셸의 관계는 “창과 프로그램”의 관계
셸 스크립트
셸에서 동작 가능한 명령을 모아놓은 파일


Ctrl + X / Y / Enter로 저장 후 나가기

hello.sh에 실행 권한을 수정하고, 실행 권한이 생긴 셸 스크립트를 ./로 실행
터미널
컴퓨터한테 할 말 있으면 할 수 있는 창
(컴퓨터가 알아듣는 말만 가능)
셸
컴퓨터가 알아들을 수 있는 말인지 해석하고 처리하는 기능
(터미널 안에서 동작함)
현재 '배시 셸' 주로 사용
즉 배시 명령어를 학습 중
명령어 여러 개를 한번에 모아 실행할 수 있는 게 '셸 스크립트'
명령어 형식
[]는 선택사항
$ 명령어 [옵션] [인자]
man
manual 약자, 명령어나 개념에 대한 메뉴얼인 맨 페이지 확인하는 명령어
man [옵션] [섹션] 페이지
man man

ls
list 약자
파일 목록 화면에 출력(+디렉터리, 특수 파일)
ls [옵션] [파일]
-a 모든 파일 출력
-l 파일의 여러 속성을 포함해 길게 출력
-t 생성된 순서로 파일 출력(오래된게 제일 뒤로)
-R 하위 모든 디렉터리 순회
-h 사람이 읽기 좋은 크기로 파일 출력

파랑 폴더
흰색 숨김 파일
초록 파일


cd
change directory 약자
현재 작업 디렉터리
cd [디렉터리]


pwd
print working directory
현재 작업 디렉터리를 절대 경로로 조회

cat
파일 내용을 연결하거나 조회
cat [옵션] [파일]

exit
exit [종료_코드]
현재 실행 중인 셸 종료
nano
nano [파일]
텍스트 편집기

파일 시스템
파일에 대한 정보를 관리하는 소프트웨어
파일 관리는 계층 구조로 이루어짐
파일 계층 구조
모든 파일이 하나의 계층 구조로 관리
하나의 루트 디렉터리만 존재(/)
파일 종류
일반 파일, 디렉터리, 심볼릭 링크 파일, 블록 디바이스 파일, 문자 디바이스 파일, 파이프 파일, 소켓 파일
디렉터리
파일 시스템을 계층화할 때 사용하는 도구
루트 디렉터리
파일 시스템의 최상단에 위치하는 디렉터리(/ 표기)
주요 하위 디렉터리
bin, dev, etc, home, lib, mnt, proc, root, sbin, sys, tmp, usr
홈 디렉터리
리눅스에 사용자를 추가하면 사용자별로 할당하는 디렉터리
상대경로
현재 작업 디렉터리 기준 파일 경로
절대 경로
루트 디렉터리를 기준으로 파일 경로를 나타냄

실습: 파일, 디렉터리 다루기
steezer@DESKTOP-TF8J569:/home$ cd steezer
steezer@DESKTOP-TF8J569:~$ cd 260309
steezer@DESKTOP-TF8J569:~/260309$ mkdir animals
steezer@DESKTOP-TF8J569:~/260309$ ls
animals hello.sh steezer.txt
steezer@DESKTOP-TF8J569:~/260309$ cd animals
steezer@DESKTOP-TF8J569:~/260309/animals$ mkdir dog cat cow
steezer@DESKTOP-TF8J569:~/260309/animals$ ls
cat cow dog
steezer@DESKTOP-TF8J569:~/260309/animals$ cd ..
steezer@DESKTOP-TF8J569:~/260309$ mkdir animals/snake
steezer@DESKTOP-TF8J569:~/260309$ cd animals
steezer@DESKTOP-TF8J569:~/260309/animals$ ls
cat cow dog snake
steezer@DESKTOP-TF8J569:~/260309/animals$ cd ~
steezer@DESKTOP-TF8J569:~$ cd 260309
steezer@DESKTOP-TF8J569:~/260309$ mkdir fruits/apple
mkdir: cannot create directory ‘fruits/apple’: No such file or directory
steezer@DESKTOP-TF8J569:~/260309$ mkdir -p fruits/apple
steezer@DESKTOP-TF8J569:~/260309$ ls
animals fruits hello.sh steezer.txt
steezer@DESKTOP-TF8J569:~/260309$ ls fruits
apple
steezer@DESKTOP-TF8J569:~/260309$ mkdir -p fruits/apple
steezer@DESKTOP-TF8J569:~/260309$
디렉터리 삭제
rmdir [옵션] 디렉터리
steezer@DESKTOP-TF8J569:~/260309$ ls
animals fruits hello.sh steezer.txt
steezer@DESKTOP-TF8J569:~/260309$ cd /animals
-bash: cd: /animals: No such file or directory
steezer@DESKTOP-TF8J569:~/260309$ cd animals
steezer@DESKTOP-TF8J569:~/260309/animals$ ls
cat cow dog snake
steezer@DESKTOP-TF8J569:~/260309/animals$ rmdir cat cow dog snake
steezer@DESKTOP-TF8J569:~/260309/animals$ ls
steezer@DESKTOP-TF8J569:~/260309/animals$ cd ..
steezer@DESKTOP-TF8J569:~/260309$ rmdir animals
steezer@DESKTOP-TF8J569:~/260309$ ls
fruits hello.sh steezer.txt
steezer@DESKTOP-TF8J569:~/260309$ ls fruits
apple
steezer@DESKTOP-TF8J569:~/260309$ rmdir fruits
rmdir: failed to remove 'fruits': Directory not empty
steezer@DESKTOP-TF8J569:~/260309$ ls
fruits hello.sh steezer.txt
steezer@DESKTOP-TF8J569:~/260309$ rmdir -p fruits/apple
steezer@DESKTOP-TF8J569:~/260309$ ls
hello.sh steezer.txt
steezer@DESKTOP-TF8J569:~/260309$
파일 복사
cp [옵션] 원본 복사본
steezer@DESKTOP-TF8J569:~/260309$ mkdir testdir
steezer@DESKTOP-TF8J569:~/260309$ cd testdir
steezer@DESKTOP-TF8J569:~/260309/testdir$ pwd
/home/steezer/260309/testdir
steezer@DESKTOP-TF8J569:~/260309/testdir$ echo "hello world" > greetings
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls
greetings
steezer@DESKTOP-TF8J569:~/260309/testdir$ cat greetings
hello world
steezer@DESKTOP-TF8J569:~/260309/testdir$ cp greetings say-hi
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls
greetings say-hi
steezer@DESKTOP-TF8J569:~/260309/testdir$ cat say-hi
hello world
steezer@DESKTOP-TF8J569:~/260309/testdir$ mkdir temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ cp greetings say-hi temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ cd temporary
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ ls
greetings say-hi
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ cat greetings
hello world
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ cat say-hi
hello world
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$
파일 이동
mv [옵션] 원본 대상
mv [옵션] 원본1 원본 2 ... 디렉터리
steezer@DESKTOP-TF8J569:~/260309/testdir$ pwd
/home/steezer/260309/testdir
steezer@DESKTOP-TF8J569:~/260309/testdir$ echo "hello world" > greetings
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls
greetings
steezer@DESKTOP-TF8J569:~/260309/testdir$ cat greetings
hello world
steezer@DESKTOP-TF8J569:~/260309/testdir$ cp greetings say-hi
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls
greetings say-hi
steezer@DESKTOP-TF8J569:~/260309/testdir$ cat say-hi
hello world
steezer@DESKTOP-TF8J569:~/260309/testdir$ mkdir temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ cp greetings say-hi temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ cd temporary
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ ls
greetings say-hi
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ cat greetings
hello world
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ cat say-hi
hello world
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ pwd
/home/steezer/260309/testdir/temporary
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ ls
greetings say-hi
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ mv say-hi hello
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ ls
greetings hello
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ mv greetings welcome
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ ls
hello welcome
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ cd ..
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls
greetings say-hi temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls temporary
hello welcome
steezer@DESKTOP-TF8J569:~/260309/testdir$ mv temporary/hello ./
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls
greetings hello say-hi temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls temporary
welcome
steezer@DESKTOP-TF8J569:~/260309/testdir$
파일 삭제하기
rm [옵션] 파일
WELCOME greetings hello say-hi temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ rm say-hi
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls
WELCOME greetings hello temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ rm -i hello
rm: remove regular file 'hello'? y
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls
WELCOME greetings temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ rm WELCOME greetings
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls
temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ cd temporary
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ ls
steezer@DESKTOP-TF8J569:~/260309/testdir/temporary$ cd ..
steezer@DESKTOP-TF8J569:~/260309/testdir$ rm -d temporary
steezer@DESKTOP-TF8J569:~/260309/testdir$ ls
steezer@DESKTOP-TF8J569:~/260309/testdir$ cd ..
steezer@DESKTOP-TF8J569:~/260309$
아이노드
파일의 메타데이터를 저장하는 자료구조
데이터 블록
파일의 실제 내용을 저장하고 있음
소프트 링크
바로가기와 같은 개념
steezer@DESKTOP-TF8J569:~/260309$ mkdir linktest
steezer@DESKTOP-TF8J569:~/260309$
steezer@DESKTOP-TF8J569:~/260309$ cd linktest
steezer@DESKTOP-TF8J569:~/260309/linktest$ echo "this is a target file" > target
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat target
this is a target file
steezer@DESKTOP-TF8J569:~/260309/linktest$ ln -s target s-link
steezer@DESKTOP-TF8J569:~/260309/linktest$ ls -li
total 4
50614 lrwxrwxrwx 1 steezer steezer 6 Mar 9 14:27 s-link -> target
50613 -rw-r--r-- 1 steezer steezer 22 Mar 9 14:27 target
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat s-link
this is a target file
steezer@DESKTOP-TF8J569:~/260309/linktest$ stat target
File: target
Size: 22 Blocks: 8 IO Block: 4096 regular file
Device: 830h/2096d Inode: 50613 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ steezer) Gid: ( 1000/ steezer)
Access: 2026-03-09 14:27:27.508845871 +0900
Modify: 2026-03-09 14:27:24.256378584 +0900
Change: 2026-03-09 14:27:24.256378584 +0900
Birth: 2026-03-09 14:27:24.256378584 +0900
steezer@DESKTOP-TF8J569:~/260309/linktest$ echo "this file is modified" > target
steezer@DESKTOP-TF8J569:~/260309/linktest$ stat target
File: target
Size: 22 Blocks: 8 IO Block: 4096 regular file
Device: 830h/2096d Inode: 50613 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ steezer) Gid: ( 1000/ steezer)
Access: 2026-03-09 14:27:27.508845871 +0900
Modify: 2026-03-09 14:28:56.713409192 +0900
Change: 2026-03-09 14:28:56.713409192 +0900
Birth: 2026-03-09 14:27:24.256378584 +0900
steezer@DESKTOP-TF8J569:~/260309/linktest$ stat s-link
File: s-link -> target
Size: 6 Blocks: 0 IO Block: 4096 symbolic link
Device: 830h/2096d Inode: 50614 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 1000/ steezer) Gid: ( 1000/ steezer)
Access: 2026-03-09 14:28:03.140178371 +0900
Modify: 2026-03-09 14:27:58.931085768 +0900
Change: 2026-03-09 14:27:58.931085768 +0900
Birth: 2026-03-09 14:27:58.931085768 +0900
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat target
this file is modified
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat s-link
this file is modified
steezer@DESKTOP-TF8J569:~/260309/linktest$ echo "this file is modified from s-link" > s-link
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat target
this file is modified from s-link
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat s-link
this file is modified from s-link
steezer@DESKTOP-TF8J569:~/260309/linktest$ stat target
File: target
Size: 34 Blocks: 8 IO Block: 4096 regular file
Device: 830h/2096d Inode: 50613 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ steezer) Gid: ( 1000/ steezer)
Access: 2026-03-09 14:29:52.954437728 +0900
Modify: 2026-03-09 14:29:46.910442374 +0900
Change: 2026-03-09 14:29:46.910442374 +0900
Birth: 2026-03-09 14:27:24.256378584 +0900
steezer@DESKTOP-TF8J569:~/260309/linktest$ stat s-link
File: s-link -> target
Size: 6 Blocks: 0 IO Block: 4096 symbolic link
Device: 830h/2096d Inode: 50614 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 1000/ steezer) Gid: ( 1000/ steezer)
Access: 2026-03-09 14:28:03.140178371 +0900
Modify: 2026-03-09 14:27:58.931085768 +0900
Change: 2026-03-09 14:27:58.931085768 +0900
Birth: 2026-03-09 14:27:58.931085768 +0900
steezer@DESKTOP-TF8J569:~/260309/linktest$ ls -li
total 4
50614 lrwxrwxrwx 1 steezer steezer 6 Mar 9 14:27 s-link -> target
50613 -rw-r--r-- 1 steezer steezer 34 Mar 9 14:29 target
steezer@DESKTOP-TF8J569:~/260309/linktest$ mv target moved_target
steezer@DESKTOP-TF8J569:~/260309/linktest$ ls -li
total 4
50613 -rw-r--r-- 1 steezer steezer 34 Mar 9 14:29 moved_target
50614 lrwxrwxrwx 1 steezer steezer 6 Mar 9 14:27 s-link -> target
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat moved_target
this file is modified from s-link
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat s-link
cat: s-link: No such file or directory
steezer@DESKTOP-TF8J569:~/260309/linktest$ mv moved_target target
steezer@DESKTOP-TF8J569:~/260309/linktest$ ls -li
total 4
50614 lrwxrwxrwx 1 steezer steezer 6 Mar 9 14:27 s-link -> target
50613 -rw-r--r-- 1 steezer steezer 34 Mar 9 14:29 target
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat s-link
this file is modified from s-link
steezer@DESKTOP-TF8J569:~/260309/linktest$ rm target s-link
하드 링크
대상 파일의 복제본을 만듦
steezer@DESKTOP-TF8J569:~/260309/linktest$ echo "this is a new target file" > new-target
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat new-target
this is a new target file
steezer@DESKTOP-TF8J569:~/260309/linktest$ ls -li
total 4
50613 -rw-r--r-- 1 steezer steezer 26 Mar 9 15:02 new-target
steezer@DESKTOP-TF8J569:~/260309/linktest$ ln new-target h-link
steezer@DESKTOP-TF8J569:~/260309/linktest$ ls -li
total 8
50613 -rw-r--r-- 2 steezer steezer 26 Mar 9 15:02 h-link
50613 -rw-r--r-- 2 steezer steezer 26 Mar 9 15:02 new-target
steezer@DESKTOP-TF8J569:~/260309/linktest$ stat new-target
File: new-target
Size: 26 Blocks: 8 IO Block: 4096 regular file
Device: 830h/2096d Inode: 50613 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 1000/ steezer) Gid: ( 1000/ steezer)
Access: 2026-03-09 15:02:10.456980514 +0900
Modify: 2026-03-09 15:02:02.324933075 +0900
Change: 2026-03-09 15:02:43.782923792 +0900
Birth: 2026-03-09 15:02:02.324933075 +0900
steezer@DESKTOP-TF8J569:~/260309/linktest$ stat h-link
File: h-link
Size: 26 Blocks: 8 IO Block: 4096 regular file
Device: 830h/2096d Inode: 50613 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 1000/ steezer) Gid: ( 1000/ steezer)
Access: 2026-03-09 15:02:10.456980514 +0900
Modify: 2026-03-09 15:02:02.324933075 +0900
Change: 2026-03-09 15:02:43.782923792 +0900
Birth: 2026-03-09 15:02:02.324933075 +0900
steezer@DESKTOP-TF8J569:~/260309/linktest$ echo "modified version of new target file" > new-target
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat new-target
modified version of new target file
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat h-link
modified version of new target file
steezer@DESKTOP-TF8J569:~/260309/linktest$ stat new-target
File: new-target
Size: 36 Blocks: 8 IO Block: 4096 regular file
Device: 830h/2096d Inode: 50613 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 1000/ steezer) Gid: ( 1000/ steezer)
Access: 2026-03-09 15:03:59.341043624 +0900
Modify: 2026-03-09 15:03:49.546245287 +0900
Change: 2026-03-09 15:03:49.546245287 +0900
Birth: 2026-03-09 15:02:02.324933075 +0900
steezer@DESKTOP-TF8J569:~/260309/linktest$ stat h-link
File: h-link
Size: 36 Blocks: 8 IO Block: 4096 regular file
Device: 830h/2096d Inode: 50613 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 1000/ steezer) Gid: ( 1000/ steezer)
Access: 2026-03-09 15:03:59.341043624 +0900
Modify: 2026-03-09 15:03:49.546245287 +0900
Change: 2026-03-09 15:03:49.546245287 +0900
Birth: 2026-03-09 15:02:02.324933075 +0900
steezer@DESKTOP-TF8J569:~/260309/linktest$ ls -li
total 8
50613 -rw-r--r-- 2 steezer steezer 36 Mar 9 15:03 h-link
50613 -rw-r--r-- 2 steezer steezer 36 Mar 9 15:03 new-target
steezer@DESKTOP-TF8J569:~/260309/linktest$ mv new-target new-target2
steezer@DESKTOP-TF8J569:~/260309/linktest$ ls -li
total 8
50613 -rw-r--r-- 2 steezer steezer 36 Mar 9 15:03 h-link
50613 -rw-r--r-- 2 steezer steezer 36 Mar 9 15:03 new-target2
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat h-link
modified version of new target file
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat new-target2
modified version of new target file
steezer@DESKTOP-TF8J569:~/260309/linktest$ rm new-target2
steezer@DESKTOP-TF8J569:~/260309/linktest$ ls -li
total 4
50613 -rw-r--r-- 1 steezer steezer 36 Mar 9 15:03 h-link
steezer@DESKTOP-TF8J569:~/260309/linktest$ cat h-link
modified version of new target file
사용자 종류
root 사용자
시스템 사용자
일반 사용자
root 사용자
root 사용자의 비밀번호를 복잡하게 설정, 주기적 변경
시스템 외부에서 root 사용자로 로그인 못하게 설정
su: 사용자 전환 명령어
su [옵션] [-] [사용자]
sudo: 특정 사용자의 권한으로 단일 명령 실행
sudo [옵션] [명령어]
runuser: 사용자 전환, 다른 사용자 권한으로 명령 실행 방법
runuser [옵션] -u 사용자 [명령어]
runuser [옵션] [-] 사용자 [명령어]
steezer@DESKTOP-TF8J569:~/260309$ cd ..
steezer@DESKTOP-TF8J569:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:102:105::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:103:106:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
syslog:x:104:111::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
uuidd:x:106:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:107:113::/nonexistent:/usr/sbin/nologin
landscape:x:108:115::/var/lib/landscape:/usr/sbin/nologin
steezer:x:1000:1000:,,,:/home/steezer:/bin/bash
steezer:x:1000:1000:,,,:/home/steezer:/bin/bash
사용자 이름, 비밀번호, 사용자 ID, 사용자 그룹 ID, 추가 설명, 홈 디렉터리, 로그인 셀
systemd-timesync:x:106:
input:x:107:
sgx:x:108:
kvm:x:109:
render:x:110:
syslog:x:111:
uuidd:x:112:
tcpdump:x:113:
_ssh:x:114:
landscape:x:115:
admin:x:116:
netdev:x:117:steezer
steezer:x:1000:
adm:x:4:syslog,steezer
사용자 그룹 이름, 비밀번호, 사용자 그룹 ID, 사용자 목록
steezer@DESKTOP-TF8J569:~$ sudo adduser alex
[sudo] password for steezer:
Adding user `alex' ...
Adding new group `alex' (1001) ...
Adding new user `alex' (1001) with group `alex' ...
Creating home directory `/home/alex' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for alex
Enter the new value, or press ENTER for the default
Full Name []: cat /etc/passwd
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] n
Changing the user information for alex
Enter the new value, or press ENTER for the default
Full Name [cat /etc/passwd]:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
steezer@DESKTOP-TF8J569:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:102:105::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:103:106:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
syslog:x:104:111::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
uuidd:x:106:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:107:113::/nonexistent:/usr/sbin/nologin
landscape:x:108:115::/var/lib/landscape:/usr/sbin/nologin
steezer:x:1000:1000:,,,:/home/steezer:/bin/bash
alex:x:1001:1001:cat /etc/passwd,,,:/home/alex:/bin/bash
steezer@DESKTOP-TF8J569:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,steezer
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:steezer
fax:x:21:
voice:x:22:
cdrom:x:24:steezer
floppy:x:25:steezer
tape:x:26:
sudo:x:27:steezer
audio:x:29:steezer
dip:x:30:steezer
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:steezer
sasl:x:45:
plugdev:x:46:steezer
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-network:x:102:
systemd-resolve:x:103:
crontab:x:104:
messagebus:x:105:
systemd-timesync:x:106:
input:x:107:
sgx:x:108:
kvm:x:109:
render:x:110:
syslog:x:111:
uuidd:x:112:
tcpdump:x:113:
_ssh:x:114:
landscape:x:115:
admin:x:116:
netdev:x:117:steezer
steezer:x:1000:
alex:x:1001:
steezer@DESKTOP-TF8J569:~$ sudo ls -al /home/alex
total 20
drwxr-x--- 2 alex alex 4096 Mar 9 15:38 .
drwxr-xr-x 4 root root 4096 Mar 9 15:38 ..
-rw-r--r-- 1 alex alex 220 Mar 9 15:38 .bash_logout
-rw-r--r-- 1 alex alex 3771 Mar 9 15:38 .bashrc
-rw-r--r-- 1 alex alex 807 Mar 9 15:38 .profile
steezer@DESKTOP-TF8J569:~$ sudo deluser --remove-home alex
Looking for files to backup/remove ...
Removing files ...
Removing user `alex' ...
Warning: group `alex' has no more members.
Done.
steezer@DESKTOP-TF8J569:~$ group alex /etc/passwd
Command 'group' not found, did you mean:
command 'groups' from deb coreutils (8.32-4.1ubuntu1.2)
Try: sudo apt install <deb name>
steezer@DESKTOP-TF8J569:~$ grep john /etc/passwd
steezer@DESKTOP-TF8J569:~$ grep alex /etc/passwd
steezer@DESKTOP-TF8J569:~$ grep alex /etc/group
steezer@DESKTOP-TF8J569:~$ sudo ls -al /home/alex
ls: cannot access '/home/alex': No such file or directory
steezer@DESKTOP-TF8J569:~$ sudo addgroup animals
Adding group `animals' (GID 1001) ...
Done.
steezer@DESKTOP-TF8J569:~$ grep animals /etc/group
animals:x:1001:
steezer@DESKTOP-TF8J569:~$ sudo delgroup animals
Removing group `animals' ...
Done.
steezer@DESKTOP-TF8J569:~$ sudo addgroup animals
Adding group `animals' (GID 1001) ...
Done.
steezer@DESKTOP-TF8J569:~$ sudo adduser --ingroup animals dog
Adding user `dog' ...
Adding new user `dog' (1001) with group `animals' ...
Creating home directory `/home/dog' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for dog
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
steezer@DESKTOP-TF8J569:~$ sudo add user --ingroup animals pig
sudo: add: command not found
steezer@DESKTOP-TF8J569:~$ sudo adduser --ingroup animals pig
Adding user `pig' ...
Adding new user `pig' (1002) with group `animals' ...
Creating home directory `/home/pig' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for pig
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
steezer@DESKTOP-TF8J569:~$ sudo adduser --ingroup animals duck
Adding user `duck' ...
Adding new user `duck' (1003) with group `animals' ...
Creating home directory `/home/duck' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for duck
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
steezer@DESKTOP-TF8J569:~$ sudo addgroup fruits
Adding group `fruits' (GID 1002) ...
Done.
steezer@DESKTOP-TF8J569:~$ sudo adduser --ingroup fruits mango
Adding user `mango' ...
Adding new user `mango' (1004) with group `fruits' ...
Creating home directory `/home/mango' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for mango
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
steezer@DESKTOP-TF8J569:~$ sudo adduser --ingroup fruits banana
Adding user `banana' ...
Adding new user `banana' (1005) with group `fruits' ...
Creating home directory `/home/banana' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for banana
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
steezer@DESKTOP-TF8J569:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,steezer
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:steezer
fax:x:21:
voice:x:22:
cdrom:x:24:steezer
floppy:x:25:steezer
tape:x:26:
sudo:x:27:steezer
audio:x:29:steezer
dip:x:30:steezer
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:steezer
sasl:x:45:
plugdev:x:46:steezer
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-network:x:102:
systemd-resolve:x:103:
crontab:x:104:
messagebus:x:105:
systemd-timesync:x:106:
input:x:107:
sgx:x:108:
kvm:x:109:
render:x:110:
syslog:x:111:
uuidd:x:112:
tcpdump:x:113:
_ssh:x:114:
landscape:x:115:
admin:x:116:
netdev:x:117:steezer
steezer:x:1000:
animals:x:1001:
fruits:x:1002:
steezer@DESKTOP-TF8J569:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:102:105::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:103:106:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
syslog:x:104:111::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
uuidd:x:106:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:107:113::/nonexistent:/usr/sbin/nologin
landscape:x:108:115::/var/lib/landscape:/usr/sbin/nologin
steezer:x:1000:1000:,,,:/home/steezer:/bin/bash
dog:x:1001:1001:,,,:/home/dog:/bin/bash
pig:x:1002:1001:,,,:/home/pig:/bin/bash
duck:x:1003:1001:,,,:/home/duck:/bin/bash
mango:x:1004:1002:,,,:/home/mango:/bin/bash
banana:x:1005:1002:,,,:/home/banana:/bin/bash
steezer@DESKTOP-TF8J569:~$ whoami
steezer
steezer@DESKTOP-TF8J569:~$ pwd
/home/steezer
steezer@DESKTOP-TF8J569:~$ su dog
Password:
dog@DESKTOP-TF8J569:/home/steezer$ whoami
dog
dog@DESKTOP-TF8J569:/home/steezer$ pwd
/home/steezer
dog@DESKTOP-TF8J569:/home/steezer$ su steezer
Password:
steezer@DESKTOP-TF8J569:~$ whoami
steezer
steezer@DESKTOP-TF8J569:~$ pwd
/home/steezer
steezer@DESKTOP-TF8J569:~$ su - dog
Password:
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 6.6.87.2-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Mon Mar 9 15:49:24 KST 2026
System load: 0.0 Processes: 38
Usage of /: 0.1% of 1006.85GB Users logged in: 1
Memory usage: 5% IPv4 address for eth0: 172.30.74.83
Swap usage: 0%
* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
just raised the bar for easy, resilient and secure K8s cluster deployment.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
This message is shown once a day. To disable it please create the
/home/dog/.hushlogin file.
dog@DESKTOP-TF8J569:~$ whoami
dog
dog@DESKTOP-TF8J569:~$ pwd
/home/dog
dog@DESKTOP-TF8J569:~$ su - steezer
Password:
steezer@DESKTOP-TF8J569:~$ whoami
steezer
steezer@DESKTOP-TF8J569:~$ pwd
/home/steezer
steezer@DESKTOP-TF8J569:~$ su dog -c whoami
Password:
dog
steezer@DESKTOP-TF8J569:~$ su dog -c "touch /tmp/dogs_file"
Password:
steezer@DESKTOP-TF8J569:~$ whoami
steezer
steezer@DESKTOP-TF8J569:~$ ls -al /tmp/dogs_file
-rw-r--r-- 1 dog animals 0 Mar 9 15:51 /tmp/dogs_file
steezer@DESKTOP-TF8J569:~$ rm /tmp/dogs_file
rm: remove write-protected regular empty file '/tmp/dogs_file'? y
rm: cannot remove '/tmp/dogs_file': Operation not permitted
steezer@DESKTOP-TF8J569:~$ su dog -c "rm /tmp/dogs_file"
Password:
steezer@DESKTOP-TF8J569:~$ ls -al /tmp/dogs_file
ls: cannot access '/tmp/dogs_file': No such file or directory
steezer@DESKTOP-TF8J569:~$ su pig
Password:
pig@DESKTOP-TF8J569:/home/steezer$ passwd
Changing password for pig.
Current password:
New password:
Retype new password:
You must choose a longer password.
New password:
Retype new password:
You must choose a longer password.
New password:
Retype new password:
You must choose a longer password.
passwd: Authentication token manipulation error
passwd: password unchanged
pig@DESKTOP-TF8J569:/home/steezer$ su pig
Password:
pig@DESKTOP-TF8J569:/home/steezer$ su steezer
Password:
steezer@DESKTOP-TF8J569:~$ sudo su
root@DESKTOP-TF8J569:/home/steezer# 1234
1234: command not found
root@DESKTOP-TF8J569:/home/steezer# passwd pig
New password:
Retype new password:
passwd: password updated successfully
정리
for user in banana dog duck mango pig; do sudo deluser --remove-home $user; done
steezer@DESKTOP-TF8J569:~$ grep -E "banana|dog|duck|mango|pig" /etc/passwd
steezer@DESKTOP-TF8J569:~$ ls /home/
steezer
파일 소유권
파일이 사용자의 소유임을 나타내는 속성
파일 소유권 변경
chown [옵션] 사용자[:그룹] 파일
steezer@DESKTOP-TF8J569:~$ echo "hello world" > normal_file
steezer@DESKTOP-TF8J569:~$ ls -l normal_file
-rw-r--r-- 1 steezer steezer 12 Mar 9 16:39 normal_file
steezer@DESKTOP-TF8J569:~$ sudo chown dog normal_file
steezer@DESKTOP-TF8J569:~$ ls -al normal_file
-rw-r--r-- 1 dog steezer 12 Mar 9 16:39 normal_file
steezer@DESKTOP-TF8J569:~$ sudo chown dog:animals normal_file
steezer@DESKTOP-TF8J569:~$ ls -al normal_file
-rw-r--r-- 1 dog animals 12 Mar 9 16:39 normal_file
pig@DESKTOP-TF8J569:/tmp/playground$ ls -l msg_from_dog
-rw-r--r-- 1 dog animals 14 Mar 9 17:28 msg_from_dog
pig@DESKTOP-TF8J569:/tmp/playground$ echo "hey~" > msg_from_dog
-bash: msg_from_dog: Permission denied
pig@DESKTOP-TF8J569:/tmp/playground$ su - dog
Password:
dog@DESKTOP-TF8J569:~$ chmod g+w msg_from_dog
chmod: cannot access 'msg_from_dog': No such file or directory
dog@DESKTOP-TF8J569:~$ ls -l msg_from_dog
ls: cannot access 'msg_from_dog': No such file or directory
dog@DESKTOP-TF8J569:~$ cd /tmp/playground
dog@DESKTOP-TF8J569:/tmp/playground$ chmod g+w msg_from_dog
dog@DESKTOP-TF8J569:/tmp/playground$ ls -l msg_from_dog
-rw-rw-r-- 1 dog animals 14 Mar 9 17:28 msg_from_dog
dog@DESKTOP-TF8J569:/tmp/playground$ su - pig
Password:
pig@DESKTOP-TF8J569:~$ cd /tmp/playground
pig@DESKTOP-TF8J569:/tmp/playground$ echo "hey~" > msg_from_dog
pig@DESKTOP-TF8J569:/tmp/playground$ cat msg_from_dog
hey~
pig@DESKTOP-TF8J569:/tmp/playground$ su - dog
Password:
dog@DESKTOP-TF8J569:~$ cd /tmp/playground ls -l
-bash: cd: too many arguments
dog@DESKTOP-TF8J569:~$ cd /tmp/playground
dog@DESKTOP-TF8J569:/tmp/playground$ ls -l
total 4
-rw-rw-r-- 1 dog animals 5 Mar 9 17:38 msg_from_dog
dog@DESKTOP-TF8J569:/tmp/playground$ chmod u+x msg_from_dog
dog@DESKTOP-TF8J569:/tmp/playground$ ls -l
total 4
-rwxrw-r-- 1 dog animals 5 Mar 9 17:38 msg_from_dog
dog@DESKTOP-TF8J569:/tmp/playground$ ./msg_from_dog
./msg_from_dog: line 1: hey~: command not found
dog@DESKTOP-TF8J569:/tmp/playground$ /tmp/playground/msg_from_dog
/tmp/playground/msg_from_dog: line 1: hey~: command not found
dog@DESKTOP-TF8J569:/tmp/playground$ nano exec_test
dog@DESKTOP-TF8J569:/tmp/playground$ echo "pwd" > exec_test
dog@DESKTOP-TF8J569:/tmp/playground$ echo "whoami" >> exec_test
dog@DESKTOP-TF8J569:/tmp/playground$ echo "ls -al" >> exec_test
dog@DESKTOP-TF8J569:/tmp/playground$ cat exec_test
pwd
whoami
ls -al
dog@DESKTOP-TF8J569:/tmp/playground$ ls -l exec_test
-rw-r--r-- 1 dog animals 18 Mar 9 17:43 exec_test
dog@DESKTOP-TF8J569:/tmp/playground$ chmod a+x exec_test
dog@DESKTOP-TF8J569:/tmp/playground$ ls -l
total 8
-rwxr-xr-x 1 dog animals 18 Mar 9 17:43 exec_test
-rwxrw-r-- 1 dog animals 5 Mar 9 17:38 msg_from_dog
dog@DESKTOP-TF8J569:/tmp/playground$ ./exec_test
/tmp/playground
dog
total 16
drwxrwxrwx 2 root root 4096 Mar 9 17:43 .
drwxrwxrwt 8 root root 4096 Mar 9 17:26 ..
-rwxr-xr-x 1 dog animals 18 Mar 9 17:43 exec_test
-rwxrw-r-- 1 dog animals 5 Mar 9 17:38 msg_from_dog
dog@DESKTOP-TF8J569:/tmp/playground$
파일 권한 변경
steezer@DESKTOP-TF8J569:~$ echo "hello" > greetings
steezer@DESKTOP-TF8J569:~$ ls -l greetings
-rw-r--r-- 1 steezer steezer 6 Mar 9 17:24 greetings
steezer@DESKTOP-TF8J569:~$ chmod 777 greetings
steezer@DESKTOP-TF8J569:~$ ls -l greetings
-rwxrwxrwx 1 steezer steezer 6 Mar 9 17:24 greetings
steezer@DESKTOP-TF8J569:~$ chmod 644 greetings
steezer@DESKTOP-TF8J569:~$ ls -l greetings
-rw-r--r-- 1 steezer steezer 6 Mar 9 17:24 greetings
steezer@DESKTOP-TF8J569:~$ chmod 000 greetings
steezer@DESKTOP-TF8J569:~$ ls -l greetings
---------- 1 steezer steezer 6 Mar 9 17:24 greetings
steezer@DESKTOP-TF8J569:~$ cat greetings
cat: greetings: Permission denied
steezer@DESKTOP-TF8J569:~$ chmod 644 greetings
steezer@DESKTOP-TF8J569:~$ ls -l greetings
-rw-r--r-- 1 steezer steezer 6 Mar 9 17:24 greetings
steezer@DESKTOP-TF8J569:~$ ls -l greetings
-rw-r--r-- 1 steezer steezer 6 Mar 9 17:24 greetings
steezer@DESKTOP-TF8J569:~$ chmod a+w greetings
steezer@DESKTOP-TF8J569:~$ ls -l greetings
-rw-rw-rw- 1 steezer steezer 6 Mar 9 17:24 greetings
steezer@DESKTOP-TF8J569:~$ chmod a-w greetings
steezer@DESKTOP-TF8J569:~$ ls -l greetings
-r--r--r-- 1 steezer steezer 6 Mar 9 17:24 greetings
steezer@DESKTOP-TF8J569:~$ chmod ug=rw greetings
steezer@DESKTOP-TF8J569:~$ ls -l greetings
-rw-rw-r-- 1 steezer steezer 6 Mar 9 17:24 greetings
steezer@DESKTOP-TF8J569:~$ chmod g-w greetings
steezer@DESKTOP-TF8J569:~$ ls -l greetings
-rw-r--r-- 1 steezer steezer 6 Mar 9 17:24 greetings
steezer@DESKTOP-TF8J569:~$ cd /tmp
steezer@DESKTOP-TF8J569:/tmp$ sudo mkdir playground/
[sudo] password for steezer:
steezer@DESKTOP-TF8J569:/tmp$ ls -l
total 20
drwxr-xr-x 2 root root 4096 Mar 9 17:26 playground
drwx------ 3 root root 4096 Mar 9 17:08 snap-private-tmp
drwx------ 3 root root 4096 Mar 9 09:52 systemd-private-52544ad5ad4d4952a5c47ee7d51d3849-systemd-logind.service-cIcWBV
drwx------ 3 root root 4096 Mar 9 09:52 systemd-private-52544ad5ad4d4952a5c47ee7d51d3849-systemd-resolved.service-Qc5yIZ
drwx------ 3 root root 4096 Mar 9 09:52 systemd-private-52544ad5ad4d4952a5c47ee7d51d3849-systemd-timesyncd.service-4ZHUEj
steezer@DESKTOP-TF8J569:/tmp$ sudo chmod 777 playground/
steezer@DESKTOP-TF8J569:/tmp$ ls -l
total 20
drwxrwxrwx 2 root root 4096 Mar 9 17:26 playground
drwx------ 3 root root 4096 Mar 9 17:08 snap-private-tmp
drwx------ 3 root root 4096 Mar 9 09:52 systemd-private-52544ad5ad4d4952a5c47ee7d51d3849-systemd-logind.service-cIcWBV
drwx------ 3 root root 4096 Mar 9 09:52 systemd-private-52544ad5ad4d4952a5c47ee7d51d3849-systemd-resolved.service-Qc5yIZ
drwx------ 3 root root 4096 Mar 9 09:52 systemd-private-52544ad5ad4d4952a5c47ee7d51d3849-systemd-timesyncd.service-4ZHUEj
steezer@DESKTOP-TF8J569:/tmp$ su - dog
Password:
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 6.6.87.2-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Mon Mar 9 17:27:21 KST 2026
System load: 0.0 Processes: 40
Usage of /: 0.2% of 1006.85GB Users logged in: 1
Memory usage: 7% IPv4 address for eth0: 172.30.74.83
Swap usage: 0%
* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
just raised the bar for easy, resilient and secure K8s cluster deployment.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
This message is shown once a day. To disable it please create the
/home/dog/.hushlogin file.
dog@DESKTOP-TF8J569:~$ cd /tmp/playground/
dog@DESKTOP-TF8J569:/tmp/playground$ pwd
/tmp/playground
dog@DESKTOP-TF8J569:/tmp/playground$ echo "hello friends" > msg_from_dog
dog@DESKTOP-TF8J569:/tmp/playground$ ls -l msg_from_dog
-rw-r--r-- 1 dog animals 14 Mar 9 17:28 msg_from_dog
dog@DESKTOP-TF8J569:/tmp/playground$ cat msg_from_dog
hello friends
파일 권한
r: 파일의 내용을 조회하는 권한
w: 파일의 내용을 새롭게 작성하는 권한
x: 파일에 쓰여져 있는 내용을 실행하는 권한(명령어나 코드)
디렉터리(폴더) 권한
r: 디렉터리에 있는 파일 목록을 읽을 수 있는 권한(ls 할 수 있다)
w: 진입한 디렉터리에서 파일 생성, 삭제, 이름 변경 등을 할 수 있는 권한
x: 디렉터리에 접근할 수 있는 권한(cd 진입)
=> 권한을 설정하는 명령어 자체는 완벽히 똑같다.
'로보테크AI' 카테고리의 다른 글
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/03/11[ROS2] (0) | 2026.03.11 |
|---|---|
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/03/10 (0) | 2026.03.10 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/03/06[발표회1] (0) | 2026.03.06 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/03/05 (0) | 2026.03.05 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/03/04 (0) | 2026.03.04 |