\/L

κΆŒν•œ(RUID, SUID, EUID) & Sticky Bit

Dizet 2025. 3. 17. 03:56

<aside> πŸ’‘

일반적으둜 파일 및 λ””λ ‰ν† λ¦¬μ˜ κΆŒν•œμ„ ν‘œκΈ°ν•  λ•Œ 3자리 숫자둜 ν‘œν˜„ν•œλ‹€.(ex : 777, 755 λ“±)

</aside>

 

SUID와 SGID, sticky bitλŠ” κΈ°μ‘΄ νΌλ―Έμ…˜(rwx)μ—μ„œ μ‹€ν–‰ 및 μ‚­μ œ κΆŒν•œμ„ λ³΄μ™„ν•˜λŠ” μš”μ†Œμ΄λ‹€. SUID와 SGIDλŠ” 싀행될 λ•Œ μ‹€ν–‰μžμ˜ ID둜 μ‹€ν–‰λ˜λŠ” 것이 μ•„λ‹ˆλΌ μ†Œμœ μžλ‚˜ μ†Œμœ  그룹의 ID둜 μ‹€ν–‰λ˜κ²Œ… sticky bitλŠ” νŒŒμΌμ— λŒ€ν•΄μ„œ νΌλ―Έμ…˜κ³Ό 관계없이 μ†Œμœ μžλ§Œ μ‚­μ œ κ°€λŠ₯ν•˜κ²Œ ν•  λ•Œ 디렉터리에 other κΆŒν•œμ„ μ œν•œν•œλ‹€.

 

μ΄λŸ¬ν•œ κΆŒν•œμ˜ 체계가 λ§Œλ“€μ–΄μ§„ μ΄μœ λŠ”, 특수 κΆŒν•œμ„ 이용 μ‹œ λ‹€λ₯Έ κ³„μ •μ—μ„œ 읽기, μ“°κΈ°, μ‹€ν–‰ κΆŒν•œμ„ 쀄 수 있으며,

λ‹€λ₯Έ 계정(A)μ—μ„œ λ§Œλ“  νŒŒμΌμ„ λ‚΄ 계정(B)μ—μ„œ μ‹€ν–‰ν•˜λŠ” λ™μ•ˆ A의 κΆŒν•œμ„ μ–»μ–΄ ν•΄λ‹Ή νŒŒμΌμ„ μ½κ±°λ‚˜ μ“°κ±°λ‚˜ μ‹€ν–‰ν•˜λŠ” 것이 κ°€λŠ₯ν•΄μ§„λ‹€. (SetUID와 SetGID에 ν•΄λ‹Ήν•˜λŠ” λ‚΄μš©μ΄λ‹€.)

특수 κΆŒν•œμ—λŠ” SUID, SGID, Sticky bitκ°€ μžˆλ‹€.


RUID (Real User ID)

λ‹¨μˆœν•œ μœ μ €λͺ…이 μ•„λ‹ˆλΌ “초기 λ‘œκ·ΈμΈν•œ μ‚¬μš©μžμ˜ ID”μž„.

μ΄λŠ” μ‹œμŠ€ν…œμ΄ μ‚¬μš©μžμ˜ μ‹€μ œ 신원을 μΆ”μ ν•˜κ³ , μ–΄λ–€ μ‚¬μš©μžκ°€ μ–΄λ–€ μž‘μ—…μ„ μˆ˜ν–‰ν–ˆλŠ”μ§€ 둜그λ₯Ό 남길 수 μžˆλ„λ‘ ν•˜κΈ° μœ„ν•¨μž„.

     μž„μ˜ λ³€κ²½ μ‹œμ—” Mallory에 μ˜ν•œ κΆŒν•œ νƒˆμ·¨ 및 μž‘μ—… 흔적을 μˆ¨κΈ°λŠ” 데 μ•…μš©λ  수 있음.

 

