Freebsd

如何檢查 wpa_supplicant.conf 是否有任何語法錯誤?

  • December 10, 2018

我想知道是否有一個工具可以讓我檢查我是否在wpa_supplicant.conf(5)中犯了任何語法錯誤。

我正在尋找一個用於wpa_supplicant(8)的實用程序,它的用途與 sudo(8)套件中的visudo(8)--check標誌相同。

到目前為止我想出的唯一解決方案是執行

wpa_supplicant -c wpa_supplicant.conf -iNonexistentInterface`

但它並不理想。部分原因是由於介面名稱無效,返回碼始終為 255。

理想情況下,我希望該實用程序在 FreeBSD 上執行。

我理解你的願望,但不知道這樣的事情。這將是一個不錯的功能。但我認為你現在已經很接近了。

但是,如果您願意考慮稍微不同的方法,還有另一個名為wpa_cli的實用程序可能會有所幫助。或者,也許您知道並且已經放棄了這個想法。

它與基本系統中的wpa_supplicant.conf一起可用:

$ uname -r
11.1-RELEASE
$ wpa_cli -v
wpa_cli v2.5
Copyright (c) 2004-2015, Jouni Malinen <j@w1.fi> and contributors

2.7 版可作為埠使用。

不幸的是,手冊頁沒有保持最新。自述文件也不是

wpa_cli -help列出所有目前選項。其中這些可能很有趣:

  • 重新配置
  • 傾倒
  • 保存配置

如果您可以接受正在更改實時設置的事實 - 然後set允許您調整配置並為每個設置獲取錯誤。當事情符合您的喜好時,您可以使用save_config.

另一個 - 可能很明顯 - 想法是添加-dd到您的wpa_supplicant命令行。但仍然不理想。

但是您的總體想法實際上是可行的。儘管無論出現什麼錯誤,它似乎總是以退出程式碼 255 消失。文本輸出很容易解析。

如果您遇到解析失敗,您可以隨時查找:

Failed to read or parse configuration '{}'.

所有解析失敗都以Line {}:

但是建議上游允許-t測試代替-i更細粒度的退出狀態可能是一個好主意。

引用自:https://unix.stackexchange.com/questions/486820