'sudo : tty가없고 askpass 프로그램이 지정되지 않았습니다'오류를 수정하는 방법?


438

makefile을 사용하여 일부 소스를 컴파일하려고합니다. makefile에는로 실행해야하는 명령이 많이 있습니다 sudo.

터미널에서 소스를 컴파일하면 모든 것이 잘되고 sudo명령을 처음으로 암호를 기다리는 동안 make가 일시 중지 됩니다. 암호를 입력하면 make가 다시 시작되고 완료됩니다.

그러나 NetBeans에서 소스를 컴파일 할 수 있기를 바랍니다. 그래서 프로젝트를 시작하고 소스를 찾을 수있는 위치에 netbeans를 보여 주었지만 프로젝트를 컴파일하면 오류가 발생합니다.

sudo: no tty present and no askpass program specified

처음으로 sudo명령을 내 렸습니다 .

인터넷에서 문제를 찾았으며 찾은 모든 솔루션 중 하나는이 사용자의 암호를 사용하지 않도록 설정하는 것입니다. 문제의 사용자가 루트이기 때문에. 나는 그것을하고 싶지 않습니다.

다른 해결책이 있습니까?


3
장난감 운영 체제를 컴파일하고 있습니다. 부트 섹터로 가상 HDD 생성을 포함하여 VM을 설정하기 위해 몇 가지 작업을 수행해야합니다.
hebbo


serverfault.com/a/597268 에서 지적했듯이 sudo -n my-command나를 위해 일했습니다. 안녕!
andreyevbr가

1
답을 선택하십시오.
ichimaru

1
@andreyevbr 나는 그렇게 생각하지 않습니다. sudo: a password is required
ichimaru

답변:


260

사용자에게 암호를 묻지 않고 해당 명령을 사용하도록 허용하면 문제가 해결됩니다. 먼저 쉘 콘솔을 열고 다음을 입력하십시오.

sudo visudo

그런 다음 해당 파일을 편집하여 맨 끝에 추가하십시오.

username ALL = NOPASSWD: /fullpath/to/command, /fullpath/to/othercommand

예 :

john ALL = NOPASSWD: /sbin/poweroff, /sbin/start, /sbin/stop

사용자 수 johnsudo를 poweroff, startstop암호를 입력하라는 메시지가 표시되지 않고.

화면 하단에서 visudo에 사용해야하는 키 입력이 있는지 확인하십시오.이 방법은 vi가 아니므로 문제의 첫 징후가 없으면 저장하지 않고 종료하십시오. 건강 경고 :이 파일을 손상 시키면 심각한 결과를 초래할 수 있으므로주의해서 편집하십시오!


4
예, sudoers 맨 페이지 는 sudo가 실제로 어떻게 사용되는지에 대한 눈을 뜨고 있습니다.
스펜서 윌리엄스

6
visudo는 환경이 사용하도록 구성된 EDITOR에서 열어야합니다. vi는 아주 좋을 수도 있고 ^ _ ^이어야합니다. vi.
매트 스타일

8
NOPASSWD mathing line이 NOPASSWD 플래그가없는 % wheel과 같이 일치 할 수있는 다른 sudo line 뒤에 있는지 확인하십시오.
앤서니

27
처음에는 sudo를 할 수 없기 때문에 "sudo visudo"를 할 수 없습니다!
Gubatron

8
/etc/sudoers.d에 파일을 추가하고 visudo 파일을 그대로 두십시오.
xlttj

183

시험:

  1. NOPASSWD모든 명령에 줄을 사용하십시오 .

    jenkins ALL=(ALL) NOPASSWD: ALL
    
  2. sudoers파일의 다른 모든 줄 뒤에 줄을 넣으십시오 .

그것은 나를 위해 일했습니다 (우분투 14.04).


13
다른 사용자 구성 후에 처음으로 줄을 추가했지만 lubuntu 14.04.1에서 파일의 마지막 줄로 배치했을 때만 작동했습니다.
user77115

두 번째 부분은 내가 필요한 솔루션이었습니다. 기존 구성 라인 (휠 그룹 용)도 sudo 명령과 일치하지만 NOPASSWD : 항목이 없습니다. 새 줄에 우선 순위를 부여하면 필요한 특정 명령에 암호를 사용할 수 없습니다.
앤서니

