๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
6. CS ๊ธฐ์ดˆ ๐Ÿ“š/Linux & Unix ๐Ÿง

[Linux/Unix][3-3] ๐Ÿงฉ ํŒŒ์ผ ๊ถŒํ•œ ๋ฐ ์†Œ์œ ๊ถŒ ๊ด€๋ฆฌ ๋ช…๋ น์–ด: umask, chown, chgrp

by lxvxxu 2025. 10. 21.

๐Ÿงฉ ํŒŒ์ผ ๊ถŒํ•œ ๋ฐ ์†Œ์œ ๊ถŒ ๊ด€๋ฆฌ ๋ช…๋ น์–ด

chmod๊ฐ€ “๊ถŒํ•œ(permission)”์„ ์ˆ˜์ •ํ•˜๋Š” ๋ช…๋ น์ด๋ผ๋ฉด,
umask, chown, chgrp๋Š” “๊ธฐ๋ณธ ๊ถŒํ•œ๊ณผ ์†Œ์œ ์ž”๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ช…๋ น์ด์—์š”.


๐Ÿง  1๏ธโƒฃ umask (user file-creation mode mask)

ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๋Š” ๋ช…๋ น์–ด.
์ฆ‰, ์ƒˆ ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์งˆ ๋•Œ “๊ธฐ๋ณธ ๊ถŒํ•œ์—์„œ ์–ด๋–ค ๋น„ํŠธ๋ฅผ ์ œ๊ฑฐ(mask)”ํ• ์ง€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ”น ๊ธฐ๋ณธ ๊ฐœ๋…

  • ํŒŒ์ผ ์ƒ์„ฑ ๊ธฐ๋ณธ ๊ถŒํ•œ์€ 666 (rw-rw-rw-)
  • ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ธฐ๋ณธ ๊ถŒํ•œ์€ 777 (rwxrwxrwx)
  • umask ๊ฐ’์€ ์ด ๊ธฐ๋ณธ๊ฐ’์—์„œ ๋นผ์ฃผ๋Š”(mask) ํ˜•ํƒœ๋กœ ์ž‘๋™ํ•จ

๐Ÿ“˜ ๊ณ„์‚ฐ ๋ฐฉ์‹

 
์ตœ์ข… ๊ถŒํ•œ = ๊ธฐ๋ณธ ๊ถŒํ•œ - umask ๊ฐ’

๐Ÿ”น ์˜ˆ์‹œ

๋ช…๋ น์–ด์„ค๋ช…๊ณ„์‚ฐ ๊ฒฐ๊ณผ
umask 000 ๋ชจ๋“  ๊ถŒํ•œ ํ—ˆ์šฉ ํŒŒ์ผ: 666 → 666 (rw-rw-rw-)
umask 022 ๊ทธ๋ฃน/๊ธฐํƒ€ ์“ฐ๊ธฐ ์ œ๊ฑฐ ํŒŒ์ผ: 666 - 022 = 644 (rw-r--r--)
umask 077 ๊ทธ๋ฃน/๊ธฐํƒ€ ๋ชจ๋“  ๊ถŒํ•œ ์ œ๊ฑฐ ํŒŒ์ผ: 666 - 077 = 600 (rw-------)

๐Ÿ“˜ ์‹คํ–‰ ์˜ˆ์‹œ

 
$ umask 0022 # ํ˜„์žฌ ๊ธฐ๋ณธ umask ๊ฐ’ ํ™•์ธ $ touch test.txt $ ls -l test.txt -rw-r--r-- 1 user user 0 Oct 21 16:00 test.txt

๐Ÿ’ก ์ฆ‰, umask 022๋ผ๋ฉด ์ƒˆ ํŒŒ์ผ์€ ์ž๋™์œผ๋กœ rw-r--r--,
์ƒˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” rwxr-xr-x ๊ถŒํ•œ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

 

'umask'๋ž€ ์ƒˆ๋กœ ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ถŒํ•œ์„ ์ œํ•œํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ์ƒ์„ฑ๋  ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด mask ๊ฐ’์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํ™•์ธํ•˜๋Š” ์…ธ ๋‚ด๋ถ€ ๋ช…๋ น์–ด์ด๋‹ค. umask ๊ฐ’ ์„ค์ •์€ root ๋ฟ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋“ค๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ํŒŒ์ผ ๊ธฐ๋ณธ ๊ถŒํ•œ: 666 (rw-rw-rw-), ๋””๋ ‰ํ† ๋ฆฌ ๊ธฐ๋ณธ ๊ถŒํ•œ: 777 (rwxrwxrwx)์ด๋‹ค. ํŒŒ์ผ์€ ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰ ๊ถŒํ•œ(x)์ด ์—†๋Š” 666 ๊ถŒํ•œ์„ ๊ฐ–๋Š”๋‹ค.

๊ธฐ๋ณธ ๊ถŒํ•œ์—์„œ umask ๊ฐ’์„ ๋บ€ ์ˆซ์ž๊ฐ€ ์•ž์œผ๋กœ ์ƒ์„ฑ๋  ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ถŒํ•œ์ด ๋œ๋‹ค.

