Nessus插件包安装失败?检查文件路径与权限

7 人参与

说起最近在公司里折腾 Nessus 插件包的事儿,我真的有点哭笑不得。原本以为只要点几下下载、跑个命令就能顺利装好,结果却卡在了“插件包安装失败”。翻来覆去的日志里,最常出现的报错居然是:找不到目标路径权限不足,这让我瞬间怀疑是不是系统把我当成了外星人。

先确认路径,别让文件跑丢了

我把插件包 all-2.0.tar.gz 放在了 D:ToolsNessus,但在命令行里跑 nessuscli.exe update all-2.0.tar.gz 时,程序却提示找不到文件。原来我在 cd“C:Program FilesTenableNessus 的目录后才执行的,路径根本不匹配。解决办法很直接:先打开管理员 PowerShell,cd 到插件实际所在的文件夹,再把完整路径写进去,例如:

cd "D:ToolsNessus"
nessuscli.exe update "D:ToolsNessusall-2.0.tar.gz"

这一步搞定后,日志里不再出现 “File not found”,但接下来又冒出了 “Permission denied”。

权限卡点:管理员 vs 普通用户

别小看 Windows 的 UAC,哪怕你是本机管理员,直接在普通 CMD 里跑 nessuscli.exe 也会被拦截。我的经验是:右键 cmd.exe,选“以管理员身份运行”,或者在 PowerShell 里加上 Start-Process -Verb runAs。如果你在服务账户下安装 Nessus,记得把 NETWORK SERVICENT SERVICETenableNessus 加入到插件所在目录的 读取+写入 权限中。

我把 D:ToolsNessus 的安全属性打开,点“编辑”,给 Users 添加了“修改”权限,随后再跑一遍更新命令,奇迹般地成功了。日志里出现了 “Copying templates version … to …”,这才是真正的好消息。

实战小技巧:一键检测脚本

@echo off
set PLUGIN_PATH=%~dp0all-2.0.tar.gz
if not exist "%PLUGIN_PATH%" (
  echo 文件不存在,请检查路径.
  exit /b 1
)
icacls "%PLUGIN_PATH%" | find "NT SERVICETenableNessus" >nul
if errorlevel 1 (
  echo 权限不足,正在尝试添加...
  icacls "%PLUGIN_PATH%" /grant "NT SERVICETenableNessus:(R,W)"
)
echo 开始更新...
nessuscli.exe update "%PLUGIN_PATH%"
pause

把上面的脚本存成 update_plugin.bat,直接双击就能自动检查路径、补足权限,再执行更新,省得每次手动敲命令。

总之,遇到 Nessus 插件包安装失败,先别慌,先把文件放对位置、确认路径完整,再检查一下运行命令的身份和目录权限。把这两件事搞定,后面的更新基本就是“一键搞定”。要是还有别的奇葩报错,欢迎在评论里聊聊,我的咖啡已经泡好,等你来吐槽。

参与讨论

7 条评论
  • 橘子

    文件路径大小写敏感吗?我放的是小写目录一直报错。

    回复
  • 沉稳老鹰

    这权限问题真坑,我加了Users权限还是不行,最后给了Everyone才过…

    回复
  • 吱吱鼠

    前几天刚搞完这个,确实折腾了好久,作者说的路径问题太真实了。

    回复
  • 日与夜

    D盘放工具包本来没问题,但Nessus默认读C盘,容易懵。

    回复
  • 幽界旅人

    脚本里icacls那行在Win10家庭版跑不了啊,有替代方案没?

    回复
  • 梦湮

    hhh终于看到有人提NETWORK SERVICE权限了,之前卡这儿三天!

    回复
  • 夜魇之主

    感觉还行,照着改路径+管理员运行一次就成功了。

    回复