μ˜ˆμ™Έμ μœΌλ‘œ, setuid(SUID)λ₯Ό ν†΅ν•œ μ‹œμŠ€ν…œ 호좜과 suid flagκ°€ μ„€μ •λœ μ‹€ν–‰νŒŒμΌμ„ μ‹€ν–‰ν•  λ•Œ RUIDκ°€ 파일 μ†Œμœ μžμ˜ UID둜 변경될 수 있음.

 

su - 즉, su --login은 μ „ν™˜λœ κ³„μ •μ˜ ν™˜κ²½ λ³€μˆ˜μ™€ 초기 μ„€μ •κΉŒμ§€λŠ” λΆˆλŸ¬μ˜€μ§€λ§Œ μ—¬μ „νžˆ RUIDλŠ” λ³€κ²½λ˜μ§€ μ•ŠμŒ.

     ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰μ‹œν‚¨ μ‹€μ œ μ‚¬μš©μžμ˜ ID둜 userκ°€ μ‹œμŠ€ν…œμ— λ‘œκ·ΈμΈν•  λ•Œ ν• λ‹Ή. λŒ€λΆ€λΆ„μ€ λ³€κ²½λ˜μ§€ μ•Šκ³  μœ μ§€λ¨. 즉, userκ°€ processλ₯Ό μ‹€ν–‰ν•˜κ±°λ‚˜ 타 μž‘μ—…μ„ μˆ˜ν–‰ν•΄λ„ RUIDλŠ” μœ μ§€.

 

 

<aside> πŸ’‘

su와 su -의 차이

suλŠ” λ‹¨μˆœνžˆ μ‚¬μš©μž μ „ν™˜μ„ μˆ˜ν–‰.

κΈ°μ‘΄ μ‚¬μš©μžμ˜ ν™˜κ²½ λ³€μˆ˜μ™€ 경둜(PATH)κ°€ κ·ΈλŒ€λ‘œ μœ μ§€λ¨.

즉, EUID만 λ°”λ€Œκ³  κΈ°μ‘΄ ν™˜κ²½μ€ μœ μ§€λ¨.

su -λŠ” 둜그인 μ‰˜ ν™˜κ²½μ„ μ΄ˆκΈ°ν™”ν•˜μ—¬ μ „ν™˜λœ μ‚¬μš©μžμ˜ 전체 ν™˜κ²½μ„ λ‘œλ“œν•¨.

μ „ν™˜λœ μ‚¬μš©μžμ˜ ν™˜κ²½ λ³€μˆ˜, μ΄ˆκΈ°ν™” 슀크립트(~/.bashrc, ~/.bash_profile)κ°€ λ‘œλ“œλ¨.

μ „ν™˜λœ μ‚¬μš©μžμ˜ κΈ°λ³Έ 경둜(PATH)도 적용됨.

μƒˆλ‘œ ν•΄λ‹Ή μ‚¬μš©μžλ‘œ λ‘œκ·ΈμΈν•œ 것과 λ™μΌν•œ ν™˜κ²½μ„ 제곡.

μ‚¬μš©μžμ˜ ν™ˆ λ””λ ‰ν† λ¦¬λ‘œ μ΄λ™ν•˜λ©°, μ „ν™˜λœ κ³„μ •μ˜ κΈ°λ³Έ 섀정을 μ‚¬μš©.

</aside>

 

 

SUID (Set-user-ID) ν‘œκΈ°κ°’: 4000

νŠΉμ • μ‚¬μš©μžμ˜ κΆŒν•œμ΄ μžˆμ–΄μ•Όλ§Œ 싀행을 ν•  수 μžˆλŠ” 파일의 경우, κ·Έ κΆŒν•œμ„ μΌμ‹œμ μœΌλ‘œ νŒŒμΌμ„ μ‹€ν–‰ν•˜λŠ” 일반 μ‚¬μš©μžλ“€μ—κ²Œ λΆ€μ—¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš© ν•œλ‹€.

 

