RadarURL
Skip to content
조회 수 533 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

@@@@@@@@@@@@@@@@@@@@@@@@@

특별한 퍼미션 setuid, setgid, sticky bit

setuid, setgid
실행 퍼미션에는 setuid와 setgid라는 특별한 퍼미션이 있다. setuid는 심볼릭 모드로 's'로 표현되고 8진수 모드로는 4000
으로 표현된다. setuid 퍼미션이 설정되어 있는 실행 파일은 실행되는 동안에는 그 파일의 소유자 권한을 가지게 된다.
이러한 이유때문에 root 소유의 setuid 퍼미션이 포함되어 있는 파일은 아주 신중히 관리를 해야 된다.
저는 사용 안하는 setuid 실행 파일은 setuid 퍼미션을 제거해서 따로 보관하고 있습니다.
setgid 퍼미션이 포함되어 있는 실행 파일은 실행되는 동안은 그 파일의 소유 그룹의 권한을 가지는 것 빼고는 setuid와 같다.
setgid의 8진수 모드는 2000 이다.
setuid 퍼미션을 포함하고 있는 실행 파일을 ls -al 명령으로 확인해 보면 다음과 같이 소유자 실행퍼미션에 's'라고 되어
있는 것을 확인할 수 있다.
[uuta22]# ls -al /bin/su
-rwsr-xr-x    1 root    root        14112  1월 16  2001 /bin/su

setgid가 포함되어 있는 실행 파일을 ls -al 명령으로 확인하면 소유 그룹의 실행 퍼미션에 's'가 설정되어 있는 것을 확인
할 수 있을 것이다.
[uuta22]# ls -al /usr/bin/man
-rwxr-sr-x    1 root    root        14112  2월 5  2001 /usr/bin/man

= file1 이라는 실행 파일에 setuid 퍼미션을 설정할 때
[uuta22]# chmod 4755 file1

= file1 이라는 실행 파일에 setgid 퍼미션을 설정할 때
[uuta22]# chmod 2755 file1

sticky bit
sticky bit도 특별한 퍼미션이다. other의 쓰기 권한에 대한 특별한 퍼미션인데
/tmp 디렉토리와 /var/tmp 디렉토리에의
퍼미션이 stickbit가 포함되어 있다. sticky bit는 8진수 모드로는
1000으로 설정되고 심볼릭 모드로는 't' 또는 'T'로 설정된다.
이 sticky bit가 포함되어 있는 디렉토리에 other에 쓰기 권한이 있을 경우 other에 해당하는 사용자들은
디렉토리 안에 파일을 만들 수는 있어도 디렉토리 삭제는 할 수 없다.
sticky bit가 포함되어 있는 대표적인 디렉토리가 /tmp 디렉토리인데
분명히 /tmp 디렉토리의 퍼미션 에는 other에게 쓰기 권한이 주어져 있다.
그렇기 때문에 /tmp 디렉토리에는 누구나 디렉토리와 파일을 만들 수 있다.
하지만 other에 해당하는 사용자는 쓰기 권한이 있음에도 불고 하고 /tmp 디렉토리를 지울수 없는 것이다.
그 이유는 /tmp 디렉토리에는 sticky bit가 설정되어 있기 때문이다.
당연히 소유자는 sticky bit가 설정되어 있는 디렉토리를 삭제할 수 있다.
디렉토리가 아닌 파일에 sticky bit가 설정되어 있을 때는
other 에게 쓰기 퍼미션이 있어도 파일을 수정할 순 있지만 그 파일을 삭제할 수는 없다.
sticky bit의 이런 특징을 이용하면 공개 서버에서는 여러모로 요긴하게 사용할 수 있을 것이다.
sticky bit를 적용할려면 당연히 쓰기 권한도 주어야 되다.

= sticky bit가 포함되어 있는 디렉토리의 ls -al 결과
[uuta22]# ls -ald /tmp
drwxrwxrwt  14 root    root        4096 Aug 30 02:05 /tmp

= dir1 이라는 디렉토리에 sticky bit를 설정할 때
[uuta22]# chmod 1707 dir1    -->  또는 chmod 1777 dir1

