본문으로 건너뛰기

IT

Ⅱ-2. 사용자·그룹과 권한

라즈베리파이 5 서버에서 사용자와 그룹의 정보, 권한의 기호·숫자 표기, chmod·chown, sudo, umask 와 특수 권한, ACL 을 실제 실행 결과와 함께 정리하였다.

2026. 10. 09

Ⅱ-2 사용자·그룹과 권한은 Ⅱ-1 셸과 명령행 기본의 표 2에서 ‘종류와 권한’ 으로만 설명한 ls -l 의 첫 열을 이어서 다룬다. 명령의 출력은 genealogypost.com 을 운영하는 라즈베리파이 5에서 2026-10-09 에 일반 사용자 계정으로 실행한 결과이다. 파일을 만들고 권한을 바꾸는 명령은 홈 디렉토리 아래의 연습 디렉토리(~/practice)에서만 실행하였고, 다 쓴 뒤 그 디렉토리를 지웠다. 출력에 든 사용자 이름은 user 로, 호스트 이름은 raspberrypi 로, 홈 디렉토리 경로는 /home/user 로 바꾸어 실었다.

2.1 사용자 및 그룹

리눅스는 파일과 프로세스마다 주인을 기록하고, 그 주인이 누구냐에 따라 할 수 있는 일을 가른다. 주인의 단위는 사용자와 그룹이다. 사용자 한 명은 그룹 여러 개에 속할 수 있으며, 그룹에 준 권한은 그 그룹의 구성원 모두가 받는다 [10].

2.1.1 현재 사용자와 소속 그룹 확인

그림 1은 지금 로그인한 사용자와 그 사용자가 속한 그룹을 확인한 결과이다. whoami 는 사용자 이름만, id 는 번호와 이름을 함께, groups 는 그룹 이름만 보인다.

user@raspberrypi:~ $ whoami
user
user@raspberrypi:~ $ id
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),102(input),105(render),110(netdev),115(lpadmin),993(gpio),994(i2c),995(spi)
user@raspberrypi:~ $ groups
user adm dialout cdrom sudo audio video plugdev games users input render netdev lpadmin gpio i2c spi
그림 1. 현재 사용자와 소속 그룹 확인
  • uid 는 사용자 번호이다. 커널은 이름이 아니라 이 번호로 사용자를 구분한다.
  • gid 는 기본 그룹의 번호이다. 이 사용자가 새로 만드는 파일의 그룹이 된다.
  • groups 는 이 사용자가 속한 그룹 전체이며, 이 계정은 17개 그룹에 속해 있다.
  • 27(sudo) 는 관리자 명령을 쓸 수 있는 그룹이다. 2.5절에서 다룬다.
  • gpio, i2c, spi 는 라즈베리파이의 핀과 버스 장치 파일을 쓸 수 있는 그룹이다.

그림 1의 그룹은 이 서버에 서비스를 설치하면서 더한 것이 아니다. Raspberry Pi OS 는 이미지에 들어 있는 uid 1000 계정의 이름을 첫 설정 때 바꾸는 방식으로 첫 사용자를 만든다. 이 방식은 /usr/lib/userconf-pi/userconf 의 usermod -l 과 groupmod -n 줄에서 확인하였다. 그래서 이미지에 정해진 그룹 목록이 그대로 이어진다.

2.1.2 /etc/passwd 의 구성

사용자 계정의 정보는 /etc/passwd 에 한 줄에 한 사용자씩 적혀 있다. 그림 2는 그중 관리자(root)와 일반 사용자의 줄만 grep 으로 고른 결과이다.

user@raspberrypi:~ $ grep -E '^(root|user):' /etc/passwd
root:x:0:0:root:/root:/bin/bash
user:x:1000:1000:,,,:/home/user:/bin/bash
그림 2. /etc/passwd 의 관리자 줄과 일반 사용자 줄

표 1은 그림 2의 일반 사용자 줄을 쌍점(:)으로 나눈 일곱 열을 나타낸다 [9].

