๐งฉ ํ์ผ ๊ถํ ๋ฐ ์์ ๊ถ ๊ด๋ฆฌ ๋ช ๋ น์ด
chmod๊ฐ “๊ถํ(permission)”์ ์์ ํ๋ ๋ช ๋ น์ด๋ผ๋ฉด,
umask, chown, chgrp๋ “๊ธฐ๋ณธ ๊ถํ๊ณผ ์์ ์”๋ฅผ ๊ด๋ฆฌํ๋ ๋ช ๋ น์ด์์.
๐ง 1๏ธโฃ umask (user file-creation mode mask)
ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋ ๋ ์ ์ฉ๋๋ ๊ธฐ๋ณธ ๊ถํ์ ์ ์ดํ๋ ๋ช ๋ น์ด.
์ฆ, ์ ํ์ผ์ด ๋ง๋ค์ด์ง ๋ “๊ธฐ๋ณธ ๊ถํ์์ ์ด๋ค ๋นํธ๋ฅผ ์ ๊ฑฐ(mask)”ํ ์ง๋ฅผ ์ง์ ํฉ๋๋ค.
๐น ๊ธฐ๋ณธ ๊ฐ๋
- ํ์ผ ์์ฑ ๊ธฐ๋ณธ ๊ถํ์ 666 (rw-rw-rw-)
- ๋๋ ํฐ๋ฆฌ ๊ธฐ๋ณธ ๊ถํ์ 777 (rwxrwxrwx)
- umask ๊ฐ์ ์ด ๊ธฐ๋ณธ๊ฐ์์ ๋นผ์ฃผ๋(mask) ํํ๋ก ์๋ํจ
๐ ๊ณ์ฐ ๋ฐฉ์
๐น ์์
| umask 000 | ๋ชจ๋ ๊ถํ ํ์ฉ | ํ์ผ: 666 → 666 (rw-rw-rw-) |
| umask 022 | ๊ทธ๋ฃน/๊ธฐํ ์ฐ๊ธฐ ์ ๊ฑฐ | ํ์ผ: 666 - 022 = 644 (rw-r--r--) |
| umask 077 | ๊ทธ๋ฃน/๊ธฐํ ๋ชจ๋ ๊ถํ ์ ๊ฑฐ | ํ์ผ: 666 - 077 = 600 (rw-------) |
๐ ์คํ ์์
๐ก ์ฆ, 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) ์ ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด.
๐น ์ฌ์ฉ ํ์
| OWNER | ์ ์์ ์ ์ง์ |
| GROUP | ์ ๊ทธ๋ฃน ์ง์ (์๋ต ๊ฐ๋ฅ) |
| -R | ํ์ ๋๋ ํฐ๋ฆฌ๊น์ง ์ฌ๊ท์ ์ผ๋ก ์ ์ฉ |
๐น ์์
| chown user1 file.txt | ํ์ผ์ ์์ ์๋ฅผ user1๋ก ๋ณ๊ฒฝ |
| chown user1:group1 file.txt | ์์ ์์ ๊ทธ๋ฃน์ ๋ชจ๋ ๋ณ๊ฒฝ |
| chown :group2 file.txt | ๊ทธ๋ฃน๋ง ๋ณ๊ฒฝ |
| chown -R user2 /home/user/dir | ๋๋ ํฐ๋ฆฌ์ ๋ด๋ถ ํ์ผ ๋ชจ๋ ๋ณ๊ฒฝ |
๐ ์คํ ์์
โ ๏ธ ์ฃผ์: chown์ ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ์์ ์ ํ์ผ ์ธ์๋ ๋ณ๊ฒฝ ๋ถ๊ฐ.
๊ด๋ฆฌ์(root) ๊ถํ์ด ํ์ํฉ๋๋ค.
๐ฅ 3๏ธโฃ chgrp (change group)
ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ์ ๊ทธ๋ฃน(group) ๋ง ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด.
๐น ์ฌ์ฉ ํ์
| -R | ์ฌ๊ท์ ์ผ๋ก ์ ์ฉ |
๐ ์์
๐ก 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 ๊ทธ๋ฃน ๊ตฌ์ฑ์๋ง ์ฝ๊ณ ์ธ ์ ์๋๋ก ์ค์ .
๊ฒฐ๊ณผ:
โ ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ์ devteam ๊ทธ๋ฃน๋ง ์ ๊ทผ ๊ฐ๋ฅํ๊ณ ,
๋ค๋ฅธ ์ฌ์ฉ์๋ ์ ๊ทผ ๋ถ๊ฐ.
โ ์์ฝ ์ ๋ฆฌ
| chmod | ํ์ผ ์ ๊ทผ ๊ถํ ์์ | chmod 755 script.sh |
| umask | ์ ํ์ผ ๊ธฐ๋ณธ ๊ถํ ์ค์ | umask 022 |
| chown | ์์ ์/๊ทธ๋ฃน ๋ณ๊ฒฝ | chown user1:dev file.txt |
| chgrp | ๊ทธ๋ฃน๋ง ๋ณ๊ฒฝ | chgrp devteam file.txt |
โ ํ ์ค ์์ฝ
umask๋ “๊ธฐ๋ณธ ๊ถํ ์ค์ ”,
chmod๋ “ํ์ฌ ๊ถํ ๋ณ๊ฒฝ”,
chown๊ณผ chgrp๋ “์์ ์·๊ทธ๋ฃน ๋ณ๊ฒฝ” ๋ช ๋ น์ด๋ค.
์ด ๋ค ๊ฐ์ง๋ ๋ฆฌ๋ ์ค ํ์ผ ๊ถํ ์ฒด๊ณ๋ฅผ ์์ฑํ๋ ํ์ ๋ช ๋ น์ด ์ธํธ๋ค.