Go bindings to maintain the traditional UNIX utmp/utmpx and lastlog, used for tracking remote terminal sessions.
Find a file
2023-02-02 19:01:13 -08:00
main Added missing arg for linux test 2022-03-19 00:13:23 -07:00
go.mod go.mod 2022-03-19 09:01:33 -07:00
goutmp_bsd.go More fixes to +build constraints (oops, freebsd not bsd) 2020-04-25 19:42:32 -07:00
goutmp_linux.go Fixed +build constraints 2020-04-25 18:39:08 -07:00
LICENSE.mit Added LICENSE file 2018-10-19 18:41:15 -07:00
README.md Update 'README.md' 2023-02-02 19:01:13 -08:00

goutmp - Minimal bindings to C stdlib pututmpx(), getutmpx() (/var/log/wtmp) and /var/log/lastlog

Any Go program which allows user shell access should update the standard UNIX files which track user sessions: /var/log/wtmp (for the 'w' and 'who' commands), and /var/log/lastlog (the 'last' and 'lastlog' commands).

$ go doc -all
package goutmp // import "blitter.com/go/goutmp"

Golang bindings for basic login/utmp accounting

FUNCTIONS

func GetHost(addr string) (h string)
    return remote client hostname or IP if host lookup fails addr is expected to
    be of the format given by net.Addr.String() eg., "127.0.0.1:80" or
    "[::1]:80"

func Put_lastlog_entry(app, usr, ptsname, host string)
    Put the login app, username and originating host/IP to lastlog

func Unput_utmp(entry UtmpEntry)
    Remove a username/host entry from utmp


TYPES

type UtmpEntry struct {
	// Has unexported fields.
}
    UtmpEntry wraps the C struct utmp

func Put_utmp(user, ptsName, host string) UtmpEntry
    Put a username and the originating host/IP to utmp