표 1. /etc/passwd 한 줄의 열 구성 (그림 2의 user 줄)
열 값 의미
1. 사용자 이름 user 로그인할 때 입력하는 이름
2. 비밀번호 x 비밀번호가 /etc/shadow 에 따로 있다는 표시. /etc/shadow 는 root 만 읽을 수 있다
3. UID 1000 사용자 번호. root 는 0 이다
4. GID 1000 기본 그룹의 번호
5. 설명 ,,, 이름·연락처 같은 설명. 비어 있어 쉼표만 남았다
6. 홈 디렉토리 /home/user 로그인한 직후의 현재 디렉토리
7. 로그인 셸 /bin/bash 로그인하면 실행되는 셸(Ⅱ-1 그림 2)

2.2 권한의 표기

2.2.1 기호 표기

그림 3은 ls -l 첫 열 10글자의 구성을 나타낸다. 첫 글자는 파일의 종류이고, 나머지 9글자는 3글자씩 소유자, 그룹, 그 밖의 사용자에게 준 권한이다. 각 3글자는 차례로 읽기(r), 쓰기(w), 실행(x)이며, 허용하지 않은 권한은 - 로 표시한다.

ls -l 첫 열 10글자의 구성과 숫자 표기
그림 3. 권한 9글자의 세 묶음과 숫자 표기 (도식)

파일에 접근하는 사용자가 소유자이면 첫 묶음만, 소유자가 아니고 파일의 그룹에 속하면 둘째 묶음만, 둘 다 아니면 셋째 묶음만 적용된다 [1]. 묶음을 합쳐서 적용하지 않으므로, 소유자 묶음의 권한이 그룹 묶음보다 적으면 소유자는 그룹 구성원보다 적은 권한을 받는다.

r, w, x 의 뜻은 파일과 디렉토리에서 다르다. 표 2는 두 경우를 나란히 나타낸다 [1].

표 2. 파일과 디렉토리에서 r·w·x 의 뜻
권한 파일 디렉토리
r 읽기 내용을 읽는다(cat, less) 안에 든 이름의 목록을 본다(ls)
w 쓰기 내용을 고친다 안에서 파일을 만들고, 지우고, 이름을 바꾼다. x 도 있어야 한다
x 실행 프로그램으로 실행한다 그 디렉토리로 들어가고(cd), 안의 파일에 접근한다

표 2의 디렉토리 w 는 파일을 지우는 권한이 파일이 아니라 그 파일이 든 디렉토리에 있다는 뜻이다. 2.6.2절의 스티키 비트는 이 규칙에 예외를 둔다.

2.2.2 숫자 표기

숫자 표기는 r 을 4, w 를 2, x 를 1 로 세어 묶음마다 더한 값을 세 자릿수로 적는다. 그림 3의 -rw-r--r-- 는 소유자 4+2+0=6, 그룹 4+0+0=4, 그 밖 4+0+0=4 이므로 644 이다. 표 3은 숫자 표기 네 가지와 그 쓰임을 나타낸다.

표 3. 자주 쓰는 숫자 표기
숫자 기호 계산 쓰이는 곳
644 rw-r--r-- 6=4+2, 4=4, 4=4 일반 파일. 소유자만 고치고 모두 읽는다(그림 4의 f.txt)
755 rwxr-xr-x 7=4+2+1, 5=4+1, 5=4+1 디렉토리와 실행 파일. 모두 들어가고 실행한다(그림 4의 d)
600 rw------- 6=4+2, 0, 0 비밀번호나 열쇠가 든 파일. 소유자만 읽고 고친다
700 rwx------ 7=4+2+1, 0, 0 소유자만 들어가는 디렉토리(그림 8의 /root 와 /home/user)

그림 4는 연습 디렉토리에 빈 파일 f.txt 와 디렉토리 d 를 만든 직후의 권한이다. stat -c "%a %A %n" 은 숫자 표기와 기호 표기를 한 줄에 함께 보인다.

user@raspberrypi:~ $ mkdir -p ~/practice && cd ~/practice && touch f.txt && mkdir d && ls -l
total 4
drwxr-xr-x 2 user user 4096 Oct  9 22:23 d
-rw-r--r-- 1 user user    0 Oct  9 22:23 f.txt
user@raspberrypi:~/practice $ stat -c "%a %A %n" f.txt d
644 -rw-r--r-- f.txt
755 drwxr-xr-x d
그림 4. 새로 만든 파일과 디렉토리의 권한

새 파일은 644, 새 디렉토리는 755 로 만들어졌다. 이 두 값이 정해지는 까닭은 2.6.1절의 umask 에서 계산한다.

