一、问题现象
###使用sudo提示输入密码
[userread@test ~]$ sudo jstat -gcutil 69754 3000
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] userread 的密码:
二、解决思路
###使用sudo -l 查看拥有jstat的权限
[userread@test ~]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL
PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC
LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
用户 userread 可以在 test 上运行以下命令:
(ALL) NOPASSWD: /bin/whoami, /bin/cat, /bin/head, /bin/tail, /bin/more, /bin/less, /bin/grep, /bin/jps, /bin/jstack, /opt/modules/jdk1.8.0_281/bin/jstat
###sudo jstat的绝对路径,发现可以执行,不需要密码
[userread@test ~]$ sudo /opt/modules/jdk1.8.0_281/bin/jstat -gcutil 153125 3000
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 78.91 95.44 75.47 91.49 86.65 3239 33.086 6 1.454 34.540
###打印PATH发现有这个绝对路径
[root@test ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/data/software/jprofiler/bin:/opt/modules/jdk1.8.0_281/bin:/root/bin
解决方法:
把绝对路径做个软连接,软连接到/bin/目录下
[root@test ~]# ll /bin/jstat
lrwxrwxrwx 1 root root 35 1月 17 08:15 /bin/jstat -> /opt/modules/jdk1.8.0_281/bin/jstat
[root@test ~]# ll /opt/modules/jdk1.8.0_281/bin/jstat
-rwxr-xr-x. 1 10143 10143 8832 12月 9 2020 /opt/modules/jdk1.8.0_281/bin/jstat
原因:
标签:bin,jdk1.8,免密,LC,sudo,密码,test,jstat
From: https://www.cnblogs.com/world-of-yuan/p/17970313