在Red Hat Enterprise Linux 8.10操作系统下,使用sudo命令时,发现其运行时间超过了10秒。查看/var/log/secure日志文件,发现了以下消息:
Sep 17 15:34:00 yunweixia.com sudo[213372]: root : TTY=pts/4 ; PWD=/home/admin ; USER=root ; COMMAND=/bin/id Sep 17 15:34:05 yunweixia.com sudo[213372]: pam_radius_auth: RADIUS server 192.168.1.10 failed to respond Sep 17 15:34:05 yunweixia.com sudo[213372]: pam_radius_auth: All RADIUS servers failed to respond. Sep 17 15:34:05 yunweixia.com sudo[213372]: pam_unix(sudo:session): session opened for user root by admin(uid=0) Sep 17 15:34:10 yunweixia.com sudo[213372]: pam_radius_auth: RADIUS server 192.168.1.10 failed to respond Sep 17 15:34:10 yunweixia.com sudo[213372]: pam_radius_auth: All RADIUS servers failed to respond. Sep 17 15:34:10 yunweixia.com sudo[213372]: pam_unix(sudo:session): session closed for user root
解决方案
为了解决此问题,可以通过注释掉/etc/pam.d/sudo文件中与pam_radius_auth.so相关的行来禁用RADIUS身份验证。具体修改如下:
# auth sufficient pam_radius_auth.so <<<<==== comment out this line account sufficient pam_radius_auth.so password sufficient pam_radius_auth.so session sufficient pam_radius_auth.so
将 auth 行的 pam_radius_auth.so 前面加上 # 符号进行注释。
结论
问题的根本原因在于sudo配置为通过pam_radius_auth.so进行身份验证,但RADIUS服务器(IP地址为192.168.1.10)未能及时响应pam_radius_auth.so的请求。每次sudo命令运行时,系统都会尝试与RADIUS服务器通信,但由于服务器未响应,导致大约5-10秒的延迟。通过注释掉相关配置行,可以绕过RADIUS身份验证,从而解决此延迟问题。
原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/optimizing-linux-performance-quick-fix-for-sudo-command-timeout-issue.html