2.3 권한 변경

권한은 chmod 로 바꾼다. 파일의 권한을 바꿀 수 있는 사람은 그 파일의 소유자와 root 이다 [1]. chmod 는 숫자 표기와 기호 표기를 모두 받는다. 표 4는 기호 표기를 이루는 세 부분을 나타낸다.

표 4. chmod 기호 표기의 구성
부분 글자 뜻
대상 u, g, o, a 소유자, 그룹, 그 밖의 사용자, 셋 모두
연산 +, -, = 더한다, 뺀다, 적은 것으로 바꾼다
권한 r, w, x 읽기, 쓰기, 실행

그림 5는 f.txt 의 권한을 네 번 바꾸며 매번 ls -l 로 확인한 결과이다. 숫자 표기는 세 묶음을 한꺼번에 정하고, 기호 표기는 적은 부분만 바꾼다.

user@raspberrypi:~/practice $ chmod 600 f.txt; ls -l f.txt
-rw------- 1 user user 0 Oct  9 22:23 f.txt
user@raspberrypi:~/practice $ chmod u+x,g+r f.txt; ls -l f.txt
-rwxr----- 1 user user 0 Oct  9 22:23 f.txt
user@raspberrypi:~/practice $ chmod 755 f.txt; ls -l f.txt
-rwxr-xr-x 1 user user 0 Oct  9 22:23 f.txt
user@raspberrypi:~/practice $ chmod 644 f.txt; ls -l f.txt
-rw-r--r-- 1 user user 0 Oct  9 22:23 f.txt
그림 5. chmod 의 숫자 표기와 기호 표기
  • chmod 600 은 그룹과 그 밖의 권한을 모두 지웠다(rw-------).
  • chmod u+x,g+r 은 소유자에게 x 를, 그룹에게 r 을 더했다. 그 밖의 사용자 묶음은 그대로 --- 이다(rwxr-----, 숫자로 740).
  • chmod 755 와 chmod 644 는 앞의 상태와 관계없이 세 묶음을 표 3의 값으로 바꾸었다.

디렉토리 안의 모든 파일을 한꺼번에 바꾸는 -R 옵션도 있다. 그러나 chmod -R 755 처럼 숫자를 쓰면 파일과 디렉토리가 같은 값을 받는다. 일반 파일에도 x 가 붙으므로, 파일과 디렉토리를 나누어야 할 때는 Ⅱ-1 1.6절의 find 로 종류를 골라 바꾼다.

2.4 소유자 변경

소유자는 chown 으로, 그룹은 chgrp 로 바꾼다. 그림 6은 일반 사용자가 자기 파일 f.txt 의 소유자를 root 로 바꾸려 한 결과이다.

user@raspberrypi:~/practice $ chown root f.txt
chown: changing ownership of 'f.txt': Operation not permitted
user@raspberrypi:~/practice $ ls -l f.txt
-rw-r--r-- 1 user user 0 Oct  9 22:23 f.txt
그림 6. 일반 사용자의 chown 거부

자기 파일인데도 소유자를 바꾸지 못하였다. 리눅스에서 파일의 소유자를 바꿀 수 있는 것은 관리자 권한을 가진 프로세스뿐이기 때문이다 [2]. 그래서 chown 은 2.5절의 sudo 를 붙여 실행한다.

그룹을 바꾸는 규칙은 다르다. 소유자는 자기가 속한 그룹으로만 파일의 그룹을 바꿀 수 있다 [2]. 그림 7은 연습 디렉토리에 f.txt 를 다시 만들어 그룹을 두 번 바꾸려 한 결과이다.

user@raspberrypi:~/practice $ chgrp users f.txt; ls -l f.txt
-rw-r--r-- 1 user users 0 Oct  9 22:25 f.txt
user@raspberrypi:~/practice $ chgrp root f.txt; ls -l f.txt
chgrp: changing group of 'f.txt': Operation not permitted
-rw-r--r-- 1 user users 0 Oct  9 22:25 f.txt
그림 7. 소속 그룹과 비소속 그룹으로의 chgrp
  • users 그룹으로는 바뀌었다. 그림 1의 groups 에 users 가 있다.
  • root 그룹으로는 거부되었다. 그림 1의 groups 에 root 가 없다.

