질문:
- sudo 명령을 실행하는 데 최대 30초가 걸릴 수 있습니다. 걸리는 시간은 일관되지 않으며 이전에 명령을 호출한 경우 명령이 빠르게 반환되는 경우도 있지만 대부분의 경우 필요한 것보다 훨씬 오래 걸립니다. 또한 sudo가 실행될 때떠나다네트워크에서는 즉시 반응하지만, 기기를 WIFI에 연결하면 속도가 매우 느려집니다.
환경
- 운영 체제: Redhat7 엔터프라이즈 리눅스
- 하드웨어:HP Z북 G3
- 스마트 카드 인증이 활성화되었습니다.
sudo -V
:
Sudo version 1.8.6p7 Sudoers policy plugin version 1.8.6p7 Sudoers file grammar version 42 Sudoers I/O plugin version 1.8.6p7
시도했지만 실패한 솔루션:
- 호스트 이름은 /etc/hosts의 두 줄에 있습니다.
- 실행하면
sudo strace -f -t sudo echo
첫 번째 sudo가 중단되고 두 번째 sudo 명령이 예상대로 정상적으로 실행된다는 것이 증명됩니다. - strace에 대한 권한을 변경하여 내 사용자 이름으로 실행할 수 있도록 했습니다. 그래서 실행해
strace -f -t sudo echo
보니 명령이 즉시 반환되었고 중단 현상이 없었습니다. 내가 멈춘 곳을 확인하기 위해 sudo 명령에서 strace를 실행할 수 없는 것 같기 때문에 이것은 불행한 일입니다.
답변1
sudo
지연 시간은 일반적으로 DNS 문제로 인해 발생합니다.
http://forums.fedoraforum.org/showthread.php?t=210503
한 사용자도 이 문제로 인해 비슷한 2분 지연을 경험했습니다.http://forums.fedoraforum.org/showpost.php?s=93387b186c8850e6837cea5f7a43457c&p=1194582&postcount=2
이것이 나의 첫 번째 조사 라인이었습니다. time getent hosts $(hostname)
지연이 있는지 확인해 볼 수 있습니다 .
참고: 이런 일이 계속 발생하는 이유는 업스트림에서 해결되었다고 이해합니다. sudo
배포판에서 사용하는 버전을 알 수 있다면 매우 흥미로울 것입니다.https://bugzilla.redhat.com/show_bug.cgi?id=479464#c9
그렇지 않으면 sudo 내에서 문제가 발생하는지 확인하세요 sudo time sudo echo
. 그런 다음 실행해 볼 수 있습니다 sudo strace -t -f sudo echo
. 많은 출력이 있지만 타임스탬프가 표시됩니다. Recvmsg(메시지 수신, 시간 초과 대기, DNS 응답)와 같이 약간의 지연이 발생하는 일부 시스템 호출을 볼 수 있습니다. 완전한 설명에는 프로그래밍 지식이 필요합니다. dbus를 통해 무언가가 진행되고 있다면 어떤 dbus 서비스가 구체적으로 표시되지 않을 것 같습니다. (드롭박스.com, gist.github.com 등 어딘가에 전체 출력을 게시하고 링크를 걸어주세요.)