νŠΉμˆ˜ν•œ μ ‘κ·Ό κΆŒν•œμœΌλ‘œ, νŒŒμΌμ„ μ‹€ν–‰ν•  λ•Œ μ‹€ν–‰ 파일의 μ†Œμœ μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰λ˜κ²Œ 함.

 

λͺ…ν™•νžˆλŠ”, λ£¨νŠΈκ°€ μ•„λ‹Œ μ‚¬μš©μžλ“€μ΄ μž μ‹œλ™μ•ˆ 루트 λ“±μ˜ λ‹€λ₯Έ κ³„μ •μ˜ κΆŒν•œμ„ λΉŒλ €μ„œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  ν•„μš”κ°€ μžˆμ„ λ•Œλ₯Ό λŒ€λΉ„ν•˜μ—¬ λΆ€μ—¬ν•˜λŠ” κΆŒν•œ μ„€μ •.

    예λ₯Ό λ“€μ–΄, root κΆŒν•œμœΌλ‘œ μ„€μ •λœ μ‹€ν–‰ νŒŒμΌμ„ 일반 μ‚¬μš©μžκ°€ μ‹€ν–‰ν•˜λ©΄ 이 ν”„λ‘œμ„ΈμŠ€λŠ” root의 EUID둜 싀행됨

 

이λ₯Ό 톡해 ν”„λ‘œκ·Έλž¨μ€ ν•„μš” μ‹œ 높은 κΆŒν•œμ„ κ°€μ§€κ³  μž‘μ—…μ„ μˆ˜ν–‰ν•  수 있음.

 

chmod u+s ν˜Ήμ€ 4000을 톡해 λΆ€μ—¬ κ°€λŠ₯ (o+sλŠ” 이상함.)

 

 

SGID (Set-group-ID) ν‘œκΈ°κ°’: 2000

SUID와 같이 μž μ‹œλ™μ•ˆ λ‹€λ₯Έ 그룹의 κΆŒν•œμœΌλ‘œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  ν•„μš”κ°€ μžˆμ„ λ•Œλ₯Ό λŒ€λΉ„ν•˜μ—¬ λΆ€μ—¬ν•˜λŠ” κΆŒν•œ μ„€μ •.

chmod g+s ν˜Ήμ€ 2000을 톡해 λΆ€μ—¬κ°€λŠ₯

 

SetGID μ„€μ • μ‹œ κ·Έλ£Ή κΆŒν•œ λ‚΄μ˜ μ‹€ν–‰ κΆŒν•œ μžλ¦¬μ— xκ°€ μ•„λ‹Œ sκ°€ 였게 됨. (이건 suid도 μ˜€μ§€ μ•Šλ‚˜…?)

 

 

EUID (Effective User ID)

ν”„λ‘œμ„ΈμŠ€κ°€ μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•  λ•Œ μ‚¬μš©ν•˜λŠ” ID.

EUIDλŠ” 특히 νŒŒμΌμ΄λ‚˜ λ‹€λ₯Έ μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Ό κΆŒν•œμ„ 체크할 λ•Œ μ€‘μš”ν•˜κ²Œ μ‚¬μš©λ¨. 즉, λ‹€λ₯΄κ²Œ λ§ν•˜λ©΄ ν˜„μž¬ μ‚¬μš©λ˜κ³  μžˆλŠ” μœ μ €μ˜ ID.

 

λ§Œμ•½ μ–΄λ–€ ν”„λ‘œκ·Έλž¨μ΄ SUID λΉ„νŠΈκ°€ μ„€μ •λœ μƒνƒœλ‘œ μ‹€ν–‰λœλ‹€λ©΄, κ·Έ ν”„λ‘œκ·Έλž¨μ˜ EUIDλŠ” ν”„λ‘œκ·Έλž¨μ˜ μ†Œμœ μž ID둜 섀정됨.

 