= sticky bit가 설정되어 있는 디렉토리를 other에 해당되는 사용자가 디렉토리 삭제 명령을 했을 때
[root /tmp]# rm -rf dir1
rm: cannot remove directory `dir1': Operation not permitted
[root /tmp]# ls -ald dir1
drwx---rwt  2 root    root        4096 Aug 30 18:42 dir1

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


setuid와 setgid에 의한 퍼미션 지정
공유한 디랙토리나 파일에 대한 특별한 퍼미션을 부여하는 것으로서 파일 소유자(owner)나 superuser 만이
파일에 대해서는 setuid와 setgid를 설정하고, 디랙토리에 대해서는 setgid 퍼미션을 설정할 수 있다.
absolute mode(octal mode)나 symbolic mode를 사용하여 지정하거나 해지할 수 있다.

1) 실행할 수 있는 프로그램

실행 권한(x)이 주어진 프로그램에 setuid 퍼미션이 주어지면 누구에게나 그 프로그램의 소유자처럼
그 프로그램을 실행할 권한이 주어지고, 또한 어느 누구에게나 그 프로그램의 그룹에 속한 것처럼 할 수 있다.
즉, 실행 권한(x)을 가진 프로그램이 setuid와 setgid 퍼미션이 주어지면
그 프로그램의 owner나 group으로부터 UID와 GID를 얻는다.
이는 해당 프로그램이 시작될 때 프로세스로부터 UID와 GID를 상속받는 것과는 다르다.

2) 디랙토리

디랙토리에 setgid 퍼미션이 주어지면 서브디랙토리에 만들어지는 파일에 GID가 전달된다.
즉, 새로운 파일이나 디랙토리는 상위 디랙토리와 같은 그룹에 속한다.

3) setuid와 setgid 퍼미션 부여하기

setuid와 setgid 비트는 owner와 group의 x 필드(실행 필드)에 소문자 s가 나타난다.
이러한 퍼미션은 passwd 명령어를 사용할 때 /etc/shadow에 있는 어떤 필드를 사용자가 바꿀 수 있도록 한다.


즉, 소문자 s 기호는 setuid 권한과 실핼 권한이 동시에 설정되어 있음을 의미하며,
대문자 S 기호는 setuid 권한은 있지만, 실행 권한이 없음을 의미한다.

4) setuid와 setgid 퍼미션 세팅하기

setuid와 setgid 퍼미션은 파일에 대해서 symbolic mode나 absolute mode적으로
chmod를 사용하여 설정할 수 있다. absolute mode 방법은 4자리수의 8진수가 쓰이며
MSD(가장 좌측수)가 의미하는 바는 다음과 같다.

  4000=setuid
  2000=setgid
  1000=sticky bit

【예제】
    # chmod 4755 setuid_program
    # chmod 2755 setgid_program
    # chmod 1755 file_name

그리고 디랙토리에 대한 setgid 비트 설정은 기호적 chmod를 사용하여야 한다.

【예제】
    # chmod g+s some_directory

setuid, setgid, sticky bit 설정

rwx rwx rwx의 파일 퍼미션 중에서 root 만이 읽고 쓸 수 있는 파일이나 디랙토리를
일반 사용자에게 권한을 부여 하는 것이 바로 setuid, segid, sticky bit이다.


실행 파일에 명시된 setgid 권한은 setuid 권한과 유사하다.
setuid 권한이 실행 파일을 소유한 사용자의 권한을 가지지만, setgid 권한은
실행 파일을 소유한 그룹 소유주의 권한을 가진다는 점이 다르다.
즉, 실행 파일에 setuid 권한이 명시되어 있으면 프로세스가 명령어를
실행한 사용자의 권한이 아니라 명령어 소유주의 권한을 가지듯이,
실행 파일에 setgid 권한이 명시되어 있으면 프로세스가 명령어를
실행한 사용자가 속한 기본 그룹의 권한이 아니라 명령어의 그룹 소유주 권한을 가진다.
따라서 setgid 권한이 명시되면 프로세스의 EGID(Effective User IDentification)
데이터가 실행 파일의 그룹 소유주와 동일한 데이터를 갖는다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


 permission 퍼미션 (chmod, chattr)

1. chmod
파일 또는 디렉토리의 접근 권한을 변경하는 명령이다.

1.1 chmod의 기본적인 사용법
chmod [-옵션] [모드] [파일명]

[옵션]
chmod 명령에는 몇가지 옵션이 존재하지만 -R 옵션 외에는 사용할 일이 없기 때문에 -R 옵션만 설명을 하겠다.
-R : 퍼미션 변경 대상이 디렉토리일 경우 그 하위 경로에 있는 모든 파일과 디렉토리의 퍼미션을 변경한다.
 
[모드(심볼릭)]
심볼릭 모드와 8진수 모드를 사용할 수 있는데 대부분의 사용자들은 심볼릭 모드 보다 8진수 모드를 선호한다. 그럼 심볼릭
모드부터 공부해 보도록 하자.
심볼릭 모드에서 "u = 소유자, g = 소유 그룹, o = other, a = all, r = 읽기, w = 쓰기, x = 실행"을 의미한다.
심볼릭 모드에서는 권한 추가에 대해서 '+' 를 사용하고 권한 박탈에 대해서는 '-' 를 사용한다. '=' 를 사용하면 현재 설정
된 권한은 제거되고 오직 '='로 설정한 권한만 부여한다.

▶ file1에 대해 소유 그룹에게 쓰기 권한을 추가할 때
[root@rootman root]# chmod g+w file1

▶ 소유자에게 file1에 대해 쓰기 권한을 주고 소유 그룹에게는 쓰기 권한을 박탈할 할 때
[root@rootman root]# chmod u+w,g-w file1
--> 위와 같이 동시에 여러 대상에 대해 설정할 때는 각 대상을 콤마(,)로 구분하면 된다. 절대 공백이 들어가서는 안된다.

[모드(8진수)]
8진수 모드에서 4 = 읽기, 2 = 쓰기, 1 = 실행을 의미한다. 8진수 모드는 소유자와 소유그룹, other에 대해서 8진수 3자리로
표현하는데 첫째 자리수가 소유자를 의미하고 둘째 자릿수가 소유 그룹, 셋째 자릿수가 other을 의미한다.
예를 들어 751 라는 퍼미션은 소유자에게 7, 소유 그룹에게 5, other에게 1 에 해당하는 퍼미션을 설정한 것이다.
퍼미션의 계산은 주어진 권한에 해당하는 8진수 값을 모두 더해서(+) 설정된다.

▶ 소유자에게 읽기, 쓰기, 실행 권한을 소유 그룹에게는 읽기, 실행 권한을 other에게는 실행 권한만을 설정한 8진수 모드
소유자 = 4(읽기) + 2(쓰기) + 1(실행) = 7
소유그룹 = 4(읽기) + 1(실행) = 5
other = 1(실행) = 1
--> 이걸 정리하면 751 이라는 8진수 모드로 표현할 수 있다. 물론 초보자를 위한 설명이니까
덧셈까지 하면서 설명을 했지만 몇번 사용하다 보면 금방 익힐 수 있을 것이다.

▶ file1에 대해 소유자에게 읽기, 쓰기 권한을 소유 그룹과 other에게는 읽기 권한을 갖도록 설정할 때
[root@rootman root]# chmod 644 file1

1.2 특별한 퍼미션 setuid, setgid, sticky bit
setuid, setgid
실행 퍼미션에는 setuid와 setgid라는 특별한 퍼미션이 있다. setuid는 심볼릭 모드로 's'로 표현되고 8진수 모드로는 4000
으로 표현된다. setuid 퍼미션이 설정되어 있는 실행 파일은 실행되는 동안에는 그 파일의 소유자 권한을 가지게 된다.
이러한 이유때문에 root 소유의 setuid 퍼미션이 포함되어 있는 파일은 아주 신중히 관리를 해야 된다. 저는 사용 안하는
setuid 실행 파일은 setuid 퍼미션을 제거해서 따로 보관하고 있습니다.
setgid 퍼미션이 포함되어 있는 실행 파일은 실행되는 동안은
그 파일의 소유 그룹의 권한을 가지는 것 빼고는 setuid와 같다. setgid의 8진수 모드는 2000 이다.
setuid 퍼미션을 포함하고 있는 실행 파일을 ls -al 명령으로 확인해 보면 다음과 같이 소유자 실행퍼미션에 's'라고 되어
있는 것을 확인할 수 있다.
[root@rootman root]# ls -al /bin/su
-rwsr-xr-x    1 root    root        14112  1월 16  2001 /bin/su

setgid가 포함되어 있는 실행 파일을 ls -al 명령으로 확인하면 소유 그룹의 실행 퍼미션에 's'가 설정되어 있는 것을 확인
할 수 있을 것이다.
[root@rootman root]# ls -al /usr/bin/man
-rwxr-sr-x    1 root    root        14112  2월 5  2001 /usr/bin/man

▶ file1 이라는 실행 파일에 setuid 퍼미션을 설정할 때
[root@rootman root]# chmod 4755 file1

▶ file1 이라는 실행 파일에 setgid 퍼미션을 설정할 때
[root@rootman root]# chmod 2755 file1

sticky bit
sticky bit도 특별한 퍼미션이다. other의 쓰기 권한에 대한 특별한 퍼미션인데 /tmp 디렉토리와 /var/tmp 디렉토리에의
퍼미션이 stickbit가 포함되어 있다. sticky bit는 8진수 모드로는 1000으로 설정되고 심볼릭 모드로는 't' 또는 'T'
로 설정된다. 이 sticky bit가 포함되어 있는 디렉토리에 other에 쓰기 권한이 있을 경우 other에 해당하는 사용자들은
디렉토리 안에 파일을 만들 수는 있어도 디렉토리 삭제는 할 수 없다.
sticky bit가 포함되어 있는 대포적인 디렉토리가 /tmp 디렉토리인데
분명히 /tmp 디렉토리의 퍼미션에는 other에게 쓰기 권한이 주어져 있다.
그렇기 때문에 /tmp 디렉토리에는 누구나 디렉토리와 파일을 만들 수 있다.
하지만 other에 해당하는 사용자는 쓰기 권한이 있음에도 불고 하고 /tmp 디렉토리를 지울수 없는 것이다.
그 이유는 /tmp 디렉토리에는 sticky bit가 설정되어 있기 때문이다.
당연히 소유자는 sticky bit가 설정되어 있는 디렉토리를 삭제할 수 있다.
디렉토리가 아닌 파일에 sticky bit가 설정되어 있을 때는 other 에게
쓰기 퍼미션이 있어도 파일을 수정할 순 있지만 그 파일을 삭제할 수는 없다.
sticky bit의 이런 특징을 이용하면 공개 서버에서는 여러모로 요기나게 사용할 수 있을 것이다.
sticky bit를 적용할려면 당연히 쓰기 권한도 주어야 되다.

▶ sticky bit가 포함되어 있는 디렉토리의 ls -al 결과
[root@rootman root]# ls -ald /tmp
drwxrwxrwt  14 root    root        4096 Aug 30 02:05 /tmp

▶ dir1 이라는 디렉토리에 sticky bit를 설정할 때
[root@rootman root]# chmod 1707 dir1    -->  또는 chmod 1777 dir1

▶ sticky bit가 설정되어 있는 디렉토리를 other에 해당되는 사용자가 디렉토리 삭제 명령을 했을 때
[rootman@rootman /tmp]# rm -rf dir1
rm: cannot remove directory `dir1': Operation not permitted
[rootman@rootman /tmp]# ls -ald dir1
drwx---rwt  2 root    root        4096 Aug 30 18:42 dir1

