天天看點

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