μœ μ§€λ˜μ§€ μ•ŠλŠ” κ²½μš°λŠ” su <μœ μ €λͺ…>등을 톡해 μœ μ € 자체λ₯Ό λ°”κΎΌ 경우

.

 

Sticky Bit = 곡유λͺ¨λ“œ, ν‘œκΈ°κ°’: 1000

곡유 ν΄λ”μ˜ 경우 μ†Œμœ μžμ™€ μ†Œμœ κ·Έλ£Ήμ΄ rootμ΄μ§€λ§Œ, λ‹€λ₯Έ User도 읽고 μ“Έ 수 μžˆλŠ” κ²½μš°κ°€ μžˆλŠ”λ°, μ΄μœ λŠ” Permission이 t둜 μ„€μ •λ˜μ–΄μžˆκΈ° λ•Œλ¬Έμ΄λ‹€.

 

sticky bitκ°€ 적용된 λ””λ ‰ν„°λ¦¬μ—μ„œ νŒŒμΌμ„ μƒμ„±ν•˜λ©΄ ν•΄λ‹Ή νŒŒμΌμ€ μƒμ„±ν•œ μ‚¬λžŒμ˜ μ†Œμœ κ°€ 되며 μ†Œμœ μžμ™€ root κ³„μ •λ§Œμ΄ ν•΄λ‹Ή νŒŒμΌμ— λŒ€ν•œ μ‚­μ œμ™€ μˆ˜μ •μ— λŒ€ν•œ κΆŒν•œμ„ κ°€μ§„λ‹€. sticky bitκ°€ 적용된 λ””λ ‰ν„°λ¦¬λŠ” rootκ°€ μ•„λ‹Œ 일반 μ‚¬μš©μžλ“€μ€ νŒŒμΌμ„ μ‚­μ œν•˜κ±°λ‚˜ 이름을 λ³€κ²½ν•˜μ§€λŠ” λͺ»ν•˜κ³ , νŒŒμΌμ΄λ‚˜ λ””λ ‰ν„°λ¦¬μ˜ 생성은 κ°€λŠ₯

 

chmod o+t, u+t ν˜Ήμ€ 1000 λ₯Ό μ‚¬μš©ν•˜μ—¬ Sticky Bit을 μ„€μ •ν•  수 μžˆλ‹€.

μ œκ±°λŠ” o-t / u-t ν˜Ήμ€ 000

     μ΄λ•Œ oλŠ” others이고, uλŠ” user이닀.

μ˜λ―ΈμƒμœΌλ‘œλŠ” Sticky BitλŠ” **λ‹€λ₯Έ μ‚¬μš©μžλ“€(others)**의 파일 μ‚­μ œ κΆŒν•œμ„ μ œν•œν•˜λŠ” 데 μ‚¬μš©λ˜λ―€λ‘œ, 의미적으둜 o+tκ°€ 더 μ ν•©ν•˜λ‹€.

즉, “곡유 디렉토리”와 같이 νŠΉμ • 디렉토리λ₯Ό λˆ„κ΅¬λ‚˜ 자유둭게 μ‚¬μš©ν•  수 있게 ν•˜κΈ° μœ„ν•΄ Sticky Bitκ°€ μ‚¬μš©λ¨.

Sticky Bitκ°€ μ„€μ •λœ 디렉토리에 νŒŒμΌμ„ μƒμ„±ν•˜λ©΄ ν•΄λ‹Ή νŒŒμΌμ€ μƒμ„±ν•œ μ‚¬λžŒμ˜ μ†Œμœ κ°€ 되며, 였직 μ†Œμœ μžμ™€ rootμ—κ²Œλ§Œ ν•΄λ‹Ή νŒŒμΌμ— λŒ€ν•œ μ‚­μ œ 및 λ³€κ²½μ˜ κΆŒν•œμ΄ μžˆλ‹€. κ³΅μœ λ””λ ‰ν† λ¦¬λ‘œ μ‚¬μš©ν•˜κ³ μž ν•  λ•Œ 쓰인닀.

 

 