'umask' ์ž…๋ ฅ์„ ํ†ตํ•ด ํ˜„์žฌ umask ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

umask๊ฐ€ 0002์ผ ๋•Œ ํŒŒ์ผ์˜ ์ดˆ๊ธฐ ์ ‘๊ทผ ๊ถŒํ•œ์€ 666 - 002 = 664, ๋””๋ ‰ํ† ๋ฆฌ ์ดˆ๊ธฐ ์ ‘๊ทผ ๊ถŒํ•œ์€ 777 - 002 = 775 ์ด๋‹ค. umask ๊ฐ’์€ ๊ณ„์ •๋งˆ๋‹ค ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, root์˜ umask๋Š” /etc/profile ์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ์‚ฌ์šฉ์ž๋Š” .profile, .cshrc, .bashrc, .login๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž profile์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ ๋กœ๊ทธ์ธํ•œ ๊ณ„์ •์—์„œ ์ผํšŒ์„ฑ์œผ๋กœ umask๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด "# umask 8์ง„์ˆ˜3์ž๋ฆฌ" ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ ๋กœ๊ทธ์•„์›ƒํ•˜๋ฉด ์ดˆ๊ธฐํ™”๋œ๋‹ค.

 

์‚ฌ์šฉ ํ˜•์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

$ umask[-S] [maskExpression]

 

-s ์˜ต์…˜์€ ์‹ฌ๋ณผ๋ฆญ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•œ๋‹ค. ์˜ต์…˜์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด 8์ง„ ์ˆซ์ž๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

'$ umask'๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ๊ฐ’์„ 8์ง„๋ฒ•์œผ๋กœ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋ฉฐ, '$ umask -S' ์ž…๋ ฅ ์‹œ symbolio๋กœ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

8์ง„์ˆ˜ ๊ฐ’ ํŒŒ์ผ ๊ถŒํ•œ ๋””๋ ‰ํ† ๋ฆฌ ๊ถŒํ•œ
0 rw- rwx
1 rw- rw-
2 r-- r-w
3 r-- r--
4 -w- -wx
5 -w- -w-
6 --- --x
7 --- ---

 

์˜ˆ๋ฅผ ๋“ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์†Œ์œ ์ž์— ์ฝ๊ธฐ, ๊ทธ๋ฃน์— ์ฝ๊ธฐ&์‹คํ–‰ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๋Š” ๊ถŒํ•œ ๋ฏธ์„ค์ • $ umask -S u=r,g=rx,o=
๊ทธ๋ฃน์˜ ์ฝ๊ธฐ ๊ถŒํ•œ์„ ์ œ๊ฑฐ $ umask -S g-r
์†Œ์œ ์ž์— ์ฝ๊ธฐ&์“ฐ๊ธฐ&์‹คํ–‰, ๊ทธ๋ฃน ๋ฐ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์— ์ฝ๊ธฐ&์‹คํ–‰ ๊ถŒํ•œ ์„ค์ • $ umask 022

 

 


๐Ÿ‘ค 2๏ธโƒฃ chown (change owner)

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


๐Ÿ”น ์‚ฌ์šฉ ํ˜•์‹

 
chown [OPTION] [OWNER][:[GROUP]] [FILE]
์š”์†Œ์„ค๋ช…
OWNER ์ƒˆ ์†Œ์œ ์ž ์ง€์ •
GROUP ์ƒˆ ๊ทธ๋ฃน ์ง€์ • (์ƒ๋žต ๊ฐ€๋Šฅ)
-R ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๊นŒ์ง€ ์žฌ๊ท€์ ์œผ๋กœ ์ ์šฉ

๐Ÿ”น ์˜ˆ์‹œ

๋ช…๋ น์–ด์„ค๋ช…
chown user1 file.txt ํŒŒ์ผ์˜ ์†Œ์œ ์ž๋ฅผ user1๋กœ ๋ณ€๊ฒฝ
chown user1:group1 file.txt ์†Œ์œ ์ž์™€ ๊ทธ๋ฃน์„ ๋ชจ๋‘ ๋ณ€๊ฒฝ
chown :group2 file.txt ๊ทธ๋ฃน๋งŒ ๋ณ€๊ฒฝ
chown -R user2 /home/user/dir ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ๋‚ด๋ถ€ ํŒŒ์ผ ๋ชจ๋‘ ๋ณ€๊ฒฝ

๐Ÿ“˜ ์‹คํ–‰ ์˜ˆ์‹œ

 
$ ls -l file.txt -rw-r--r-- 1 user user 0 Oct 21 16:10 file.txt $ sudo chown root:staff file.txt $ ls -l file.txt -rw-r--r-- 1 root staff 0 Oct 21 16:11 file.txt

โš ๏ธ ์ฃผ์˜: chown์€ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ํŒŒ์ผ ์™ธ์—๋Š” ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€.
๊ด€๋ฆฌ์ž(root) ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ‘ฅ 3๏ธโƒฃ chgrp (change group)

ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๊ทธ๋ฃน(group) ๋งŒ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น์–ด.


