๐๏ธ ํ์ผ ์ ๊ทผ ๊ถํ ๊ด๋ฆฌํ๊ธฐ
1๏ธโฃ ํ์ผ ์์ฑ ์ดํดํ๊ธฐ
$ ls -l
-rw-r--r-- 1 user group 120 Sep 15 10:00 test.txt
# - โ ํ์ผ ์ข
๋ฅ(-=์ผ๋ฐ ํ์ผ, d=๋๋ ํ ๋ฆฌ)
# rw- โ ์์ ์(user)๋ ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ฐ๋ฅ
# r-- โ ๊ทธ๋ฃน(group)์ ์ฝ๊ธฐ๋ง ๊ฐ๋ฅ
# r-- โ ๊ธฐํ(other)๋ ์ฝ๊ธฐ๋ง ๊ฐ๋ฅ
# user โ ์์ ์ ์ด๋ฆ
# group โ ๊ทธ๋ฃน ์ด๋ฆ
# 120 โ ํ์ผ ํฌ๊ธฐ(๋ฐ์ดํธ)
# Sep 15 ... โ ์ต์ข
์์ ์๊ฐ
# test.txt โ ํ์ผ ์ด๋ฆ
๐ ์ฆ, rw-r--r-- ๋ ์์ ์๋ ์ฝ๊ธฐ/์ฐ๊ธฐ, ๊ทธ๋ฃน๊ณผ ๊ธฐํ๋ ์ฝ๊ธฐ๋ง ๊ฐ๋ฅํ๋ค๋ ์๋ฏธ์์.
2๏ธโฃ ๊ถํ ๋ณ๊ฒฝ ๋ฐฉ๋ฒ
(1) ๋ฌธ์ ๋ชจ๋ (๊ธฐํธ ๋ฐฉ์)
chmod u-w test.txt # ์์ ์(user) ์ฐ๊ธฐ ๊ถํ ์ ๊ฑฐ
chmod g+wx test.txt # ๊ทธ๋ฃน(group)์ ์ฐ๊ธฐ/์คํ ๊ถํ ์ถ๊ฐ
chmod o-r test.txt # ๊ธฐํ(other) ์ฝ๊ธฐ ๊ถํ ์ ๊ฑฐ
u = ์์ ์ (user)
g = ๊ทธ๋ฃน (group)
o = ๊ธฐํ (other)
a = ๋ชจ๋ (all)
(2) ์ซ์ ๋ชจ๋ (8์ง์ ๋ฐฉ์)
๊ถํ ์ ์: r=4, w=2, x=1
ํฉ์ฐ ๊ฒฐ๊ณผ:
rwx = 7
rw- = 6
r-- = 4
chmod 755 test.txt
# u=rwx (7), g=rx (5), o=rx (5)
chmod 700 test.txt
# u=rwx (7), g=--- (0), o=--- (0)
๐ ์๊ฐํ:
flowchart TD
A[์์ ์ user] -->|r=4| R1[์ฝ๊ธฐ]
A -->|w=2| W1[์ฐ๊ธฐ]
A -->|x=1| X1[์คํ]
B[๊ทธ๋ฃน group] --> R2[์ฝ๊ธฐ]
B --> W2[์ฐ๊ธฐ]
B --> X2[์คํ]
C[๊ธฐํ other] --> R3[์ฝ๊ธฐ]
C --> W3[์ฐ๊ธฐ]
C --> X3[์คํ]
3๏ธโฃ ๊ธฐ๋ณธ ๊ถํ๊ณผ umask
ํ์ผ ์์ฑ ์ ๊ธฐ๋ณธ ๊ถํ:
์ผ๋ฐ ํ์ผ: 664 โ rw-rw-r--
๋๋ ํ ๋ฆฌ: 775 โ rwxrwxr-x
umask: โ๋น ์ง๋ ๊ถํโ์ ์๋ฏธ
(์ฆ, ํ์ฉํ์ง ์์ ๊ถํ์ ์ง์ )
umask # ํ์ฌ ๊ฐ ํ์ธ (๋ณดํต 0002)
umask -S # ๋ฌธ์ ๋ฐฉ์์ผ๋ก ํ์ธ (u=rwx,g=rwx,o=rx)
umask 077 # ๋ค๋ฅธ ์ฌ์ฉ์ ๊ถํ ๋ชจ๋ ์ฐจ๋จ
touch private.txt
ls -l private.txt
# ๊ฒฐ๊ณผ: -rw------- (์์ ์๋ง ์ ๊ทผ ๊ฐ๋ฅ)
4๏ธโฃ ํน์ ๊ถํ (SetUID, SetGID, Sticky Bit)
๊ถํ์ 4์๋ฆฌ๋ก ํ๊ธฐํ ๋ ์์๋ฆฌ๊ฐ ํน์ ๊ถํ
4xxx โ SetUID
2xxx โ SetGID
1xxx โ Sticky Bit
chmod 4755 program # SetUID ์ ์ฉ (์์ ์ ๊ถํ์ผ๋ก ์คํ)
chmod 2755 project # SetGID ์ ์ฉ (๊ทธ๋ฃน ๊ถํ ์์)
chmod 1777 /tmp # Sticky Bit ์ ์ฉ (๋ณธ์ธ๋ง ์ญ์ ๊ฐ๋ฅ)
์์:
ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root ... passwd
# s โ root ๊ถํ์ผ๋ก ์คํ๋จ (SetUID)
ls -ld /tmp
drwxrwxrwt 14 root root ... tmp
# t โ sticky bit (๋ค๋ฅธ ์ฌ๋ ํ์ผ์ ๋ชป ์ง์)
5๏ธโฃ ์ค์ต ์์
ls -l test.txt โ ๊ถํ ํ์ธ
chmod g+x test.txt โ ๊ทธ๋ฃน ์คํ ๊ถํ ์ถ๊ฐ
chmod u-w test.txt โ ์์ ์ ์ฐ๊ธฐ ์ ๊ฑฐ
chmod 700 test.txt โ ๊ฒฐ๊ณผ -rwx------
umask โ ํ์ฌ ๊ฐ ํ์ธ
ls -l test.txt โ ๋ณ๊ฒฝ ํ์ธ
umask 077 โ ๋ณด์ ๊ฐํ
touch private.txt && ls -l private.txt โ -rw------- ์์ฑ ํ์ธ
6๏ธโฃ ํ์ ์์ ์์ฃผ ์ฐ๋ ๊ถํ ์ค์ ๐
์น ์๋ฒ ๋ก๊ทธ ๋๋ ํ ๋ฆฌ: chmod 750 /var/log/httpd
โ ๊ด๋ฆฌ์์ ์น์๋ฒ ๊ทธ๋ฃน๋ง ์ ๊ทผ ๊ฐ๋ฅ
/tmp ๋๋ ํ ๋ฆฌ: ํญ์ 1777 (rwxrwxrwt)
โ ๋๊ตฌ๋ ํ์ผ ๋ง๋ค ์ ์์ง๋ง ์๊ธฐ ๊ฒ๋ง ์ญ์ ๊ฐ๋ฅ
๊ฐ์ธ ํค ํ์ผ (~/.ssh/id_rsa): chmod 600
โ ์ค๋๋ง ์ฝ๊ณ ์ธ ์ ์์ด์ผ ํจ (๋ณด์ ํ์)
๊ณต์ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ: chmod 2775 project
โ ์ ํ์ผ์ด ์๋์ผ๋ก ๊ทธ๋ฃน ์์ ์์(SetGID)
โ ์ ๋ฆฌํ๋ฉด,
ls -l ๋ก ๊ถํ ํ์ธ
chmod ๋ก ๊ถํ ์์ (๋ฌธ์/์ซ์ ๋ชจ๋)
umask ๋ก ๊ธฐ๋ณธ ๊ถํ ์ ์ด
ํน์ ๋นํธ (SetUID, SetGID, Sticky) ๋ก ํ์ ์ ์ด
'Cloud Engineering Bootcamp > 5. Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
07. ๋ฆฌ๋ ์ค ์ฌ์ฉ์ ๊ด๋ฆฌ (0) | 2025.09.15 |
---|---|
06. ํ๋ก์ธ์ค ๊ด๋ฆฌํ๊ธฐ (0) | 2025.09.15 |
04. LINUX VI ๋ฌธ์ ํธ์ง๊ธฐ (0) | 2025.09.12 |
03. Linux ๋ช ๋ น์ด ์ ๋ฆฌ (0) | 2025.09.12 |
02. Linux ๊ธฐ์ด (0) | 2025.09.12 |