참고둜 SetUID, SetGID, Sticky BitλŠ” ν•΄λ‹Ή 자리의 νΌλ―Έμ…˜μ— μ‹€ν–‰νΌλ―Έμ…˜μ΄ μžˆμ–΄μ•Όλ§Œ 적용이 λœλ‹€.

κ°€λ Ή SUID (4000)λŠ” λ‹¨λ…μœΌλ‘œ 4000만 μ§€μ •ν•˜λ©΄ μ‹€ν–‰ λΉ„νŠΈκ°€ μ—†μœΌλ―€λ‘œ, 파일이 μ‹€ν–‰λ˜μ§€ μ•Šμ•„ SUID νš¨κ³Όκ°€ λ‚˜νƒ€λ‚˜μ§€ μ•ŠκΈ°μ—,

보톡은 4000κ³Ό μ‚¬μš©μž μ‹€ν–‰ λΉ„νŠΈ(예: 0700 λ˜λŠ” 0100 λ“±)λ₯Ό 합쳐 4700, 4100 λ“±μœΌλ‘œ μ„€μ •ν•œλ‹€.

λ‹€λ₯΄κ²Œ λ§ν•˜λ©΄ 4λŠ” 100, 300, 700처럼 μ‚¬μš©ν•˜λŠ” 편이며

2λŠ” 010, 030, 070, 1은 001, 003, 007처럼 μ‚¬μš©ν•˜λŠ” νŽΈμ΄λ‹€.

μ–΄μ°¨ν”Ό λ‹€λ₯Έ μžλ¦¬λŠ” μ„€μ •ν•΄λ΄€μž μ˜λ―Έκ°€ μ—†κΈ° λ•Œλ¬Έμ΄λ‹€.

특수 κΆŒν•œμ€ 일반 νΌλ―Έμ…˜κ³Ό κ²°ν•©ν•˜μ—¬ μ‚¬μš©λ˜λ©°, 보톡 μžμ‹ μ΄ 적용될 μ‚¬μš©μž/κ·Έλ£Ή/기타에 λ§žλŠ” μ‹€ν–‰ νΌλ―Έμ…˜κ³Ό ν•¨κ»˜ μ„€μ •ν•˜λŠ” 것이 μ˜¬λ°”λ₯Έ μ‚¬μš©λ²•μ΄λ‹€.

λ§Œμ•½ νŠΉμˆ˜νΌλ―Έμ…˜μ΄ λŒ€λ¬Έμžλ‘œ ν‘œκΈ°λ  경우 μ΄λŠ” νŠΉμˆ˜νΌλ―Έμ…˜μ΄ 섀정은 λ˜μ–΄μžˆμ§€λ§Œ μΌλ°˜νΌλ―Έμ…˜ μžλ¦¬μ— μ‹€ν–‰νΌλ―Έμ…˜μ΄ μ„€μ •λ˜μ–΄μžˆμ§€ μ•ŠκΈ° λ•Œλ¬Έμ΄λ‹€.