5
@ user77115가 언급했듯이 이것은 우분투 16.04에서도 sudoers 파일의 마지막 줄로 배치 한 경우에만 작동했습니다. 참고로, 모든 명령에 대해 jenkins에 sudo 권한을 부여하는 것은 상당히 큰 보안 문제입니다. jenkins 스크립트를 래핑하고 다음과 같은 특정 명령에만 액세스하는 것을 고려하십시오. jenkins ALL=(ALL) NOPASSWD: /var/lib/jenkins/wrapper_script
ivandov

jenkins단지 사용자 이름입니까? 호스트 컴퓨터의 사용자 이름이어야합니까? 호스트 시스템의 사용자 이름이 원격 서버의 사용자 이름과 일치하면 어떻게됩니까?
mrgloom

이것은 젠킨스 고유이며 stackoverflow.com/a/22651598/1041319 가 더 일반적인 솔루션 인 것처럼 보입니다 .
arntg

167

시험:

ssh -t remotehost "sudo <cmd>"

위의 오류가 제거됩니다.


7
-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine참조 : sudo-no-tty-present-and-no-askpass-program-specified askpass 프로그램 sudo -A설정 도 가능 sudo하지만 GUI 만 보입니다. 누구든지 허용 할 askpass를 알고 ssh remotehost sudo -A askpass있습니까?
여기

1
교정의 -Asudo대신 인수를 사용하지 않는 환경을 필요로 SUDO_ASKPASS하거나 sudo.conf 그래서 ssh remotehost sudo -A command것 여전히 작동합니다. 터미널 기반 askpass 프로그램이 여전히 궁금합니다.
여기