2. chattr, lsattr
루트도 지우지 못하는 파일을 설정할 수 있다는 말을 들어 본적이 있나요?
chattr을 이용하면 파일의 소유자라도 read-only로만 파일을 열수 있게 할수 있고 root도 chattr로 설정한 것을 해제하지
않으면 절대 chattr +i 로 설정한 파일을 지울 수 없다. 단, root만 사용 가능하다.
간혹 짖궂은 해커는 멍청한 관리자를 위해(?) 해킹한 시스템의 특정 파일에 chattr +i 를 설정해 놓고 chattr 명령을 모르는
관리자가 파일을 수정할려고 끙끙 대는 모습을 즐기기도 한다. 어떤 관리자는 시스템의 문제라고 생각하고
포멧을 하는 관리자를 본적도 있다. 저의 경우는 rootman의 텔넷 서버의 guest 계정에 chattr을 적용한 적이 있다.
.bash_profile, .bashrc 같은 파일에 chattr +i 를 설정해서 default 설정을 변경하지 못하도록 하기 위해 사용했었다.
또 chattr에는 파일의 수정을 추가 모드로만 열 수 있도록 설정하는 옵션도 있다.
lsattr 이라는 명령으로 파일의 chattr 모드를 확인할 수 있다.

chattr [옵션] [+=-모드] [파일명]