2.5 관리자 권한

2.5.1 root 와 일반 사용자의 경계

root 는 UID 0 인 관리자 계정이다(표 1). root 의 프로세스는 2.2절의 권한과 관계없이 파일을 읽고 쓰며, 그림 6의 chown 도 실행할 수 있다 [2]. 그림 8은 일반 사용자가 root 의 홈 디렉토리를 열려 한 결과와, 그 디렉토리의 권한이다.

user@raspberrypi:~ $ ls /root
ls: cannot open directory '/root': Permission denied
user@raspberrypi:~ $ ls -ld /root ~
drwx------ 28 user user 4096 Oct  9 22:25 /home/user
drwx------ 25 root root 4096 Oct  9 22:23 /root
그림 8. root 의 홈 디렉토리 접근 거부

/root 의 권한은 700(rwx------)이고 소유자는 root 이다. user 는 소유자도 아니고 root 그룹도 아니므로 셋째 묶음 --- 이 적용되어 거부되었다. 일반 사용자의 홈 /home/user 도 700 이므로 다른 일반 사용자는 들어올 수 없다.

2.5.2 sudo 및 su

일반 사용자가 관리자 명령을 실행하는 방법은 sudo 와 su 두 가지이다. 표 5는 두 명령과 root 로 직접 로그인하는 경우를 비교한 것이다 [3], [5].

표 5. root·sudo·su 의 비교
방법 묻는 비밀번호 권한이 이어지는 범위 기록
root 로 로그인 root 의 비밀번호 로그아웃할 때까지 모든 명령 모든 명령이 root 의 것으로 남아 실제 사람을 구분하지 못한다
su - root 의 비밀번호 exit 할 때까지 모든 명령 su 를 실행한 사용자는 남고, 그 뒤의 명령은 root 의 것으로 남는다
sudo 명령 자기 비밀번호 그 명령 하나 누가 어떤 명령을 실행했는지 남는다

sudo 는 root 의 비밀번호를 여러 사람이 나누어 갖지 않아도 되고, 명령마다 기록이 남는다. 그래서 Raspberry Pi OS 의 첫 사용자는 sudo 로 관리 명령을 실행한다. 누가 sudo 를 쓸 수 있는지는 /etc/sudoers 에 적혀 있다. 그림 9는 sudo 그룹의 구성원과 sudoers 의 해당 규칙이다.

user@raspberrypi:~ $ getent group sudo
sudo:x:27:user
user@raspberrypi:~ $ ls -l /etc/sudoers
-r--r----- 1 root root 1714 Jun 27  2023 /etc/sudoers
root@raspberrypi:~# grep -E '^%sudo' /etc/sudoers
%sudo	ALL=(ALL:ALL) ALL
그림 9. sudo 그룹과 sudoers 규칙 (/etc/sudoers 는 root 만 읽을 수 있어 관리자 셸에서 확인하였다)
  • sudo 그룹의 구성원은 user 하나이다.
  • %sudo 의 % 는 사용자가 아니라 그룹을 가리킨다.
  • ALL=(ALL:ALL) ALL 은 차례로 모든 호스트에서, 모든 사용자와 그룹의 자격으로, 모든 명령을 실행할 수 있다는 뜻이다 [4].
  • /etc/sudoers 의 권한은 440(r--r-----)이다. root 도 바로 고치지 않고 문법 검사를 하는 visudo 로 고친다 [4].

2.6 기본 권한 및 특수 권한

2.6.1 umask

umask 는 새 파일과 디렉토리를 만들 때 지울 권한을 정한 값이다. 그림 10은 이 계정의 umask 를 숫자와 기호로 확인한 결과이다.

user@raspberrypi:~ $ umask
0022
user@raspberrypi:~ $ umask -S
u=rwx,g=rx,o=rx
그림 10. 일반 사용자의 umask

프로그램이 요청한 권한에서 umask 에 켜진 비트를 끈 값이 실제 권한이 된다 [6]. touch 는 파일을 666 으로, mkdir 은 디렉토리를 777 로 요청한다. umask 022 는 그룹과 그 밖의 w(2)를 끄므로 계산은 다음과 같다.

  • 파일. 666(rw-rw-rw-) 에서 그룹·그 밖의 w 를 끄면 644(rw-r--r--)
  • 디렉토리. 777(rwxrwxrwx) 에서 그룹·그 밖의 w 를 끄면 755(rwxr-xr-x)

