diff options
-rw-r--r-- | libs/sys/luasrc/sys.lua | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua index 0bf92e9da..0c18a3636 100644 --- a/libs/sys/luasrc/sys.lua +++ b/libs/sys/luasrc/sys.lua @@ -440,11 +440,17 @@ function user.checkpasswd(username, password) local pwd = account.passwd local shadowpw if #pwd == 1 then - for l in io.lines("/etc/shadow") do - shadowpw = l:match("^%s:([^:]+)" % username) - if shadowpw then - pwd = shadowpw - break + if luci.fs.stat("/etc/shadow") then + if not pcall(function() + for l in io.lines("/etc/shadow") do + shadowpw = l:match("^%s:([^:]+)" % username) + if shadowpw then + pwd = shadowpw + break + end + end + end) then + return nil, "Unable to access shadow-file" end end |