Cloud Engineering/Linux ๐Ÿง

[Linux] POSIX ACL mask ์ ์šฉํ•˜๊ธฐ (์ผ๋ฐ˜ ACL mask ์„ค์ •)

minjiwoo 2023. 1. 4. 10:40
728x90

์šฐ์„  mask๋ž€ ๋ฌด์—‡์ผ๊นŒ?

์ „ํ†ต์ ์ธ Permission์œผ๋กœ ๊ถŒํ•œ ๊ด€๋ฆฌํ•  ๋•Œ์˜ umask๊ฐ€ ์žˆ๋‹ค. 

umask ๋ž€ ?

ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ๋•Œ ์ดˆ๊ธฐ์˜ ํผ๋ฏธ์…˜์„ ๊ฒฐ์ •ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” mask๊ฐ’์ด๋‹ค. ์—ฌ๊ธฐ์„œ mask๋ผ๋Š” ๊ฒƒ์€ ๊ฐ€๋ฆฐ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ํŒŒ์ผ์— ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์€ ๊ถŒํ•œ๋“ค์ด ๋ถ€์—ฌ๋  ๊ฒฝ์šฐ์— ๋ณด์•ˆ์ƒ ์œ„ํ—˜ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ umask๊ฐ’์„ ํ†ตํ•ด์„œ ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ฆ‰, ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ถŒํ•œ๋“ค์„ ๋นผ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

-> ๊ทธ๋Ÿฌ๋‚˜ POSIX ACL์—์„œ์˜ mask๋Š” umask์™€ ์˜คํžˆ๋ ค ๋ฐ˜๋Œ€ ๊ฐœ๋…์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค!! 

 

POSIX ACL์—์„œ์˜ mask ๋ž€ ?

posix acl๋ฅผ ๊ฐ€์ง€๊ณ  ์ตœ๋Œ€ํ•œ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์˜๋ฏธ์˜ mask๊ฐ’์ด๋‹ค.

setfacl ๋ช…๋ น์–ด๋กœ POSIX ACL๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

setfacl -m ACL_ENTRY FILE

์˜ˆ์‹œ) setfacl -m u:staff01:r userfilea

ls -l ๋ช…๋ น์–ด๋กœ ํ™•์ธํ•œ ๊ฒฐ๊ณผ + ๊ฐ€๋งˆ์ง€๋ง‰์œผ๋กœ ํ‘œ์‹œ๋œ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋Š” POSIX ACL๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค 

rw-rw-r--+ 1 user user 0 1์›” 4 09:48 userfilea

getfacl ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด userfilea์˜ POSIX ACL๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

[user@localhost work]$ getfacl userfilea
# file: userfilea
# owner: user
# group: user
user::rw- user:staff01:r--
group::rw-
mask::rw-
other::r--

์—ฌ๊ธฐ์„œ mask๋ผ๋Š” ํ•ญ๋ชฉ์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ๋ณผ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๊ฒƒ์ด ๋ฐ”๋กœ  POSIX ACL mask๊ฐ’์ด๋‹ค. 

์ด์–ด์„œ staff02์—๊ฒŒ userfilea์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ rwx๋กœ ๋ถ€์—ฌํ–ˆ๋‹ค.

[user@localhost work]$ setfacl -m u:staff02:rwx userfilea [user@localhost work]$ getfacl userfilea
#file: userfilea
#owner: user
#group: user
user::rw- user:staff01:r--
user:staff02:rwx
group::rw-
mask::rwx
other::r--

mask๊ฐ’์ด ์ž๋™์œผ๋กœ ๊ณ„์‚ฐ์ด ๋˜์–ด์„œ ๋ชจ์ž๋ž€ ๊ถŒํ•œ์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ์›๋ž˜๋Š” mask๊ฐ’์ด rw์˜€๋Š”๋ฐ, staff02์—๊ฒŒ ๊ถŒํ•œ์„ rwx๋ฅผ ๋ถ€์—ฌํ•จ์œผ๋กœ์จ, ์ตœ๋Œ€๋กœ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด rwx๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.

 