두 값은 그림 4의 stat 출력 644 와 755 와 같다. umask 를 077 로 바꾸면 같은 계산으로 새 파일은 600, 새 디렉토리는 700 이 된다. umask -S 는 지울 비트가 아니라 남는 권한을 기호로 보이므로, u=rwx,g=rx,o=rx 는 디렉토리의 755 와 같다.

2.6.2 특수 권한

권한 9글자의 x 위치에는 x 대신 s 나 t 가 표시되기도 한다. 이것이 특수 권한이며, 숫자 표기에서는 세 자릿수 앞에 숫자 하나를 더 적는다. 그림 11은 특수 권한이 붙은 디렉토리 하나와 프로그램 둘을 확인한 결과이다.

user@raspberrypi:~ $ ls -ld /tmp /usr/bin/passwd /usr/bin/sudo
drwxrwxrwt 333 root root  36864 Oct  9 22:27 /tmp
-rwsr-xr-x   1 root root  72048 Dec 14  2025 /usr/bin/passwd
-rwsr-xr-x   1 root root 269312 Apr 11 21:01 /usr/bin/sudo
user@raspberrypi:~ $ stat -c "%a %A %n" /tmp /usr/bin/passwd /usr/bin/sudo
1777 drwxrwxrwt /tmp
4755 -rwsr-xr-x /usr/bin/passwd
4755 -rwsr-xr-x /usr/bin/sudo
그림 11. 스티키 비트와 setuid 가 붙은 파일

표 6은 특수 권한 세 가지의 표시와 숫자, 동작을 나타낸다 [7].

표 6. 특수 권한
이름 숫자 표시 위치 동작 이 서버의 예
setuid 4000 소유자의 x 위치에 s 실행한 사람이 아니라 파일 소유자의 권한으로 실행된다 /usr/bin/passwd, /usr/bin/sudo (4755)
setgid 2000 그룹의 x 위치에 s 파일은 파일 그룹의 권한으로 실행된다. 디렉토리에 붙이면 안에 만든 파일이 그 디렉토리의 그룹을 받는다 그림 11에는 없음
스티키 비트 1000 그 밖의 x 위치에 t 디렉토리 안의 파일은 그 파일의 소유자와 디렉토리 소유자, root 만 지우거나 이름을 바꿀 수 있다 /tmp (1777)
  • /tmp 는 777 이므로 누구나 파일을 만든다. 표 2에 따르면 누구나 남의 파일도 지울 수 있어야 하지만, 스티키 비트가 이를 막는다. Ⅱ-1 표 1에서 ‘남의 파일을 지우지 못하게 하는 표시’ 라고 적은 t 가 이것이다.
  • passwd 는 일반 사용자가 실행해도 root 권한으로 실행된다. 그래서 일반 사용자가 root 만 고칠 수 있는 /etc/shadow 의 자기 비밀번호 줄을 바꿀 수 있다.
  • sudo 도 setuid root 이다. 2.5.2절의 sudo 는 이 비트로 root 권한을 얻으며, sudoers 규칙은 그 권한을 누구에게 쓰게 할지 정한다.

2.7 ACL

2.2절의 권한은 소유자 한 명과 그룹 하나에만 따로 줄 수 있다. 다른 사용자 한 명에게만 읽기를 주려면 그 사용자를 그룹에 넣거나 그 밖의 사용자 모두에게 열어야 한다. ACL(Access Control List, 접근 제어 목록)은 사용자나 그룹을 하나씩 지정해 권한을 더한다 [8].

그림 12는 f.txt 에 웹 서버 사용자 www-data 의 읽기 권한을 더하기 전과 후를 getfacl 로 확인하고, 마지막에 setfacl -b 로 ACL 을 지운 결과이다. www-data 는 Debian 계열에서 웹 서버가 실행되는 계정이다.

user@raspberrypi:~/practice $ getfacl f.txt
# file: f.txt
# owner: user
# group: user
user::rw-
group::r--
other::r--

user@raspberrypi:~/practice $ setfacl -m u:www-data:r f.txt
user@raspberrypi:~/practice $ getfacl f.txt
# file: f.txt
# owner: user
# group: user
user::rw-
user:www-data:r--
group::r--
mask::r--
other::r--

