umask(2) - wariua/manpages-ko GitHub Wiki
umask - ํ์ผ ๋ชจ๋ ์์ฑ ๋ง์คํฌ ์ค์ ํ๊ธฐ
#include <sys/types.h>
#include <sys/stat.h>
mode_t umask(mode_t mask);
umask()
๋ ํธ์ถ ํ๋ก์ธ์ค์ ํ์ผ ๋ชจ๋ ์์ฑ ๋ง์คํฌ(umask)๋ฅผ mask
& 0777๋ก ์ค์ ํ๊ณ (์ฆ mask
์ ํ์ผ ๊ถํ ๋นํธ๋ค๋ง ์ฌ์ฉ) ์ด์ ๋ง์คํฌ ๊ฐ์ ๋ฐํํ๋ค.
ํ์ผ์ ์์ฑํ๋ open(2), mkdir(2) ๋ฑ์ ์์คํ
ํธ์ถ์์ umask๋ฅผ ์ฌ์ฉํด์ ์๋ก ์์ฑํ๋ ํ์ผ ๋ด์ง ๋๋ ํฐ๋ฆฌ์ ์ค ๊ถํ์ ๋ณ๊ฒฝํ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก๋ open(2) ๋ฐ mkdir(2)์ mode
์ธ์์์ umask์ ์๋ ๊ถํ๋ค์ ๋๋ค.
๋ฐ๋ฉด ๋ถ๋ชจ ๋๋ ํฐ๋ฆฌ์ ๊ธฐ๋ณธ ACL(acl(5)
์ฐธ๊ณ )์ด ์์ผ๋ฉด umask๋ฅผ ๋ฌด์ํ๊ณ , ๊ทธ ๊ธฐ๋ณธ ACL์ ๋ฌผ๋ ค๋ฐ๊ณ , ๋ฌผ๋ ค๋ฐ์ ACL์ ๋ฐ๋ผ ๊ถํ ๋นํธ๋ค์ ์ค์ ํ๊ณ , mode
์ธ์์ ๋น ์ ธ ์๋ ๊ถํ ๋นํธ๋ค์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ ๊ธฐ๋ณธ ACL์ด umask 022์ ๋๋ฑํ๋ค.
u::rwx,g::r-x,o::r-x
์ด ๊ธฐ๋ณธ ACL์ ํจ๊ณผ์ mode
์ธ์ 0666(rw-rw-rw-)์ ํฉ์ณ์ ๋์ค๋ ํ์ผ ๊ถํ์ 0644(rw-r--r--)๊ฐ ๋ ๊ฒ์ด๋ค.
mask
์ง์ ์ ์ฌ์ฉํด์ผ ํ ์์๋ค์ inode(7)์์ ๊ธฐ์ ํ๋ค.
ํ๋ก์ธ์ค umask์ ์ผ๋ฐ์ ์ธ ๊ธฐ๋ณธ๊ฐ์ S_IWGRP | S_IWOTH
(8์ง์๋ก 022)์ด๋ค. open(2)์ mode
์ธ์๋ฅผ ๋ค์(8์ง์๋ก 0666)์ผ๋ก ์ง์ ํ๋ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH
์ ํ์ผ ์์ฑ ์ ๊ฒฐ๊ณผ ํ์ผ์ ๊ถํ์ ๋ค์์ด ๋๋ค.
S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
(0666 & ~022 = 0644, ์ฆ rw-r--r--.)
์ด ์์คํ ํธ์ถ์ ํญ์ ์ฑ๊ณตํ๋ฉฐ ์ด์ ๋ง์คํฌ ๊ฐ์ ๋ฐํํ๋ค.
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
fork(2)๋ฅผ ํตํด ์์ฑ๋ ์์ ํ๋ก์ธ์ค๋ ๋ถ๋ชจ์ umask๋ฅผ ๋ฌผ๋ ค๋ฐ๋๋ค. execve(2)์์ umask๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ๋๋๋ค.
umask()
๋ฅผ ์ฌ์ฉํด ํ๋ก์ธ์ค์ umask๋ฅผ ๋ณ๊ฒฝ ์์ด ๊ฐ์ ธ์ค๋ ๊ฑด ๋ถ๊ฐ๋ฅํ๋ค. ๊ทธ๋์ umask๋ฅผ ๋ณต์ํ๊ธฐ ์ํด ๋ค์ umask()
ํธ์ถ์ด ํ์ํด์ง๋ค. ์ด ๋ ๋จ๊ณ์ ๋น์์์ฑ์ด ๋ค์ค ์ค๋ ๋ ํ๋ก๊ทธ๋จ์์ ๊ฒฝ์ ๊ฐ๋ฅ์ฑ์ ๋ง๋ ๋ค.
๋ฆฌ๋
์ค 4.7๋ถํฐ /proc/[pid]/status
์ Umask
ํ๋๋ฅผ ํตํด ๋ชจ๋ ํ๋ก์ธ์ค์ umask๋ฅผ ๋ณผ ์ ์๋ค. /proc/self/status
์ ์ด ํ๋๋ฅผ ํ์ธํ๋ฉด ํ๋ก์ธ์ค์์ ์๊ธฐ umask๋ฅผ ๋ณ๊ฒฝ ์์ด ์ป์ด ์ฌ ์ ์๋ค.
umask ์ค์ ์ ํ๋ก์ธ์ค์์ ๋ง๋๋ POSIX IPC ๊ฐ์ฒด(mq_open(3), sem_open(3), shm_open(3)), FIFO(mkfifo(3)), ์ ๋์ค ๋๋ฉ์ธ ์์ผ(unix(7))์ ํ ๋น๋๋ ๊ถํ์๋ ์ํฅ์ ์ค๋ค. umask๊ฐ ํ๋ก์ธ์ค์์ (msgget(2), semget(2), shmget(2)์ผ๋ก) ๋ง๋๋ ์์คํ V IPC ๊ฐ์ฒด์ ํ ๋น๋๋ ๊ถํ์๋ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
chmod(2), mkdir(2), open(2), stat(2), acl(5)
2017-09-15