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

动手做之前先仔细阅读上面这两个讨论区,大有裨益。




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