모드를 추가 할때는 '+모드' , 모드를 제거할 때는 '-모드'를 사용하면 되고 '=모드'를 사용할 경우 현재의 모드는 제거되고
오직 '=모드'로 설정된 모드만 적용된다.

[옵션]
-R : 대상이 디렉토리일 경우 그 하위 경로에 있는 파일과 디렉토리까지 모드를 적용한다.
[모드]
i : 파일을 read-olny로만 열 수 있게 설정한다. 링크도 허용하지 않고 루트만이 이 모드를 제거할 수 있다.
a : 파일의 수정을 할 때 내용을 추가할 수만 있다. 단, vi편집기로는 내용을 추가 할 수 없다.

▶ file1에 i 모드를 추가할 때
[root@rootman /tmp]# chatr +i file1

▶ file2에 a 모드를 추가할 때
[root@rootman /tmp]# chattr +a file2

▶ 파일의 chattr 모드 확인
[root@rootman /tmp]# lsattr file1 file2
---i-------- file1
----a------- file2

▶ i 모드가 설정된 파일을 제거할려고 할 때 나타나는 메시지
[root@rootman /tmp]# rm -f file1
rm: cannot unlink `file1': 명령이 허용되지 않음

▶ a 모드가 설정된 file2 에 내용을 추가할 때
[root@rootman /tmp]# cat >> file2
a 모드가 설정되어 있는 파일.
내용을 추가합니다.
^D
--> a 모드가 설정된 파일은 내용 추가만 할 수 있는데 vi편집기에서는 추가되지 않았다.
위의 예제에는 >>(출력 리다이렉션)을 사용해 내용을 추가 하였다.

▶ i, 또는 a 모드가 설정된 파일에 모드를 제거할 때는 '-모드' 를 이용한다.
[root@rootman /tmp]# chattr -i file1

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Set-user-id와 Set-group-id


ls -l을 실행하면 그 파일의 permission이 나타난다. Permission은 소유주(owner),
소유주와 같은 그룹의 사람(group), 이들 이외의 사람들(others)이
각각 그 파일을 읽고(r), 쓰고(w), 실행(x)시킬 수 있는가 하는 것이다.

Permission에는 추가로 다음 세가지의 특별한 속성이 있다.


◦ 04000 : set-user-id(set UID)

◦ 02000 : set-group-id(set GID)

◦ 01000 : save-text-image(sticky bit)


실행 파일에 setuid가 지정되어 있다면, 파일에 포함된 프로그램이 수행되기 시작할 때
UNIX는 생성되는 프로세스에게 파일 소유주의 UID를 effective uid로 부여한다.
다시 말하면, 프로세스는 프로세스를 생성시킨 사용자의 UID(real UID)를 가지는 것이 아니라
파일 소유주의 UID(effective UID)를 가지는 것이다. 이렇게 되면,
프로세스는 프로세스를 생성시킨 사용자(real UID)의 권한이 아니라,
파일 소유주(effective UID)의 권한을 가지게 된다. 이러한 setuid는
/bin/passwd, /bin/chsh, /bin/chfn, /bin/mail 등과 같은 프로그램에서 사용된다.

% ls -lg chfn chsh passwd

  32 -rwsr-xr-x  5 root  staff  32768 Jul 24  1992 chfn*

  32 -rwsr-xr-x  5 root  staff  32768 Jul 24  1992 chsh*

  32 -rwsr-xr-x  5 root  staff  32768 Jul 24  1992 passwd*

Setuid의 역할을 /bin/passwd의 예를 들어 설명하도록 하겠다.
/bin/passwd가 사용하는 파일은 /etc/passwd이다.
그리고 /etc/passwd는 다음과 같은 파일 모드를 가지고 있다.

% ls -lg /etc/passwd

  1 -rw-r--r--  1 root  staff  471 May 11 16:59 /etc/passwd

위에서 보면 쉽게 알 수 있듯이, /etc/passwd는 소유주인 루트만이 쓰기 권한이 있다.
그런데도 일반 사용자들은 자기의 패스워드를 바꿀 수 있다. 즉, /etc/passwd의 내용을 바꿀 수 있다는 것이다.

앞에서 설명한 바와 같이 일반 사용자가 /bin/passwd를 실행하게 되면,
프로세스는 생성시 setuid에 의하여 루트의 권한을 가지게 되는 것이다.
따라서 누구나 루트 소유인 /etc/passwd의 내용을 바꿀 수 있는 것이다.

다음으로 실행 파일에 setgid가 붙어 있으면, setuid에서와
비슷한 현상이 파일소유주의 group에게 일어난다.
즉, 실행되는 프로세스의 effective gid는 프로세스를 생성시킨
사용자의 GID가 아니라 파일소유주의 GID를 가지게 된다.

마지막으로 sticky bit은 메모리 관리의 효율을 높이기 위한 것으로,
이 bit이 설정된 프로그램을 실행시키면 된다

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                        

 

출처 : http://linuxstudy.pe.kr/bbs/board.php?bo_table=pds&wr_id=476

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
142 [Linux/Unix] 심볼릭 링크(ln) 만들기 및 확인/삭제 JAESOO 2016.02.19 639
141 AIX - tar,gzip 명령어 (한번에 압축하기) - Linux참고 JAESOO 2016.02.02 615
140 AIX에서 논리적 볼륨 크기 확장 JAESOO 2016.01.28 510
139 [AIX] Filesystem 사이즈 조절하기 JAESOO 2016.01.23 510
138 cpulimit - cpu 사용량을 정한다. JAESOO 2015.08.24 554
137 좀비 프로세스 찾기, 죽이기 JAESOO 2015.05.27 879
136 SetUid와 SetGid JAESOO 2015.05.27 545
» 특별한 퍼미션 setuid setgid sticky bit JAESOO 2015.05.27 533
134 SETUID, SETGID, Sticky Bit JAESOO 2015.05.27 952
133 Tomcat 무분별하게 catalina.out 크기 커지는것 막기 JAESOO 2015.04.13 3129
132 톰캣(Tomcat) 실시간 로그보기 JAESOO 2015.04.13 1043
131 ls - 파일리스팅 (접근, 수정, 속성변경 시간별 정렬 등) JAESOO 2015.02.24 749
130 리눅스(Linux)에서 하위 디렉토리까지 파일 찾기, 찾아서 지우기 JAESOO 2015.02.24 1199
129 아파치서버 동시접속자수에 따른 메모리 산정 (대략) JAESOO 2015.01.13 1588
128 데비안 리눅스 로그 관리 JAESOO 2015.01.13 668
127 리눅스 로그파일관리 (logrotate) JAESOO 2015.01.13 703
126 리눅스 logrotate를 활용한 로그 관리 (compress, lotate) JAESOO 2015.01.13 1138
125 CentOS5 MRTG서버 트래픽 모니터링 JAESOO 2014.12.26 912
124 SNMP 를 설정해 보자 (CentOS 5.6) JAESOO 2014.12.26 1252
123 [CentOS] MRTG를 설치하여 서버의 대역폭을 기록하자 JAESOO 2014.12.26 801
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

PageViews   Today : 133 Yesterday : 2394 Total : 21713791  /  Counter Status   Today : 116 Yesterday : 1232 Total : 1142258

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소