즉, 2, 4, 6κ³Ό 같은 execute κΆŒν•œ(1)은 μ μš©λ˜μ–΄μžˆμ§€ μ•Šμ€ κ²½μš°μ— λŒ€λ¬Έμžκ°€ ν‘œκΈ°λœλ‹€.


  • νŠΉμˆ˜κΆŒν•œ 파일 κ²€μƒ‰ν•˜κΈ°
    $ find [검색할 디렉토리 경둜] -perm [μ ‘κ·ΌκΆŒν•œκ°’]
    $ find [검색할 디렉토리 경둜] -perm [μ ‘κ·ΌκΆŒν•œκ°’] -ls
    
    • lsλ₯Ό μ˜΅μ…˜μœΌλ‘œ λΆ™μ—¬μ£Όλ©΄ 검색 κ²°κ³Όλ₯Ό lsλͺ…λ Ήμ˜ ν˜•νƒœλ‘œ 좜λ ₯ν•΄μ€€λ‹€.
    • perm μ˜΅μ…˜μ—μ„œλ„ -κ°’κ³Ό +값을 μž…λ ₯ν•  수 μžˆλ‹€.
    예λ₯Ό λ“€μ–΄ -을 μž…λ ₯ν•˜λ©΄ μž…λ ₯ν•œ κΆŒν•œμ΄ μ„€μ •λœ νŒŒμΌμ„ λͺ¨λ‘ κ²€μƒ‰ν•˜κ³ μ•„λž˜λŠ” perm λͺ…λ Ήμ–΄μ˜ μ‚¬μš©λ²•μœΌλ‘œ, 1λ²ˆμ—μ„œ 3번으둜 갈수둝 검색 κ²°κ³Όκ°€ 더 λ„“μ–΄μ§„λ‹€λŠ” 것을 μ•Œ 수 μžˆλ‹€.
    1. -perm modemode둜 λͺ…μ‹œν•œ κΆŒν•œκ³Ό μ •ν™•νžˆ μΌμΉ˜ν•˜λŠ” νŒŒμΌμ„ 검색 ν•œλ‹€.
    2. -perm 6000으둜 검색 μ‹œ 이 λ•Œ modeλ₯Ό bit둜 ν‘œν˜„ν•˜λ©΄ 110/000/000/000 이 λœλ‹€. μ™Όμͺ½ bitλΆ€ν„° 인덱싱을 ν•΄μ„œ 0번째 λΉ„νŠΈ, 1번째 λΉ„νŠΈ, ... , 11번째 λΉ„νŠΈλ‘œ ν‘œκΈ°ν•œλ‹€κ³  ν•˜μž. 이 μ˜΅μ…˜μœΌλ‘œ 파일이 κ²€μƒ‰λ˜κΈ° μœ„ν•΄μ„œλŠ”, 1) 파일 κΆŒν•œμ˜ 0번째 ~ 11번째 λΉ„νŠΈκ°€ mode와 μ •ν™•νžˆ μΌμΉ˜ν•΄μ•Ό ν•œλ‹€.
    3. File's permission bits are exactly mode (octal or symbolic).
    4. -perm -modemode둜 λͺ…μ‹œν•œ κΆŒν•œμ„ λͺ¨λ‘ ν¬ν•¨ν•˜λŠ” νŒŒμΌμ„ 검색 ν•œλ‹€.
      -perm -6000으둜 검색 μ‹œ 이 λ•Œ modeλ₯Ό bit둜 ν‘œν˜„ν•˜λ©΄ 110/000/000/000 이 λœλ‹€.
      μ™Όμͺ½ bitλΆ€ν„° 인덱싱을 ν•΄μ„œ 0번째 λΉ„νŠΈ, 1번째 λΉ„νŠΈ, ... , 11번째 λΉ„νŠΈλ‘œ ν‘œκΈ°ν•œλ‹€κ³  ν•˜μž.
      
      이 μ˜΅μ…˜μœΌλ‘œ 파일이 κ²€μƒ‰λ˜κΈ° μœ„ν•΄μ„œλŠ”,
      1) 파일 κΆŒν•œμ˜ 0번째 bit와 1번째 λΉ„νŠΈκ°€ λͺ¨λ‘ 1이어야 ν•œλ‹€. (and)
      2) λ‚˜λ¨Έμ§€ μœ„μΉ˜μ˜ bit듀은 μ–΄λ–€ 값을 κ°€μ§€λ˜ 검색 결과에 포함 λœλ‹€.
      
    5. κ²€μƒ‰λ˜λŠ” νŒŒμΌμ€ mode둜 λͺ…μ‹œν•œ κΆŒν•œμ„ μ΅œμ†Œν•œ λͺ¨λ‘ κ°€μ§€κ³ μžˆμœΌλ©°, κ·Έ 외에도 좔가적인 κΆŒν•œμ„ κ°€μ§€κ³  μžˆμ„ 수 μžˆλ‹€.
    6. All of the permission bits mode are set for the file.
    7. -perm /modemode둜 λͺ…μ‹œν•œ κΆŒν•œμ„ ν•˜λ‚˜ 이상 ν¬ν•¨ν•˜λŠ” νŒŒμΌμ„ 검색 ν•œλ‹€.
      -perm /6000으둜 검색 μ‹œ 이 λ•Œ modeλ₯Ό bit둜 ν‘œν˜„ν•˜λ©΄ 110/000/000/000 이 λœλ‹€.
      μ™Όμͺ½ bitλΆ€ν„° 인덱싱을 ν•΄μ„œ 0번째 λΉ„νŠΈ, 1번째 λΉ„νŠΈ, ... , 11번째 λΉ„νŠΈλ‘œ ν‘œκΈ°ν•œλ‹€κ³  ν•˜μž.
      
      이 μ˜΅μ…˜μœΌλ‘œ 파일이 κ²€μƒ‰λ˜κΈ° μœ„ν•΄μ„œλŠ”,
      1) 파일 κΆŒν•œμ˜ 0번째 bit λ˜λŠ” 1번째 bitκ°€ 1이어야 ν•œλ‹€. (or)
      2) λ‚˜λ¨Έμ§€ μœ„μΉ˜μ˜ bit듀은 μ–΄λ–€ 값을 κ°€μ§€λ˜ 검색 결과에 포함 λœλ‹€.
      
    8. κ²€μƒ‰λ˜λŠ” νŒŒμΌμ€ mode둜 λͺ…μ‹œν•œ κΆŒν•œμ„ μ΅œμ†Œν•œ 1κ°œλŠ”κ°€μ§€κ³  있으며, κ·Έ 외에도 좔가적인 κΆŒν•œμ„ κ°€μ§€κ³  μžˆμ„ 수 μžˆλ‹€.
    9. Any of the permission bits mode are set for the file.
    (참고둜 μ›λž˜λŠ” -perm +mode κ°€ 3λ²ˆμ— ν•΄λ‹Ήλ˜λŠ” μ˜΅μ…˜μ΄μ—ˆλŠ”λ°, +mode λŒ€μ‹  /modeλ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμœΌλ‘œ λ°”λ€Œμ—ˆλ‹€κ³  ν•œλ‹€)
  • +을 μž…λ ₯ν•˜λ©΄ μž…λ ₯ν•œ κΆŒν•œλ§Œ μ„€μ •λœ 파일만 κ²€μƒ‰ν•œλ‹€.
  • find λͺ…령을 μ΄μš©ν•˜μ—¬ νŠΉμˆ˜κΆŒν•œμ΄ μ„€μ •λœ 파일과 디렉토리λ₯Ό 검색할 수 μžˆλ‹€.
  • κΆŒν•œ λΆ€μ—¬ (chmod)