user@raspberrypi:~/practice $ ls -l f.txt
-rw-r--r--+ 1 user user 0 Oct  9 22:23 f.txt
user@raspberrypi:~/practice $ setfacl -b f.txt; ls -l f.txt
-rw-r--r-- 1 user user 0 Oct  9 22:23 f.txt
그림 12. setfacl 로 한 사용자에게 읽기 권한 더하기와 지우기

표 7은 그림 12의 두 번째 getfacl 출력의 줄을 나타낸다 [8].

표 7. getfacl 출력 줄의 뜻 (그림 12의 두 번째 출력)
줄 뜻
user::rw- 소유자의 권한. ls -l 의 첫 묶음과 같다
user:www-data:r-- setfacl 로 더한 줄. www-data 한 사용자의 권한
group::r-- 파일 그룹의 권한
mask::r-- 이름을 지정한 사용자·그룹 줄과 파일 그룹 줄이 넘을 수 없는 최대 권한. setfacl 이 저절로 만든다
other::r-- 그 밖의 사용자의 권한. ls -l 의 셋째 묶음과 같다
  • setfacl 의 -m u:www-data:r 은 차례로 고친다(modify), 사용자(u), 이름, 권한이다.
  • ACL 이 붙자 ls -l 의 권한 끝에 + 가 표시되었다. ls -l 만으로는 www-data 의 줄이 보이지 않으므로, + 가 있으면 getfacl 로 확인한다.
  • ACL 이 있는 파일에서 ls -l 의 둘째 묶음은 group 줄이 아니라 mask 줄을 보인다 [8]. 그림 12에서는 두 값이 모두 r-- 이어서 같게 보인다.
  • setfacl -b 로 더한 줄을 모두 지우자 + 표시가 사라졌다.

이 실습에서 www-data 가 f.txt 를 실제로 읽으려면 f.txt 까지 가는 디렉토리마다 www-data 에게 x 가 있어야 한다(표 2). 그림 8에서 /home/user 가 700 이므로, 이 상태에서는 ACL 을 더해도 www-data 가 f.txt 에 닿지 못한다.

다음 글은 Ⅱ-3. 프로세스와 systemd 서비스 이다.

REFERENCES

  1. [1]Free Software Foundation, GNU Coreutils Manual, File permissions. [Online]. Available: https://www.gnu.org/software/coreutils/manual/html_node/File-permissions.html [Accessed: 2026-10-09]
  2. [2]Linux man-pages project, chown(2). [Online]. Available: https://man7.org/linux/man-pages/man2/chown.2.html [Accessed: 2026-10-09]
  3. [3]T. C. Miller, Sudo Manual, sudo(8). [Online]. Available: https://www.sudo.ws/docs/man/sudo.man/ [Accessed: 2026-10-09]
  4. [4]T. C. Miller, Sudo Manual, sudoers(5). [Online]. Available: https://www.sudo.ws/docs/man/sudoers.man/ [Accessed: 2026-10-09]
  5. [5]Linux man-pages project, su(1). [Online]. Available: https://man7.org/linux/man-pages/man1/su.1.html [Accessed: 2026-10-09]
  6. [6]Linux man-pages project, umask(2). [Online]. Available: https://man7.org/linux/man-pages/man2/umask.2.html [Accessed: 2026-10-09]
  7. [7]Linux man-pages project, inode(7). [Online]. Available: https://man7.org/linux/man-pages/man7/inode.7.html [Accessed: 2026-10-09]
  8. [8]Linux man-pages project, acl(5). [Online]. Available: https://man7.org/linux/man-pages/man5/acl.5.html [Accessed: 2026-10-09]
  9. [9]Linux man-pages project, passwd(5). [Online]. Available: https://man7.org/linux/man-pages/man5/passwd.5.html [Accessed: 2026-10-09]
  10. [10]R. Hertzog, R. Mas, The Debian Administrator's Handbook, User and Group Databases. [Online]. Available: https://debian-handbook.info/browse/stable/sect.user-group-databases.html [Accessed: 2026-10-09]

ABOUT AUTHOR

shind

shind

소개글이 아직 없습니다.

댓글 남기기

Your email address will not be published. Required fields are marked *