POSIX ACL mask ๊ฐ’ ์„ค์ •ํ•˜๊ธฐ 


setfacl -m m::๊ถŒํ•œ FILE_NAME
์˜ˆ์‹œ) setfacl -m m::rw userfilea

userfilea์˜ mask๊ฐ’์„ rw๋กœ ์ฃผ์—ˆ๋‹ค. 

์šฐ์„ , mask;:rw- ๋ผ๊ณ  mask๊ฐ’์ด rwx์—์„œ rw-๋กœ ๋ฐ”๋€๊ฒƒ์„ ํ™•์ธ๊ฐ€๋Šฅํ•˜๋‹ค. 
mask๋Š” ์ตœ๋Œ€ ์ ‘๊ทผ๊ถŒํ•œ์ด๋ผ๋Š” ์˜๋ฏธ์ด๋ฉฐ, mask๊ฐ’์„ rw๋ผ๊ณ  ์คฌ๋‹ค. ์ด๋ฏธ staff02์—๊ฒŒ rwx๋ฅผ ๋ถ€์—ฌํ–ˆ๋”๋ผ๋„ mask๊ฐ’์— ์˜ํ•˜์—ฌ ์ตœ๋Œ€๋กœ ์ ์šฉ๊ฐ€๋Šฅํ•œ ๊ถŒํ•œ์€ rw ์ด๋‹ค. user:staff02 ์˜†์— effective:rw- ๊ฐ’์„ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค.

#effective:rw- ์—์„œ, effective ๊ฐ’์€ permission ๊ฐ’๊ณผ mask๊ฐ’์— ๋Œ€ํ•œ & ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ์ด๋‹ค. 
์œ„์˜ ์˜ˆ์‹œ์— staff02์—๊ฒŒ ๋ถ€์—ฌ๋œ ๊ถŒํ•œ์€ rwx, mask๊ฐ’์€ rw์ด๋ฏ€๋กœ & (๋…ผ๋ฆฌ ๊ณฑ ์—ฐ์‚ฐ์ž) ์—ฐ์‚ฐ์„ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

    perm rwx
& mask rw-
๊ฒฐ๊ณผ      rw-

์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด - ๋Š” ๊ฐ’์ด ์—†๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ False ๊ฐ’์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋˜๊ณ , r, w, x๋ผ๋Š”๊ฒƒ์€ ๊ฐ’์ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ True๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. 

setfacl ์˜ต์…˜ 

setfacl -n 

-n ์˜ต์…˜์„ ์ฃผ๋ฉด mask๊ฐ’์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. 

์˜ˆ์‹œ) setfacl -n -m g:adm:rwx userfilea

mask๊ฐ’์ด ์›๋ž˜ rw-์˜€๊ณ , adm์ด๋ผ๋Š” ๊ทธ๋ฃน์‚ฌ์šฉ์ž์—๊ฒŒ userfilea์— ๋Œ€ํ•ด rwx๊ถŒํ•œ์„ ๋ถ€์—ฌํ–ˆ์ง€๋งŒ, -n์˜ต์…˜์— ์˜ํ•ด์„œ mask๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜๋‹ค. 



setfacl -R


์–ด๋–ค ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์—๊ฒŒ ์ผ๊ด„์ ์œผ๋กœ ๊ถŒํ•œ์„ ๋ถ€์—ฌ

POSIX ACL Permission

r - Read ์ฝ๊ธฐ ๊ถŒํ•œ
w - Write ์“ฐ๊ธฐ ๊ถŒํ•œ
x - Execute ์‹คํ–‰ ๊ถŒํ•œ
X - ์‹คํ–‰ ๊ถŒํ•œ์„ ์„ ํƒ์ ์œผ๋กœ ๋ถ€์—ฌ ( ํŒŒ์ผ์— ์‹คํ–‰๊ถŒํ•œ์ด ์—†๋‹ค๋ฉด ๋ถ€์—ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. )

์˜ˆ์‹œ) setfacl -R -m u:staff01:rwX dir2

728x90