luci-base: add luci/setPassword rpc method, dropbear feature flag
authorJo-Philipp Wich <jo@mein.io>
Mon, 16 Sep 2019 05:49:05 +0000 (07:49 +0200)
committerJo-Philipp Wich <jo@mein.io>
Mon, 16 Sep 2019 05:49:05 +0000 (07:49 +0200)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-base/root/usr/libexec/rpcd/luci

index 99c172a96b780cc6893474984ef28010aa4c9303..fb15dab6a523de3d6d17c0852ac89efd131b27b1 100755 (executable)
@@ -396,6 +396,7 @@ local methods = {
                        rv.zram          = fs.access("/sys/class/zram-control")
                        rv.sysntpd       = fs.readlink("/usr/sbin/ntpd") and true
                        rv.ipv6          = fs.access("/proc/net/ipv6_route")
+                       rv.dropbear      = fs.access("/usr/sbin/dropbear")
 
                        local wifi_features = { "eap", "11n", "11ac", "11r", "11w", "acs", "sae", "owe", "suiteb192" }
 
@@ -575,6 +576,20 @@ local methods = {
                                return { error = err }
                        end
                end
+       },
+
+       setPassword = {
+               args = { username = "root", password = "password" },
+               call = function(args)
+                       local util = require "luci.util"
+                       return {
+                               result = (os.execute("(echo %s; sleep 1; echo %s) | passwd %s >/dev/null 2>&1" %{
+                                       luci.util.shellquote(args.password),
+                                       luci.util.shellquote(args.password),
+                                       luci.util.shellquote(args.username)
+                               }) == 0)
+                       }
+               end
        }
 }