• ABOUT
  • PORTFOLIO
  • POSTS
  • GUESTBOOK

ยฉ 2025 BlueCool12 All rights reserved.

2025.09.16Linux

๐Ÿ” chownยทchmod๋กœ ๋ฐฐ์šฐ๋Š” ๋ฆฌ๋ˆ…์Šค ํŒŒ์ผ ๊ถŒํ•œ ๊ด€๋ฆฌ

1. ๋ฆฌ๋ˆ…์Šค ์‚ฌ์šฉ์ž(User)์™€ ๊ทธ๋ฃน(Group), ๊ถŒํ•œ ๊ตฌ์กฐ

๋ฆฌ๋ˆ…์Šค์˜ ๊ถŒํ•œ ๊ด€๋ฆฌ๋Š” ์‚ฌ์šฉ์ž์™€ ๊ทธ๋ฃน์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

แ„€แ…จแ„Œแ…ฅแ†ผ แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผ แ„‹แ…จแ„‰แ…ต.webp*Ubuntu/Debian ๊ธฐ์ค€ 

sudo adduser <์œ ์ €๋ช…> ๋ช…๋ น์–ด๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•œ ํ›„ Full Name / Room / Phone / Other ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

ํ•ด๋‹น ์ •๋ณด๋Š” /etc/passwd ํŒŒ์ผ์˜ GECOS ํ•„๋“œ์— ์ €์žฅ๋˜๋ฉฐ ํ•„์š” ์—†์„ ๊ฒฝ์šฐ Enter๋กœ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ˜„์žฌ ๋กœ๊ทธ์ธ๋œ ๊ณ„์ •์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

แ„€แ…จแ„Œแ…ฅแ†ผ แ„Œแ…ฅแ†ผแ„‡แ…ฉ แ„’แ…ชแ†จแ„‹แ…ตแ†ซ แ„‹แ…จแ„‰แ…ต.webpwhoami ๋ช…๋ น์–ด๋Š” ํ˜„์žฌ ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž๋ช…์„ ์ถœ๋ ฅํ•œ๋‹ค. id๋Š” ํ˜„์žฌ ์‚ฌ์šฉ์ž์˜ UID/GID์™€ ์†Œ์† ๊ทธ๋ฃน๋“ค์„ ์ถœ๋ ฅํ•˜๊ณ  groups <์œ ์ €๋ช…> ๋ช…๋ น์–ด๋Š” ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ์†ํ•œ ๊ทธ๋ฃน์˜ ๋ชฉ๋ก์„ ์ถœ๋ ฅํ•œ๋‹ค. 

๋˜ํ•œ sudo ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ sudo -iu <์œ ์ €๋ช…> ๋ช…๋ น์–ด๋กœ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

แ„€แ…ฏแ†ซแ„’แ…กแ†ซ แ„’แ…ชแ†จแ„‹แ…ตแ†ซ แ„‹แ…จแ„‰แ…ต.webpls -lh ๋ช…๋ น์–ด๋Š” ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๊ถŒํ•œ, ์†Œ์œ ์ž, ๊ทธ๋ฃน, ํฌ๊ธฐ ๋“ฑ์„ ํ•จ๊ป˜ ์ถœ๋ ฅํ•œ๋‹ค. project ํด๋”์˜ ๊ฒฝ์šฐ ์†Œ์œ ์ž/๊ทธ๋ฃน์ด root:root ์ด๊ณ  ๊ถŒํ•œ์ด *755์ด๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ์“ฐ๊ธฐ(w) ๊ถŒํ•œ์ด ์—†์–ด Permission denied๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 


*๊ถŒํ•œ 8์ง„์ˆ˜ ํ‘œ๊ธฐ
๊ฐ ์ž๋ฆฌ(์†Œ์œ ์ž/๊ทธ๋ฃน/๊ธฐํƒ€)๋ฅผ 8์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ r = 4 (read) w = 2 (write) x = 1 (execute) ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

ex) 755
์†Œ์œ ์ž: 7 = 4 + 2 + 1 = rwx
๊ทธ๋ฃน: 5 = 4 + 1 = r-x
๊ธฐํƒ€: 5 = 4 + 1 = r-x


๋”ฐ๋ผ์„œ sudo ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ณ„์ •์œผ๋กœ ์ „ํ™˜ํ•œ ํ›„ chown ๋ช…๋ น์–ด๋กœ ์†Œ์œ ๊ถŒ์„ ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ณ„์ •์œผ๋กœ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค. 

แ„€แ…ฏแ†ซแ„’แ…กแ†ซ แ„‡แ…งแ†ซแ„€แ…งแ†ผ แ„‹แ…จแ„‰แ…ต.webpls -lh ๋ช…๋ น์–ด์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ๊ถŒํ•œ ๋ณ€๊ฒฝ์ด ๋ฐ˜์˜๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ  ์ดํ›„ ํŒŒ์ผ ์ƒ์„ฑ๋„ ์ •์ƒ์ ์œผ๋กœ ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 


2. chown

chown์€ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์†Œ์œ ์ž(owner)์™€ ๊ทธ๋ฃน(group)์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. 