7
이것은 나를 위해 작동하지 않습니다 (아마도 스크립트에서 ssh를 호출하기 때문에), 오류가 발생합니다. Pseudo-terminal will not be allocated because stdin is not a terminal.(
knocte

나를 위해 잘 작동합니다. 감사!
xfra35

1
이것은 질문에 대답하지 않습니다.
bschlueter

126

모든 대안을 찾은 후 다음을 발견했습니다.

sudo -S <cmd>

-S (stdin) 옵션은 sudo가 터미널 장치 대신 표준 입력에서 암호를 읽도록합니다.

출처

위의 명령은 여전히 ​​암호를 입력해야합니다. jenkins와 같은 경우 암호 입력을 수동으로 제거하려면이 명령이 작동합니다.

echo <password> | sudo -S <cmd> 

이것은 내 문제를 해결하는 것 같습니다. 그러나이 명령을 사용하면 부작용이 있습니까?
Xiaodong Qi

3
sudo -S <command>- true종료 코드 0을 반환하는 더미 명령 일뿐입니다 ( false1을 반환하는 명령입니다). 다른 모든 사람들은 "스도 (sudo)"가 ​​작동하기를 기대하기 때문에 이것이 하나의 진정한 대답입니다.
Adam Plocher

1
-S : 표준 오류에 프롬프트를 작성하고 터미널 장치를 사용하는 대신 표준 입력에서 비밀번호를 읽습니다. 비밀번호 뒤에 줄 바꾸기 문자가 와야합니다.
fileinster

이것은 즉시 작동하며 시간이 초과 될 때까지 sudo가 작동 할 수 있지만 근본적인 문제는 해결하지 못하고 문제는 다시 발생할 수 있습니다.
nealmcb

나는 그것이 작동하는지 모르지만 보여 주면 Password:아무 일도 일어나지 않습니다. 비밀번호를 입력 할 수 없습니다.
ichimaru

43

sudo기본적으로 연결된 터미널에서 비밀번호를 읽습니다. 문제는 netbeans 콘솔에서 실행될 때 연결된 터미널이 없다는 것입니다. 따라서 다른 방법으로 암호를 입력해야합니다.이를 askpass 프로그램 이라고합니다 .

askpass의 프로그램은 특정 프로그램,하지만 암호를 요청할 수있는 프로그램이 아닙니다. 예를 들어 내 시스템에서 x11-ssh-askpass제대로 작동합니다.

그러기 위해서는 환경 변수 SUDO_ASKPASSsudo.conf파일 에서 사용할 프로그램을 지정해야 합니다 ( man sudo자세한 내용 참조).

sudo옵션을 사용하여 askpass 프로그램을 강제 로 사용할 수 있습니다 -A. 기본적으로 접속 된 터미널이없는 경우에만 사용합니다.


현재 솔루션에는 GUI가 필요합니다. askpass 프로그램은 터미널에서 작동합니다.
여기

@here : 글쎄 ... 터미널에서 ssh를 실행하면 암호를 직접 요청하거나 특별한 것이 필요하지 않습니다 ... 또는 다른 터미널에서 암호를 요청하는 것과 다른 터미널에서 암호를 요청하는 것입니다 ssh 세션을 실행 하시겠습니까?
rodrigo

1
아아 지금 나는 그것이 -A인수를 취하지 않는 것을 본다 . -A환경 SUDO_ASKPASS이나 sudo.conf파일이 필요 합니다. 이 경우 ssh host "export SUDO_ASKPASS=askpass;sudo -A cat /etc/passwd"에도 여전히 터미널 기반 askpass와 함께 작동하지만 @chandru는 다음과 같이 훨씬 간결합니다.ssh -t ...
here

-A를 사용하는 일부 통이 있습니다. 먼저 -A를 사용하고 SUDO_ASKPASS를 설정하지 않으면 오류가 발생합니다. 둘째, -A를 사용하면 ssh는 캐시 된 자격 증명을 사용하지 않으며 항상 암호를 요청합니다.
앤서니

부록으로서 당신은 암호 입력 프로그램에 대한 나의 노트를보고 싶을 것입니다 ... ict.griffith.edu.au/anthony/info/crypto/passwd_input.txt
anthony

26

우분투 16.04 사용자

읽어야 할 파일이 있습니다.

cat /etc/sudoers.d/README

/etc/sudoers.d/myuser에 0440 모드의 파일을 다음 내용으로 배치합니다.

myuser  ALL=(ALL) NOPASSWD: ALL

문제를 해결해야합니다.

다음을 잊지 마십시오 :

chmod 0440 /etc/sudoers.d/myuser

좋은. 인기있는 솔루션보다 깨끗한 솔루션.
Paul Praet

2
이것을 맹목적으로 따르지 마십시오. 여기에 설명 된대로 /etc/sudoers.d에 새 파일을 만들고 더 이상 sudo를 사용할 수 없게되었습니다. 복구 모드를 통해 파일을 삭제해야했습니다.
Stian

25

이거 한번 해봐:

echo '' | sudo -S my_command

그것은 나를 위해 일하지만, 왜 그것이 도움이되는지 설명 할 수 있습니까?
ololobus

@ololobus 당신이 암호를 입력하라는 메시지가 처음에 빈 암호를 보내
니키타 Koksharov

일했다! 높은 등급의 답변 중 어느 것도 나를 위해 해결하지 못했습니다.
drerD

1
이 오류 다음 반환 [sudo] password for alper: Sorry, try again. [sudo] password for alper: sudo: 1 incorrect password attempt @sNICkerssss을
alper

16

우연히 Windows10과 함께 제공되는 우분투 내부에 sudo를 할 수 없기 때문에 여기에 오면

  1. 편집 (메모장) 윈도우에서의 / etc / hosts 파일을이에 위치 할 것입니다 : %localappdata\lxss\rootfs\etc, 추가는 127.0.0.1 WINDOWS8,이는 호스트를 찾을 수있는 첫 번째 오류를 제거 얻을 것이다.

  2. no tty present오류를 없애려면 항상sudo -S <command>


2
질문 설명과 관련이 없지만 질문 제목과 일치하는 이유로 여기에 온 사람들에게 답변을 주셔서 감사합니다. +1
Jayant Bhawal


15

리눅스에 로그인하십시오. 다음 명령을 실행하십시오. sudoer를 편집하는 것은 위험한 제안이므로주의하십시오.

$ sudo visudo

vi 편집기가 열리면 다음을 변경하십시오.

  1. 주석 처리 Defaults requiretty

    # Defaults    requiretty
    
  2. 파일의 끝으로 이동하여 추가하십시오

    jenkins ALL=(ALL) NOPASSWD: ALL
    


11

이것은 나를 위해 일했다 :

echo "myuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

사용자가 "myuser"인 곳

Docker 이미지의 경우 다음과 같습니다.

RUN echo "myuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

9

사용중인 명령 sudo이의 일부 인지 확인하십시오 PATH.

단일 (또는 다중이지만 전부는 아님) 명령 sudoers항목이있는 sudo: no tty present and no askpass program specified경우 명령이 경로의 일부가 아닌 경우 (전체 경로가 지정되지 않은 경우)가 표시됩니다.

명령을 명령에 추가 PATH하거나 절대 경로로 호출 하여 문제를 해결할 수 있습니다.

sudo /usr/sbin/ipset

대신에

sudo ipset


1
이것은 실제로 나를 위해 갈래입니다. 에서 sudoers %sitd ALL=(lamparna) NOPASSWD: /usr/bin/git_push_to_lamparna.sh, /usr/bin/git사용하고 sudo -u lamparna git push --mirror ssh://lamparna@REDMINE/home/lamparna/repos/git/jine/lamparna.git자식 업데이트 후 후크 대가로 no tty하지만, 사용하는 sudo -u lamparna /usr/bin/git push --mirror ssh://lamparna@REDMINE/home/lamparna/repos/git/jine/lamparna.git암호없이 일을.
Foton

7

sudo루트 암호를 묻는 메시지가 표시되고 pseudo-tty가 할당되지 않아 (스크립트의 일부이므로) 명령 이 실패합니다.

이 명령을 실행하려면 루트로 로그인하거나 /etc/sudoers (또는 :) 다음 규칙을 설정해야합니다 sudo visudo.

# Members of the admin group may gain root privileges.
%admin  ALL=(ALL) NOPASSWD:ALL

그런 다음 사용자가 admin그룹 (또는 wheel)에 속하는지 확인하십시오 .

이상적으로 (safer) 루트 권한을 다음과 같이 지정할 수있는 특정 명령으로 만 제한하는 것입니다. %admin ALL=(ALL) NOPASSWD:/path/to/program


나는 그것이 훨씬 안전한 방법이라는 것을 알고 있습니다. 그러나 sudoers파일에 다음 명령을 작성 apache ALL = (ALL) NOPASSWD:/usr/share/apache-tomcat-7.0.61/bin/startup.sh했지만 작동하지 않습니다. 그것은 다음과 같은 오류 제공sudo: >>> /etc/sudoers: syntax error near line 120 <<< sudo: parse error in /etc/sudoers near line 120 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin
muaaz

1
BTW, 그것은 잘 작동 apache ALL=(ALL) NOPASSWD: ALL하지만 보안 위험이 있습니다. :)
muaaz 2016 년

