sudo
当我为我的 Active Directory 用户运行时,如果我长时间不理会它,我的 Fedora 26(安装/加入 AD 时为 25)会出现很长的超时。
超时时间很长。 25秒。
我使用strace
( sudo strace -tt -o sudo_wait.strace sudo dnf update -y
) 来查看是否可以看到系统在这 25 秒内做了什么,但似乎什么也没有:
[...]
07:50:48.362655 poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN}], 2, -1) = 1 ([{fd=7, revents=POLLIN|POLLHUP}])
07:50:48.367202 recvfrom(7, "", 8, MSG_WAITALL, NULL, NULL) = 0
07:50:48.367287 poll([{fd=3, events=POLLIN}], 1, -1) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
07:51:12.493581 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=29817, si_uid=0, si_status=0, si_utime=896, si_stime=124} ---
07:51:12.493646 write(4, "\21", 1) = 1
07:51:12.493717 rt_sigreturn({mask=[]}) = -1 EINTR (Interrupted system call)
07:51:12.493769 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
07:51:12.493820 read(3, "\21", 1) = 1
[...]
sudo
我过去同时运行两者可能不太好strace
,dnf
因为我不知道其中哪一个实际上导致了延迟。
我按照说明将机器加入到 AD这里(或者极其相似)。
如果我sudo
在等待 25 秒后直接再次运行,则不会有延迟,但每天早上,当我在几个小时没有接触机器后尝试时,延迟又回来了。
我怎样才能知道机器正在等待什么?
我如何调整凭据的缓存时间?
如何调整超时时间?
编辑:刚刚发现这在红帽上。按照建议创建/etc/sudo.conf
确实会生成调试日志。现在我只需要等待延迟回来,然后查看该日志。
答案1
您的 AD 用户是许多大型 AD 组的成员吗?这是典型的情况,通常使用ignore_group_members选项抑制组成员会有所帮助。
或者,检查 sssd 日志是否机器能够连接到 AD DC,但是否无法连接(例如连接超时)也是一件好事。