aboutsummaryrefslogtreecommitdiff
path: root/libraries/nss-mysql/README
blob: 9f48ffb1d57e599c51945bd07de7c36e02260f23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
The NSS-MySQL name service switch library

libnss_mysql retrieves user account information from a MySQL database server.
Per default stored in /etc/{group,passwd,shadow} on Unix-like systems. Which
(partly) is similar in functionality to NIS, LDAP, RADIUS, Hesoid, winbindd

When used over a remote-network uttermost care should be taken in the security
of this (such as TLS/SSL encripting the connection) and even then storing any
valid password for such 'virtual' users is probably a bad idee in itself.

Kerberos provides for far superior single-sign-on autentication system (the
'shadow' part in these kinds of systems) both in performance and security.

On to the good stuff :-)
To get this working (locally) login to the database server, presuming that
it is running; otherwise read /etc/rc.d/rc.mysqld first; to make the DB:

# mysql -uroot -p
> CREATE DATABASE nss_mysql;

After this is done it has to be populated with the user tables; there is
an example for them is provided in /usr/doc/nss-mysql-<version>/sample.sql

You can copy that to say /tmp , (probably) edit it some and insert it with:

# mysql -uroot -p -D nss_mysql < /tmp/sample.sql

After this is done create the 'nss' and 'nss-shadow' database users with
statements such as the ones found in /usr/doc/nss-mysql-<version>/SHADOW
And make sure the passwords for them in /etc/nss-{mysql,mysql-root}.conf
are the same ...

Now edit your /etc/nsswitch.conf to look like the -mysql and try the commands

getent passwd
getent shadow

Which should list the users pulled from mysql!
( Otherwise have a look at 'tail /var/log/syslog' - for hints to fix it).

-Menno.