6

내 사건에 대해 누군가를 도울 수 있다고 생각합니다.

먼저 /etc/sudoers위의 답변 을 참조 하여 사용자 설정을 변경했습니다 . 그러나 여전히 작동하지 않았습니다.

myuser   ALL=(ALL) NOPASSWD: ALL
%mygroup  ALL=(ALL:ALL) ALL

내 경우 myuser에는mygroup .

그리고 나는 그룹이 필요하지 않았습니다. 그래서 그 줄을 삭제했습니다.

(나처럼 그 줄을 삭제하지 말고 주석을 표시하십시오.)

myuser   ALL=(ALL) NOPASSWD: ALL

효과가있다!


3

jenkins에서 sudo 명령이 포함 된 쉘 스크립트를 실행하면 예상대로 실행되지 않을 수 있습니다. 이 문제를 해결하려면 따라

간단한 단계 :

  1. 우분투 기반 시스템에서 "$ sudo visudo"를 실행하십시오.

  2. / etc / sudoers 파일이 열립니다.

  3. jenkins 사용자가 이미 해당 파일에 있으면 다음과 같이 수정하십시오.

젠킨스 ALL = (ALL) NOPASSWD : ALL

  1. 파일을 저장

  2. 젠킨스 직업을 다시 시작

  3. 오류 메시지가 다시 표시되지 않아야합니다. :)


3

이 작업을 수행 할 수 있었지만 단계를 올바르게 따르십시오. 가져 오기 오류가 발생하는 모든 사람을위한 것입니다.

