我正在 Windows 中使用 plink 来 SSH linux 机器。我需要找出 Linux 机器的 Ram 和插槽详细信息。我编写了一个 shell 脚本来获取详细信息并以 JSON 格式显示。
但问题是我已经用过
dmidecode --type 17
获取内存详细信息。需要以 Sudo 用户身份运行该命令。我可以在 SSH 中使用“-t”选项传递密码。但这不是我想要的。输出不应是交互式的。
当我经过
Plink.exe -l 登录 -pw 密码 HOSTNAME -m “MySHellScriptFile.sh”
它应该显示结果。但我无法使用 SUDO 命令实现这一点,因为它会要求输入密码。我甚至不能使用lshw -class memory
,因为它还需要 Sudo 权限才能显示内存插槽相关详细信息。我需要 Bank Locator、Speed、Type、Ram Size。有没有办法用非 Sudo 命令找到这些详细信息?或者有没有办法在 plink 本身中传递 SUDO 命令的密码?
答案1
您可以设置 sudo 以允许用户无需密码即可使用 sudo,并且只能运行该命令。
我建议在 /etc/sudoers.d/ 中创建一个新文件,并将以下几行放入其中
Cmnd_Alias GET_RAM = lshw -class memory
user ALL = GET_RAM NOPASSWD: ALL
这个配置是我突然想到的,所以试一试,看看效果如何。
只需将用户替换为您的用户,并确保打开备用 root 会话,以防您搞砸 sudo :)