๐Ÿ”น ์‚ฌ์šฉ ํ˜•์‹

 
chgrp [OPTION] [GROUP] [FILE]
์˜ต์…˜์„ค๋ช…
-R ์žฌ๊ท€์ ์œผ๋กœ ์ ์šฉ

๐Ÿ“˜ ์˜ˆ์‹œ

 
$ ls -l report.txt -rw-r--r-- 1 user staff 0 Oct 21 16:20 report.txt $ chgrp devteam report.txt $ ls -l report.txt -rw-r--r-- 1 user devteam 0 Oct 21 16:21 report.txt

๐Ÿ’ก chgrp๋Š” ๊ทธ๋ฃน๋งŒ ๋ฐ”๊พผ๋‹ค๋Š” ์ ์—์„œ chown๊ณผ ๋‹ค๋ฆ„.
์ฆ‰, chown user:group์˜ “group” ๋ถ€๋ถ„๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช…๋ น์ด์—์š”.


๐Ÿงพ 4๏ธโƒฃ ์„ธ ๋ช…๋ น ๋น„๊ต ์ •๋ฆฌ

๋ช…๋ น์–ด์˜๋ฏธ์ฃผ์š” ์—ญํ• ๊ถŒํ•œ ํ•„์š”
chmod change mode ํŒŒ์ผ์˜ ์ ‘๊ทผ ๊ถŒํ•œ(r, w, x) ๋ณ€๊ฒฝ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ๊ฐ€๋Šฅ
umask user mask ์ƒˆ๋กœ ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ๊ถŒํ•œ ์ง€์ • ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ๊ฐ€๋Šฅ
chown change owner ํŒŒ์ผ์˜ ์†Œ์œ ์ž/๊ทธ๋ฃน ๋ณ€๊ฒฝ root ๊ถŒํ•œ ํ•„์š”
chgrp change group ํŒŒ์ผ์˜ ๊ทธ๋ฃน๋งŒ ๋ณ€๊ฒฝ ๊ทธ๋ฃน ์†Œ์† ์‚ฌ์šฉ์ž ๋˜๋Š” root ๊ฐ€๋Šฅ

๐Ÿง  5๏ธโƒฃ ์‹ค๋ฌด ์˜ˆ์‹œ

๐Ÿ“˜ ์‹œ๋‚˜๋ฆฌ์˜ค:
ํŒ€ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ค์ •ํ•˜๋ฉฐ, devteam ๊ทธ๋ฃน ๊ตฌ์„ฑ์›๋งŒ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •.

 
# 1. ๋””๋ ‰ํ„ฐ๋ฆฌ ์ƒ์„ฑ $ mkdir /project # 2. ๊ทธ๋ฃน ์ง€์ • $ sudo chgrp devteam /project # 3. ๊ถŒํ•œ ๋ถ€์—ฌ (๊ทธ๋ฃน์— ์ฝ๊ธฐ+์“ฐ๊ธฐ+์‹คํ–‰) $ chmod 770 /project # 4. ๊ธฐ๋ณธ ๊ถŒํ•œ ์„ค์ • (umask ์กฐ์ •) $ umask 007

๊ฒฐ๊ณผ:

 
drwxrwx--- 2 user devteam 4096 Oct 21 16:30 /project

โœ… ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— devteam ๊ทธ๋ฃน๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ณ ,
๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋Š” ์ ‘๊ทผ ๋ถˆ๊ฐ€.


โœ… ์š”์•ฝ ์ •๋ฆฌ

๋ช…๋ น์–ด์„ค๋ช…์˜ˆ์‹œ
chmod ํŒŒ์ผ ์ ‘๊ทผ ๊ถŒํ•œ ์ˆ˜์ • chmod 755 script.sh
umask ์ƒˆ ํŒŒ์ผ ๊ธฐ๋ณธ ๊ถŒํ•œ ์„ค์ • umask 022
chown ์†Œ์œ ์ž/๊ทธ๋ฃน ๋ณ€๊ฒฝ chown user1:dev file.txt
chgrp ๊ทธ๋ฃน๋งŒ ๋ณ€๊ฒฝ chgrp devteam file.txt

โœ… ํ•œ ์ค„ ์š”์•ฝ

umask๋Š” “๊ธฐ๋ณธ ๊ถŒํ•œ ์„ค์ •”,
chmod๋Š” “ํ˜„์žฌ ๊ถŒํ•œ ๋ณ€๊ฒฝ”,
chown๊ณผ chgrp๋Š” “์†Œ์œ ์ž·๊ทธ๋ฃน ๋ณ€๊ฒฝ” ๋ช…๋ น์ด๋‹ค.
์ด ๋„ค ๊ฐ€์ง€๋Š” ๋ฆฌ๋ˆ…์Šค ํŒŒ์ผ ๊ถŒํ•œ ์ฒด๊ณ„๋ฅผ ์™„์„ฑํ•˜๋Š” ํ•„์ˆ˜ ๋ช…๋ น์–ด ์„ธํŠธ๋‹ค.