summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--libs/sys/luasrc/sys.lua16
1 files changed, 8 insertions, 8 deletions
diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua
index 4bf2946788..0bf92e9da4 100644
--- a/libs/sys/luasrc/sys.lua
+++ b/libs/sys/luasrc/sys.lua
@@ -438,18 +438,18 @@ function user.checkpasswd(username, password)
if account then
local pwd = account.passwd
- if pwd == "!" then
- return true
- elseif pwd == "x" then
- pwd = nil
+ local shadowpw
+ if #pwd == 1 then
for l in io.lines("/etc/shadow") do
- pwd = l:match("^%s:([^:]+)" % username)
- if pwd then
+ shadowpw = l:match("^%s:([^:]+)" % username)
+ if shadowpw then
+ pwd = shadowpw
break
end
end
- if not pwd then
- return nil, "No shadow password for " .. username
+
+ if pwd == "!" then
+ return true
end
end