openwrt Luci 设置非root用户登录

   

     出于系统安全考虑,需要把Luci登录和SSH登录的账户做隔离。

     其实就是在系统原有基础上,增加一个只能访问Luci的非root账户。

 

(一)首先需要增加一个root权限的admin用户,我是用手动修改文件的方式添加,还可以使用useradd命令添加。

1、创建用户 package\base-files\files\etc\passwd (系统中路径 \etc\passwd )

       root:x:0:0:root:/root:/bin/ash
+      admin:x:0:0:admin:/root:/bin/false
       daemon:*:1:1:daemon:/var:/bin/false
       ftp:*:55:55:ftp:/home/ftp:/bin/false
       network:*:101:101:network:/var:/bin/false

注意:需要将登录Shell改为false,这样就不可以用admin用户登录SSH和串口。

 

2、设置密码 package\base-files\files\etc\shadow  (系统中路径 \etc\shadow  )

     root:$1$zQwaOOzF$h8DoCAuWFGJB1uCd6l11x1:18096:0:99999:7:::
+    admin:$1$Fm5h2QN9$jq.LJZWpFtt/bFaEKqKoh.:18096:0:99999:7:::
     daemon:*:0:0:99999:7:::
     ftp:*:0:0:99999:7:::
     network:*:0:0:99999:7:::

这一步其实是先编辑  /etc/shadow 文件,方法是复制 root 的那行信息出来,然后改名为 admin,接着再 passwd admin 命令修改密码。

 

(二)修改Luci页面文件

1、feeds/luci/modules/luci-base/luasrc/controller/admin/index.lua   (系统中路径 /usr/lib/lua/luci/controller/admin/index.lua )

-       page.sysauth = "root"
+       page.sysauth = "admin"

 

2、feeds/luci/modules/luci-mod-system/luasrc/controller/admin/system.lua  

(系统中路径 /usr/lib/lua/luci/controller/admin/system.lua )

-       luci.http.write_json({ code = luci.sys.user.setpasswd("root", password) })
+       luci.http.write_json({ code = luci.sys.user.setpasswd("admin", password) })

这一步很重要,否则 LUCI 会允许你用这个新建的用户修改了 root 的密码(在 system->administration 这里操作)。

 

3、/usr/lib/lua/luci/controller/admin/servicectl.lua  有些版本可能需要修改这个文件

entry({"servicectl"}, alias("servicectl", "status")).sysauth = "root"
改为:
entry({"servicectl"}, alias("servicectl", "status")).sysauth = {"admin"}

这么做则允许 LUCI 可以保存并且激活所做的设置。

 

(三)rpcd

package\system\rpcd\files\rpcd.config (系统中路径 /etc/config/rpcd)

+    config login
+           option username 'admin'
+           option password '$p$admin'
+           list read '*'
+           list write '*'

rpcd和Luci的关系:rpcd被uhttpd(luci页面的web服务器)调用,网页修改配置后 ,由rpcd通知procd调用相应的服务。

所以这里要给新增加的用户,增加权限吧。

 

 

 

本文参考以下文章:

http://www.groad.net/bbs/forum.php?mod=viewthread&tid=8847

https://forum.openwrt.org/t/solved-luci-add-support-user-in-addition-to-root/17402

https://blog.csdn.net/wdsfup/article/details/70786602

你可能感兴趣的:(openwrt)