Skip to content

A library written in Go to make NSS modules for passwd, group, and shadow.

License

Notifications You must be signed in to change notification settings

naimols/go-libnss

 
 

Repository files navigation

⚠️ Avoid relying on Go for shared libraries. The runtime uses signals it assumed to be unused for concurrency management. Assumptions like this are why the verion of Go can not be updated for go-libnss and make Go less predicable when building shared libraries.

The current recommendation is to build services to be compatible with existing protocols like LDAP.

Go-Libnss

This is an abstracted library in Go that wraps around libnss, allowing you to write new nss modules purely in Go.

What's Working?

Right now we only have binding for passwd, group, and shadow. This may change in the future to also implement other NSS features. These are just the most obvious first targets.

How do I use it?

First you should go get the package:

go get github.com/protosam/go-libnss

Take a gander at the example directory. It includes information on how to compile the example and you can use the implementation as a boiler plate for your own project.

License

MIT License

Projects Using Go-Libnss

Go-Libnss-Etcd - An NSS package that stores passwd, group, and shadow data in etcd. It also comes with CLI tools for managing users and groups stored in etcd.

About

A library written in Go to make NSS modules for passwd, group, and shadow.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 80.0%
  • C 20.0%