8μ§„μˆ˜ κΆŒν•œ ν‘œκΈ°λŠ” λ‹€μŒκ³Ό 같은 ꡬ쑰λ₯Ό κ°€μ§‘λ‹ˆλ‹€:

  1. 특수 κΆŒν•œ λΉ„νŠΈ (첫 번째 자리)
    • 4xxx: suid (Set User ID)
    • 2xxx: sgid (Set Group ID)
    • 1xxx: Sticky Bit
  2. κΈ°λ³Έ κΆŒν•œ λΉ„νŠΈ (λ‚˜λ¨Έμ§€ μ„Έ 자리)
    • xxxλŠ” μ†Œμœ μž, κ·Έλ£Ή, 기타 μ‚¬μš©μž(others)의 읽기, μ“°κΈ°, μ‹€ν–‰ κΆŒν•œμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
    • 각 μžλ¦¬λŠ” 3λΉ„νŠΈλ‘œ κ΅¬μ„±λ˜λ©°, κΆŒν•œμ€ λ‹€μŒκ³Ό 같이 ν‘œν˜„λ©λ‹ˆλ‹€:
      • 4: 읽기 (read, r)
      • 2: μ“°κΈ° (write, w)
      • 1: μ‹€ν–‰ (execute, x)
      • 0: κΆŒν•œ μ—†μŒ
