/etcd-passwd

Linux user managerment on etcd

Primary LanguageGoMIT LicenseMIT

etcd-passwd

Passwd management by etcd. This is a test project to manage Linux users on etcd.

Install

Install libnss_etcd.so.2 to your local:

# go get github.com/protosam/etcd-passwd
# build libnss_etcd.so.2
$ make

# install to /usr/lib
$ make install

Configure your nsswitch.conf to use libnss_etcd.so.2

# /etc/nsswitch.conf
passwd:         compat etcd

Then launch etcd on localhost:2379:

$ etcd

User management

Add user peter:

$ go run cmd/etcdadduser/main.go --name peter --uid 10000 --gid 10000 --gecos 'Peter Rabbit' --password 'YOURPASSWORD'

You can see added user on etcd

$ ETCDCTL_API=3 etcdctl get --print-value-only  /etcd-passwd/users/10000
{"Name":"peter","Passwd":"!","UID":10000,"GID":10000,"Gecos":"Peter Rabbit","Dir":"/home/peter","Shell":"/bin/sh"}
# Invalidate cache for passwd in getent
$ sudo nscd --invalidate=passwd

# get by `getent`
$ getent passwd peter
peter:!:10000:10000:Peter Rabbit:/home/peter:/bin/sh

# be peter
$ sudo -u peter id
uid=10000(peter) gid=10000 groups=10000

License

MIT


shadow and group functionality added by Sam Peterson sam.igknighted@gmail.com