Skip to content

Commit

Permalink
Refs #107, updated version of PAM module and adapted to its current b…
Browse files Browse the repository at this point in the history
…ehaviour.
  • Loading branch information
tvrzna committed Jun 3, 2024
1 parent 0ea3996 commit c2d424d
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 13 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ module github.com/tvrzna/emptty

go 1.14

require github.com/msteinert/pam v1.0.0
require github.com/msteinert/pam/v2 v2.0.0

replace github.com/tvrzna/emptty/src => ./src
12 changes: 6 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
github.com/msteinert/pam v1.0.0 h1:4XoXKtMCH3+e6GIkW41uxm6B37eYqci/DH3gzSq7ocg=
github.com/msteinert/pam v1.0.0/go.mod h1:M4FPeAW8g2ITO68W8gACDz13NDJyOQM9IQsQhrR6TOI=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
github.com/msteinert/pam/v2 v2.0.0 h1:jnObb8MT6jvMbmrUQO5J/puTUjxy7Av+55zVJRJsCyE=
github.com/msteinert/pam/v2 v2.0.0/go.mod h1:KT28NNIcDFf3PcBmNI2mIGO4zZJ+9RSs/At2PB3IDVc=
golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
21 changes: 15 additions & 6 deletions src/auth_pam.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"os"
"os/user"

"github.com/msteinert/pam"
"github.com/msteinert/pam/v2"
)

const tagPam = ""
Expand Down Expand Up @@ -74,34 +74,43 @@ func (h *pamHandle) authUser(conf *config) {
bkpErr := errors.New(err.Error())
username, _ := h.trans.GetItem(pam.User)
addBtmpEntry(username, os.Getpid(), conf.strTTY())
handleErr(bkpErr)
h.handleErr(bkpErr)
}
logPrint("Authenticate OK")

handleErr(h.trans.AcctMgmt(pam.Silent))
handleErr(h.trans.SetItem(pam.Tty, "tty"+conf.strTTY()))
handleErr(h.trans.SetCred(pam.EstablishCred))
h.handleErr(h.trans.AcctMgmt(pam.Silent))
h.handleErr(h.trans.SetItem(pam.Tty, "tty"+conf.strTTY()))
h.handleErr(h.trans.SetCred(pam.EstablishCred))

pamUsr, _ := h.trans.GetItem(pam.User)
usr, _ := user.Lookup(pamUsr)

h.u = getSysuser(usr)
}

func (h *pamHandle) handleErr(err error) {
h.closeAuth()
handleErr(err)
}

// Gets sysuser
func (h *pamHandle) usr() *sysuser {
return h.u
}

// Handles close of PAM authentication
func (h *pamHandle) closeAuth() {
if h != nil && h.usr() != nil && h.trans != nil {
if h != nil && h.trans != nil {
logPrint("Closing PAM auth")
if err := h.trans.SetCred(pam.DeleteCred); err != nil {
logPrint(err)
}
if err := h.trans.CloseSession(pam.Silent); err != nil {
logPrint(err)
}
if err := h.trans.End(); err != nil {
logPrint(err)
}
h.trans = nil
h.u = nil
}
Expand Down

0 comments on commit c2d424d

Please sign in to comment.