chown user file       # ์†Œ์œ ์ž๋งŒ ๋ณ€๊ฒฝ (๊ทธ๋ฃน ์œ ์ง€)
chown user:group file # ์†Œ์œ ์ž์™€ ๊ทธ๋ฃน ๋ณ€๊ฒฝ
chown user: file # ์†Œ์œ ์ž ๋ณ€๊ฒฝ + ๊ทธ๋ฃน์„ ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ์ฃผ ๊ทธ๋ฃน์œผ๋กœ ๋ณ€๊ฒฝ
chown :group fileโ€‹ # ๊ทธ๋ฃน๋งŒ ๋ณ€๊ฒฝ

ํ•จ๊ป˜ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

  • -R, --recursive : ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๊นŒ์ง€ ์žฌ๊ท€ ์ ์šฉ
  • -v, --verbose : ์ฒ˜๋ฆฌํ•œ ํ•ญ๋ชฉ ์ถœ๋ ฅ
  • -c, --changes : ์‹ค์ œ ๋ณ€๊ฒฝ๋œ ํ•ญ๋ชฉ๋งŒ ์ถœ๋ ฅ
  • -f, --silent : ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ตœ์†Œํ™”


[์˜ˆ์‹œ]

# ๋””๋ ‰ํ„ฐ๋ฆฌ ์†Œ์œ ์ž/๊ทธ๋ฃน์„ bluecool๋กœ ๋ณ€๊ฒฝ
sudo chown bluecool:bluecool /srv/project

# ์žฌ๊ท€์ ์œผ๋กœ ํ•˜์œ„๊นŒ์ง€ ๋ชจ๋‘ ๋ณ€๊ฒฝ
sudo chown -R bluecool:bluecool /srv/project

# ๊ทธ๋ฃน๋งŒ devteam์œผ๋กœ ๋ณ€๊ฒฝ
sudo chown :devteam /srv/project

์†Œ์œ ์ž ๋ณ€๊ฒฝ์€ root ๋˜๋Š” sudo ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋‹ค. ๋˜ํ•œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋ถ€๋ชจ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ w(์“ฐ๊ธฐ) + x(์ง„์ž…) ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. 


3. chmod

chmod๋Š” ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๊ถŒํ•œ(rwx)์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. 

chmod [์˜ต์…˜] <๋ชจ๋“œ> <๊ฒฝ๋กœ...>

๊ถŒํ•œ ์„ค์ • ๋ฐฉ๋ฒ•์€ ์ˆซ์ž(8์ง„์ˆ˜) ๋ชจ๋“œ, ๊ธฐํ˜ธ ๋ชจ๋“œ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

[๊ธฐํ˜ธ ๋ชจ๋“œ ์š”์†Œ]
๋Œ€์ƒ: u(์†Œ์œ ์ž) g(๊ทธ๋ฃน) o(๊ธฐํƒ€) a(์ „์ฒด)
์—ฐ์‚ฐ: +(์ถ”๊ฐ€) -(์ œ๊ฑฐ) =(์ •ํ™•ํžˆ ์ง€์ •)
๊ถŒํ•œ: r(4) ์ฝ๊ธฐ / w(2) ์“ฐ๊ธฐ / x(1) ์‹คํ–‰

[์˜ˆ์‹œ]

# ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๊ถŒํ•œ ๋ถ€์—ฌ
chmod +x deploy.sh

# ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ณต์œ (๊ทธ๋ฃน ์“ฐ๊ธฐ ํ—ˆ์šฉ + setgid)
chmod 2775 /srv/project

# ๋ฏผ๊ฐ ํŒŒ์ผ/SSH ํ‚ค ๊ถŒํ•œ ์„ค์ • (์†Œ์œ ์ž๋งŒ rw)
chmod 600 ~/.ssh/id_rsa

# ๊ธฐํ˜ธ ๋ชจ๋“œ๋กœ ์ •ํ™•ํžˆ ์ง€์ •
chmod u=rwx,g=rx,o=rx app


*ํŠน์ˆ˜ ๊ถŒํ•œ ๋น„ํŠธ
๋ฆฌ๋ˆ…์Šค์—๋Š” ์ผ๋ฐ˜ ๊ถŒํ•œ ์™ธ์— ํŠน์ˆ˜ ๋น„ํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

1) setuid (4xxx)

chmod 4755 fileโ€‹

์‹คํ–‰ ํŒŒ์ผ์„ ํŒŒ์ผ ์†Œ์œ ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.

2) setgid (2xxx)

chmod 2775 directory

ํŒŒ์ผ: ์‹คํ–‰ ์‹œ ํŒŒ์ผ์˜ ๊ทธ๋ฃน ๊ถŒํ•œ์œผ๋กœ ๋™์ž‘
๋””๋ ‰ํ„ฐ๋ฆฌ: ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๊ทธ๋ฃน์„ ์ƒ์†

์ฃผ๋กœ ํ˜‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

3) sticky bit (1xxx)

chmod 1777 directoryโ€‹

๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ํŒŒ์ผ ์†Œ์œ ์ž, ๋””๋ ‰ํ„ฐ๋ฆฌ ์†Œ์œ ์ž, root ๋งŒ ํ•ด๋‹น ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ „ ๊ธ€
๐Ÿค– Next.js MetadataRoute ์ •๋ณต: Robots, Sitemap, Manifest๊นŒ์ง€ ํ•œ ๋ฒˆ์—
๋‹ค์Œ ๊ธ€
๐Ÿž CI/CD ์˜ค๋ฅ˜: GHCR์„ ์ด์šฉํ•œ GitHub Actions ์ตœ์ ํ™” ๋ฐฐํฌ
์žฅ์‹์šฉ ๋กœ๊ณ