OpenWrt LuCI多級用戶設計

最近做OpenWrt,需要設計一個多級用戶模塊,毫無頭緒,在百度中搜索到一篇博客,但其中的代碼有一些問題,而且連續不到博主,於是作罷。

在谷歌中搜索到了一個LuCI開源項目,並一直維護到現在。

該項目實現的主要功能如下:

①通過LuCI UI添加、刪除用戶;

②設置SSH登陸權限、訪問menus權限

新創建用戶的密碼默認爲openwrt,用戶登陸系統後可以在System->Administration中修改自己的密碼

目前該項目一直在更新中,在更新過程中創建了多個版本,因爲該項目使用了一些自定義函數如get_user(),luci-app-multi-user不能單獨編譯安裝,需要在自己的編譯環境中編譯整個LuCI,hnyman說可以在make menuconfig中將luci-app-multi-user、luci等相關模塊選擇成module,編譯成ipk安裝,但是博主嘗試了一整天都沒有實現,最後將app-multi-user、luci...編譯到固件中,方實現多用戶功能。

Hnyman維護的項目git源地址:https://github.com/hnyman/luci/tree/multi3(最新banch是multi4-clean,支持trunk、LEDE版本)

源碼獲取方式:

 cd feeds/luci
 git checkout -b multiuser
 git remote add hnyman https://github.com/hnyman/luci.git
 git pull hnyman multi3 # 最新banch是multi4-clean
 git log --oneline

git pull過程中會出現文件合併衝突,提示讓手動修改,此時可以執行:

git reset --hard origin/multi3 #異味丟棄本地分支,保留遠端multi3分支

遇到合併衝突時,不要自己盲目亂操作(如果對git不熟悉),多查多看是王道。


執行完上述命令後,更新feed:

./scripts/feeds update -a
./scripts/feeds install -a


執行完install後,向上翻看,查看luci-app-multi-user包有沒有安裝成功

執行make menuconfig, 選擇multi-user等相關模塊

執行make V=99編譯固件,在編譯過程中可能會出現:

Error: Cannot create regular file /bin/po2lmo: Permission denied

解決方法:

修改/trunk/feeds/luci/modules/luci-base/Makefile

define Host/Install
     $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin
     $(INSTALL_BIN) src/po2lmo $(STAGING_DIR_HOST)/bin/po2lmo
     $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/LuaSrcDiet.lua $(STAGING_DIR_HOST)/bin/LuaSrcDiet


Hostle(實際開發者)維護的項目git源地址:https://github.com/Hostle/luci

論壇:

https://github.com/openwrt/luci/issues/623

https://forum.openwrt.org/viewtopic.php?pid=357891#p357891

動手做之前先仔細閱讀上面這兩個討論區,大有裨益。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章