1 단계 : 파일 및 폴더에 실행 권한 문제가 있는지 확인하십시오. 리눅스 사용자 사용 :

chmod 777 filename

2 단계 : 실행할 권한이있는 사용자를 확인하십시오.

3 단계 : 열린 터미널 유형이 명령입니다.

sudo visudo

이 코드를 아래 코드에 추가하십시오

www-data ALL=(ALL) NOPASSWD:ALL
nobody ALL=(ALL) NOPASSWD:/ALL

스크립트를 실행할 수있는 권한을 부여하고 모든 라이브러리를 사용할 수 있도록합니다. 사용자는 일반적으로 '아무도'또는 'www-data'입니다.

이제 코드를 다음과 같이 편집하십시오.

echo shell_exec('sudo -u the_user_of_the_file python your_file_name.py 2>&1');

프로세스가 실행 중인지 확인하려면 터미널로 이동하십시오.

ps aux | grep python

이것은 파이썬에서 실행중인 모든 프로세스를 출력합니다.

추가 기능 : 아래 코드를 사용하여 시스템의 사용자를 확인하십시오.

cut -d: -f1 /etc/passwd

감사합니다!


2

이 오류는 일부 sudo ls비쉘 스크립트에서 터미널 명령 (루트 비밀번호가 필요함 )을 루비 프로그램에서 (백틱으로) 실행하려고 할 때도 발생할 수 있습니다 . 이 경우 Expect 유틸리티 ( http://en.wikipedia.org/wiki/Expect ) 또는 그 대안을 사용할 수 있습니다 .
예를 들어 Ruby에서을 sudo ls얻지 않고 실행하려면 sudo: no tty present and no askpass program specified다음을 실행할 수 있습니다.

require 'ruby_expect'

exp = RubyExpect::Expect.spawn('sudo ls', :debug => true)
exp.procedure do
    each do
        expect "[sudo] password for _your_username_:" do
            send _your_password_
        end
    end
end

[이는 TCL 확장 을 예상 하기위한 대안 중 하나를 사용 합니다 : ruby_expect gem].


2

참고로 다른 사람이 같은 문제를 겪을 경우 NOPASSWD 매개 변수를 사용한 이후로 발생해서는 안되는이 오류로 좋은 시간 동안 멈췄습니다.

내가 모르는 것은 tty가없고 sudo가 시작하려고하는 명령이 / etc / sudoers 파일에서 허용 된 명령의 일부가 아닌 경우 sudo가 똑같은 오류 메시지를 발생시킬 수 있다는 것입니다.

내 문제가있는 파일 내용의 간단한 예는 다음과 같습니다.

bguser ALL = NOPASSWD: \
    command_a arg_a, \
    command_b arg_b \
    command_c arg_c

bguser가 tty없이 "sudo command_b arg_b"를 시작하려고하면 (bguser가 일부 데몬에 사용됨) "tty가없고 askpass 프로그램이 지정되지 않았습니다"라는 오류가 발생합니다.

왜?

/ etc / sudoers 파일의 줄 끝에 쉼표가 없기 때문에 ...

(예를 들어 올바른 오류 메시지가 "죄송합니다, 사용자 bguser는 실행할 수 없습니다"이므로 sudo의 버그가 아닌 예상 된 동작인지 궁금합니다.


2

사용자가 단일 실행 파일 'systemctl'로만 제한하고 visudo 파일을 잘못 구성했기 때문에이 오류가 발생했습니다.

내가 가진 것은 다음과 같습니다.

jenkins ALL=NOPASSWD: systemctl

그러나 실행 파일이 기본 경로에 있더라도 실행 파일의 전체 경로를 포함해야합니다. 예를 들면 다음과 같습니다.

jenkins ALL=NOPASSWD: /bin/systemctl

이것은 내 jenkins 사용자가 서비스를 다시 시작할 수는 있지만 전체 루트 액세스 권한은 없습니다


1

한 호스트에서 다른 호스트로 마이그레이션하는 경우 sudoers 파일에서 호스트 이름을 확인하는 것에 대해 기억하지 마십시오.

그래서 이것은 내 / etc / sudoers 설정입니다

User_Alias      POWERUSER = user_name
Cmnd_Alias SKILL = /root/bin/sudo_auth_wrapper.sh
POWERUSER hostname=(root:root) NOPASSWD: SKILL

일치하지 않으면

uname -a
Linux other_hostname 3.10.17 #1 SMP Wed Oct 23 16:28:33 CDT 2013 x86_64 Intel(R) Core(TM) i3-4130T CPU @ 2.90GHz GenuineIntel GNU/Linux

이 오류가 나타납니다.

tty가없고 askpass 프로그램이 지정되지 않았습니다.


1

NOPASSWD를 기반으로하지 않는 다른 옵션 :

  • 루트 권한 ((sudo netbeans) 또는 이와 유사한)을 사용하여 Netbeans을 시작하면 루트로 빌드 프로세스를 포크하여 sudo가 자동으로 성공합니다.
  • suexec에 필요한 작업을 수행하십시오. root가 소유 한 것으로 만들고 모드를 4755로 설정하십시오. (물론 컴퓨터의 모든 사용자가 실행할 수 있습니다.) 그렇게하면 sudo가 전혀 필요하지 않습니다.
  • 부트 섹터로 가상 하드 디스크 파일을 만들 때 sudo가 전혀 필요하지 않습니다. 파일은 파일 일 뿐이며 부트 섹터는 데이터 일뿐입니다. 고급 장치 전달을 수행하지 않는 한 가상 시스템도 루트가 필요하지 않습니다.

1

어쩌면 그 질문에 일치하는 답변이없는 이유는 확실하지 않지만 sudo가 필요한 sshfs를 마운트하려고 할 때 동일한 오류 메시지가 나타납니다. 명령은 다음과 같습니다.

sshfs -o sftp_server="/usr/bin/sudo /usr/lib/openssh/sftp-server" user@my.server.tld:/var/www /mnt/sshfs/www

옵션을 추가하여 -o debug

sshfs -o debug -o sftp_server="/usr/bin/sudo /usr/lib/openssh/sftp-server" user@my.server.tld:/var/www /mnt/sshfs/www

나는이 질문에 대해 같은 메시지를 받았다.

sudo: no tty present and no askpass program specified

그래서 다른 사람들의 대답 /etc/sudoer.d/user을 읽음으로써 다음과 같이 my.server.tld에 파일 을 만들었습니다.

user ALL=NOPASSWD: /usr/lib/openssh/sftp-server

이제 사용자에게 너무 많은 권한을 부여하지 않고도 드라이브를 마운트 할 수 있습니다.


0

이 질문은 오래되었지만 여전히 최신 시스템과 관련이 있습니다. sudo의 디버그 모드를 활성화 한 후 (Debug sudo /var/log/sudo_debug all@info in /etc/sudo.conf) / dev : " /dev is world writable"를 가리 켰습니다 . 따라서 tty 파일 권한 , 특히 tty / pts 노드가있는 디렉토리의 권한확인 해야 할 수도 있습니다 .


0

오픈 / etc / sudoers 1 개

유형 sudo vi /etc/sudoers . 파일이 편집 모드로 열립니다.

2 리눅스 사용자 추가 / 수정

Linux 사용자의 항목을 찾으십시오. 발견되면 아래와 같이 수정하거나 새 줄을 추가하십시오.

<USERNAME> ALL=(ALL) NOPASSWD: ALL

3 저장 후 편집 모드 종료


0

이 줄을 /etc/sudoers(via visudo)에 추가하면 암호 입력을 비활성화하지 않고 별칭 sudo -S이 작동하지 않을 때 (스크립트 호출 sudo) 이 문제를 해결합니다 .

Defaults visiblepw

물론 설명서 를 이해하기 위해 직접 읽으 십시오.하지만 lxc exec instance -- /bin/bash네트워크를 통해 암호를 인쇄하지 않기 때문에 LXD 컨테이너에서 안전한 경우를 통해 사용하는 경우가 있습니다.


0

파이프 라인 사용하기 :

echo your_pswd | sudo -S your_cmd

여기 문서 사용하기 :

sudo -S cmd <<eof
pwd
eof
#remember to put the above two lines without "any" indentations.

터미널을 열어서 암호를 물어보십시오

gnome-terminal -e "sudo cmd"
xterm -e "sudo cmd"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.