sudo
Ubuntu 14.04 서버에 처음 입력한 것은 항상 느렸습니다. 비밀번호 프롬프트가 즉시 표시되지만 Enter를 누른 후 인쇄물이 나타나는 데 약 10-15초 정도 걸립니다. 이후의 모든 sudo 명령은 즉시 실행됩니다.
이 경우 유사한 명령을 실행하면 sudo strace -S time -c sudo echo hi
유용한 정보가 표시되지 않습니다. 왜냐하면 sudo from은 sudo echo hi
이미 두 번째 sudo이고 매우 빠르게 실행되기 때문입니다. 시간이 지나서 실행 중인 세션에서 비밀번호를 다시 입력해야 하면 다시 속도가 느려집니다.
내가 찾은 모든 해결책은 127.0.0.1 의 해상도로 파일에 호스트 이름을 추가하는 것이었지만 /etc/hosts
아무 소용이 없었습니다. su root
즉시 실행하십시오. 지난 며칠 동안 내가 변경한 것을 기억하는 유일한 것은 서버가 라우팅되는 서브넷의 넷마스크이며, samba, dnsutils 및bind9를 설치하는 것입니다. 그러나 이러한 프로세스 중 어느 것도 실행되고 있지 않으며 물리적 액세스, ssh 세션 및 tmux 세션에서 문제가 여전히 존재합니다.
편집: 새로운 방법
sudo tcpdump -vvvi any > tcpdump.log
모든 네트워크 카드를 분리한 상태에서 실행을 시도했습니다 . 로그에는 다음과 같은 내용이 많이 표시됩니다.
18:35:09.453399 IP (tos 0x0, ttl 64, id 49112, offset 0, flags [DF], proto UDP (17), length 76)
localhost.38498 > localhost.domain: [bad udp cksum 0xfe4b -> 0x1050!] 58546+ SRV? _kerberos._udp.KF.OURLOCALDOMAIN.DE. (48)
18:35:09.457412 IP (tos 0x0, ttl 64, id 49113, offset 0, flags [none], proto UDP (17), length 76)
localhost.domain > localhost.38498: [bad udp cksum 0xfe4b -> 0x8fcd!] 58546 ServFail q: SRV? _kerberos._udp.KF.OURLOCALDOMAIN.DE. 0/0/0 (48)
동일한 항목이 udp 대신 tcp로 나타납니다. 우리 대학의 도메인 이름을 OURLOCALDOMAIN으로 바꿨습니다.
이제 나는 kerberos가 그것과 관련이 있을 것이라고 생각했지만 /etc/krb5.conf를 삭제하고 재부팅했지만 여전히 변경 사항이 없습니다. 서버가 우리 대학 네트워크의 중앙 Kerberos 서버에 대해 자신을 인증하려고 시도하는 것 같습니다. 나는 몇 년 전에 이 IP가 우리 부서의 삼바를 실행하는 서버에 등록된 것으로 알고 있습니다. 연락해도 될까요? 호스트 이름을 당시 사용하던 이름으로 변경했는데 sudo 동작에는 변화가 없었습니다. Lmwangi가 PAM에 관해 뭔가를 제안했는데, 저는 그것에 대해 아는 바가 거의 없어서 이 문제를 해결하는 방법을 모르겠습니다. 삼바를 설치할 때 삼바 설치에 문제가 있어서 Heimdal Kerberos에서 MIT Kerberos로 전환했던 기억이 납니다. 저도 며칠간 댓글에 있는 아이디어를 시도해 볼 예정인데, 며칠간 여행을 다녀야 하므로 시간이 좀 걸릴 수 있습니다.
편집 2: 해결됨
모든 것을 엉망으로 만드는 기존 DNS 검색 항목이 있습니다 /etc/network/interfaces
. 내 자신이 멍청하게 느껴진다. 이제 모든 것이 잘 작동합니다.
답변1
귀하의 컴퓨터가 PAM을 사용하여 외부 인증 서비스(예: NIS/LDAP)에 연결을 시도하고 있는 것 같습니다...
PAM을 올바르게 이해하면 strace 호출에서 PAM 조회가 표시되지 않습니다. tshark/tcpdump를 실행하고 특정 네트워크 트래픽을 sudo 시도와 연관시킬 수 있는지 확인하는 것이 좋습니다. 여기서 용의자는 DNS 조회 및 LDAP 호출입니다.
tcpdump -i eth0 -w network.pcap -s0 -Av
발견의 원인을 찾았다면 관련 PAM 모듈을 찾아 문제를 편집하고 해결하십시오. 또는 DNS 조회인 경우 /etc/hosts 항목을 추가하여 이름을 위조하고 localhost로 리디렉션합니다. 이렇게 하면 조회가 빨라지고 localhost로 리디렉션되고 localhost에서 수신 대기 중인 항목이 없기 때문에 네트워크 트랜잭션이 빠르게 실패하므로 sudo가 더 빨라집니다.