7 (4+2+1): 읽기, μ“°κΈ°, μ‹€ν–‰ (rwx)
6 (4+2): 읽기, μ“°κΈ° (rw-)
5 (4+1): 읽기, μ‹€ν–‰ (r-x)
4 (4): 읽기 (r--)
3 (2+1): μ“°κΈ°, μ‹€ν–‰ (-wx)
2 (2): μ“°κΈ° (-w-)
1 (1): μ‹€ν–‰ (--x)
0: μ—†μŒ (---)

<aside> πŸ’‘

suid μ„€μ • μ˜ˆμ‹œ

1. chmod 4755 filename

  • 4: suid μ„€μ •
  • 755:
    • 7 (rwx): μ†Œμœ μž κΆŒν•œ (읽기, μ“°κΈ°, μ‹€ν–‰)
    • 5 (r-x): κ·Έλ£Ή κΆŒν•œ (읽기, μ‹€ν–‰)
    • 5 (r-x): 기타 μ‚¬μš©μž κΆŒν•œ (읽기, μ‹€ν–‰)
  • κ²°κ³Ό: rwsr-xr-x
    • s: suidκ°€ μ„€μ •λ˜μ–΄ μ‹€ν–‰ μ‹œ 파일 μ†Œμœ μžμ˜ κΆŒν•œμœΌλ‘œ μ‹€ν–‰

2. chmod 4711 filename

  • 4: suid μ„€μ •
  • 711:
    • 7 (rwx): μ†Œμœ μž κΆŒν•œ
    • 1 (-x): κ·Έλ£Ή κΆŒν•œ (μ‹€ν–‰λ§Œ)
    • 1 (-x): 기타 μ‚¬μš©μž κΆŒν•œ (μ‹€ν–‰λ§Œ)
  • κ²°κ³Ό: rws--x--x
    • 이 섀정은 νŒŒμΌμ„ μ‹€ν–‰ν•  수만 있게 ν•˜λ©°, μ‹€ν–‰ μ‹œ 파일 μ†Œμœ μžμ˜ κΆŒν•œμ„ μ‚¬μš©

3. chmod 4000 filename

  • 4: suid μ„€μ •
  • 000:
    • 0 (--): μ†Œμœ μž κΆŒν•œ μ—†μŒ
    • 0 (--): κ·Έλ£Ή κΆŒν•œ μ—†μŒ
    • 0 (--): 기타 μ‚¬μš©μž κΆŒν•œ μ—†μŒ
  • κ²°κ³Ό: -S------
    • S: μ‹€ν–‰ κΆŒν•œμ΄ μ—†λŠ” μƒνƒœμ—μ„œ suidκ°€ 섀정됨 (비정상적인 μ„€μ •)

특수 κΆŒν•œ λΉ„νŠΈ μ‘°ν•©

  • 4755: rwsr-xr-x (suid + rwxr-xr-x)
  • 2755: rwxr-sr-x (sgid + rwxr-xr-x)
  • 1755: rwxr-xr-t (Sticky Bit + rwxr-xr-x)
  • 6755: rwsr-sr-x (suid + sgid + rwxr-xr-x)
  • 5755: rwsr-xr-t (suid + Sticky Bit + rwxr-xr-x)
  • 7755: rwsr-sr-t (suid + sgid + Sticky Bit + rwxr-xr-x) </aside>