mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-22 19:44:21 +01:00
libraries/nss-mysql: Initial import
This commit is contained in:
parent
692b814b6a
commit
fa5d40c6c9
7 changed files with 324 additions and 0 deletions
41
libraries/nss-mysql/README
Normal file
41
libraries/nss-mysql/README
Normal file
|
@ -0,0 +1,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.
|
19
libraries/nss-mysql/doinst.sh
Normal file
19
libraries/nss-mysql/doinst.sh
Normal file
|
@ -0,0 +1,19 @@
|
|||
config()
|
||||
{
|
||||
NEW="$1"
|
||||
OLD="`dirname $NEW`/`basename $NEW .new`"
|
||||
# If there's no config file by that name, mv it over:
|
||||
if [ ! -r $OLD ]; then
|
||||
mv $NEW $OLD
|
||||
elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then
|
||||
# toss the redundant copy
|
||||
rm $NEW
|
||||
fi
|
||||
# Otherwise, we leave the .new copy for the admin to consider...
|
||||
}
|
||||
|
||||
# Try not to mess over any costum settings
|
||||
config etc/nss-mysql-root.conf.new
|
||||
config etc/nss-mysql.conf.new
|
||||
config etc/nsswitch.conf-mysql.new
|
||||
|
137
libraries/nss-mysql/nss-mysql-1.0-config.patch
Normal file
137
libraries/nss-mysql/nss-mysql-1.0-config.patch
Normal file
|
@ -0,0 +1,137 @@
|
|||
diff -ur nss-mysql-1.0.std/SHADOW nss-mysql-1.0/SHADOW
|
||||
--- nss-mysql-1.0.std/SHADOW 2005-01-26 04:42:13.000000000 +0100
|
||||
+++ nss-mysql-1.0/SHADOW 2007-05-18 16:04:32.000000000 +0200
|
||||
@@ -45,7 +45,7 @@
|
||||
## shadow extentions in your database, you must add these columns to the
|
||||
## following SQL request.
|
||||
|
||||
-> GRANT select(user_name,password,user_id,status,name) on nss_mysql.user to
|
||||
+> GRANT select(user_name,password,user_id,status) on nss_mysql.user to
|
||||
'nss-shadow'@localhost identified by 'another_password';
|
||||
|
||||
> FLUSH PRIVILEGES;
|
||||
diff -ur nss-mysql-1.0.std/nss-mysql-root.conf nss-mysql-1.0/nss-mysql-root.conf
|
||||
--- nss-mysql-1.0.std/nss-mysql-root.conf 2002-08-28 18:47:53.000000000 +0200
|
||||
+++ nss-mysql-1.0/nss-mysql-root.conf 2007-05-18 16:07:32.000000000 +0200
|
||||
@@ -46,7 +46,8 @@
|
||||
# 2) inet:host (port will be 3306)
|
||||
# 3) host:port (inet socket will be used)
|
||||
# 4) host (inet socket on port 3306 will be used)
|
||||
-shadow.host = inet:localhost:3306;
|
||||
+#shadow.host = inet:localhost:3306;
|
||||
+shadow.host = unix:/var/run/mysql/mysql.sock;
|
||||
|
||||
# database: database name
|
||||
# This database MUST contain all the columns mentionned in this file
|
||||
@@ -63,7 +64,7 @@
|
||||
# backup host
|
||||
# A backup MySQL server
|
||||
# Can be empty
|
||||
-shadow.backup_host = inet:backup:3306;
|
||||
+#shadow.backup_host = inet:backup:3306;
|
||||
|
||||
# The following parameters are just like
|
||||
# the main server. They can be empty.
|
||||
@@ -71,7 +72,7 @@
|
||||
# the corresponding value for the main
|
||||
# server will be use
|
||||
|
||||
-shadow.backup_database = nss_mysql_backup;
|
||||
+#shadow.backup_database = nss_mysql_backup;
|
||||
# shadow.backup_db_user = nss;
|
||||
# shadow.backup_db_password = mAip2sFxXJcw;
|
||||
|
||||
@@ -103,39 +104,45 @@
|
||||
# if you do not have such a column, you can use something like
|
||||
# shadow.lastchange_column = UNIX_TIMESTAMP()-10;
|
||||
# The field name must be fully qualified, i.e. written as table.field
|
||||
-shadow.lastchange_column = user.lastchange;
|
||||
+#shadow.lastchange_column = user.lastchange;
|
||||
+shadow.lastchange_column = UNIX_TIMESTAMP()-10;
|
||||
|
||||
# min_column
|
||||
# Minimum number of days to warn user to change the password
|
||||
# if you do not have such a column, you can use something like
|
||||
# shadow.min_column = 1;
|
||||
# The field name must be fully qualified, i.e. written as table.field
|
||||
-shadow.min_column = user.min;
|
||||
+#shadow.min_column = user.min;
|
||||
+shadow.min_column = 1;
|
||||
|
||||
# max_column
|
||||
# Maximum number of days to warn user to change the password
|
||||
# if you do not have such a column, you can use something like
|
||||
# shadow.max_column = 2;
|
||||
# The field name must be fully qualified, i.e. written as table.field
|
||||
-shadow.max_column = user.max;
|
||||
+#shadow.max_column = user.max;
|
||||
+shadow.max_column = 2;
|
||||
|
||||
# warn_column
|
||||
# Number of days to warn user to change the password
|
||||
# if you do not have such a column, you can use something like
|
||||
# shadow.warn_column = 7;
|
||||
# The field name must be fully qualified, i.e. written as table.field
|
||||
-shadow.warn_column = user.warn;
|
||||
+#shadow.warn_column = user.warn;
|
||||
+shadow.warn_column = 7;
|
||||
|
||||
# inact_column
|
||||
# Number of days the account may be inactive
|
||||
# if you do not have such a column, you can use something like
|
||||
# shadow.inact_column = -1; # disabled
|
||||
# The field name must be fully qualified, i.e. written as table.field
|
||||
-shadow.inact_column = user.inact;
|
||||
+#shadow.inact_column = user.inact;
|
||||
+shadow.inact_column = -1;
|
||||
|
||||
# expire_column
|
||||
# Number of days since 1970-01-01 until account expired
|
||||
# if you do not have such a column, you can use something like
|
||||
# shadow.expire_column = -1; # disabled
|
||||
# The field name must be fully qualified, i.e. written as table.field
|
||||
-shadow.expire_column = user.expire;
|
||||
+#shadow.expire_column = user.expire;
|
||||
+shadow.expire_column = -1;
|
||||
diff -ur nss-mysql-1.0.std/nss-mysql.conf nss-mysql-1.0/nss-mysql.conf
|
||||
--- nss-mysql-1.0.std/nss-mysql.conf 2002-08-28 18:47:53.000000000 +0200
|
||||
+++ nss-mysql-1.0/nss-mysql.conf 2007-05-18 16:08:12.000000000 +0200
|
||||
@@ -46,7 +46,8 @@
|
||||
# 2) inet:host (port will be 3306)
|
||||
# 3) host:port (inet socket will be used)
|
||||
# 4) host (inet socket on port 3306 will be used)
|
||||
-users.host = inet:localhost:3306;
|
||||
+#users.host = inet:localhost:3306;
|
||||
+users.host = unix:/var/run/mysql/mysql.sock;
|
||||
|
||||
# database: database name
|
||||
# This database MUST contain all the columns mentionned in this file
|
||||
@@ -63,7 +64,7 @@
|
||||
# backup host
|
||||
# A backup MySQL server
|
||||
# Can be empty
|
||||
-users.backup_host = inet:backup:3306;
|
||||
+#users.backup_host = inet:backup:3306;
|
||||
|
||||
# The following parameters work just like
|
||||
# the main server's. They can be empty.
|
||||
@@ -71,7 +72,7 @@
|
||||
# the corresponding value for the main
|
||||
# server will be used
|
||||
|
||||
-users.backup_database = nss_mysql_backup;
|
||||
+#users.backup_database = nss_mysql_backup;
|
||||
# users.backup_db_user = nss;
|
||||
# users.backup_db_password = mAip2sFxXJcw;
|
||||
|
||||
diff -ur nss-mysql-1.0.std/sample.sql nss-mysql-1.0/sample.sql
|
||||
--- nss-mysql-1.0.std/sample.sql 2005-01-26 04:39:06.000000000 +0100
|
||||
+++ nss-mysql-1.0/sample.sql 2007-05-18 16:04:11.000000000 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
# MySQL dump 8.9
|
||||
#
|
||||
-# Host: localhost Database: nss-mysql
|
||||
+# Host: localhost Database: nss_mysql
|
||||
#
|
||||
|
||||
#
|
72
libraries/nss-mysql/nss-mysql.SlackBuild
Normal file
72
libraries/nss-mysql/nss-mysql.SlackBuild
Normal file
|
@ -0,0 +1,72 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Slackware build script for NSS-MySQL
|
||||
# Written by Menno E. Duursma <druiloor@zonnet.nl>
|
||||
|
||||
# Modified by the SlackBuilds.org project
|
||||
set -e
|
||||
|
||||
PRGNAM=nss-mysql
|
||||
VERSION=1.0
|
||||
ARCH=${ARCH:-i486}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
CWD=$(pwd)
|
||||
TMP=${TMP:-/tmp/SBo}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
if [ "$ARCH" = "i486" ]; then
|
||||
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
|
||||
elif [ "$ARCH" = "i686" ]; then
|
||||
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||
fi
|
||||
|
||||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf $PRGNAM-$VERSION
|
||||
tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz
|
||||
cd $PRGNAM-$VERSION
|
||||
chown -R root:root .
|
||||
chmod -R u+w,go+r-w,a-s .
|
||||
|
||||
# Apply patch to the documentation/examples
|
||||
cat $CWD/nss-mysql-1.0-config.patch | patch -p1 --verbose
|
||||
|
||||
# This thing installs in /lib as users might still have to be able and
|
||||
# login even in the event of /usr unavailability
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
./configure \
|
||||
--prefix=/ \
|
||||
--sysconfdir=/etc
|
||||
|
||||
make
|
||||
make install-strip DESTDIR=$PKG
|
||||
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a [A-Z][A-Z]* ChangeLog *.sql $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README.SBo
|
||||
|
||||
# Move configfiles to .new and let doinst.sh hanle them gracefully
|
||||
( cd $PKG/etc
|
||||
mv nss-mysql-root.conf nss-mysql-root.conf.new
|
||||
mv nss-mysql.conf nss-mysql.conf.new
|
||||
)
|
||||
|
||||
# Copy the sample glibc config into place also
|
||||
cat $CWD/nsswitch.conf > $PKG/etc/nsswitch.conf-mysql.new
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
cd $PKG
|
||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
|
||||
|
||||
# Clean up the temp stuff
|
||||
if [ "$1" = "--cleanup" ]; then
|
||||
rm -rf $PKG
|
||||
rm -rf $TMP/$PRGNAM-$VERSION
|
||||
fi
|
8
libraries/nss-mysql/nss-mysql.info
Normal file
8
libraries/nss-mysql/nss-mysql.info
Normal file
|
@ -0,0 +1,8 @@
|
|||
PRGNAM="nss-mysql"
|
||||
VERSION="1.0"
|
||||
HOMEPAGE="http://freshmeat.net/projects/nss-mysql"
|
||||
DOWNLOAD="http://download.savannah.gnu.org/releases/nss-mysql/nss-mysql-1.0.tar.gz"
|
||||
MD5SUM="a1bacf9bcdd8c5172b8074e268af1436"
|
||||
MAINTAINER="Menno E. Duursma"
|
||||
EMAIL="druiloor@zonnet.nl"
|
||||
APPROVED="BP{k}"
|
39
libraries/nss-mysql/nsswitch.conf
Normal file
39
libraries/nss-mysql/nsswitch.conf
Normal file
|
@ -0,0 +1,39 @@
|
|||
#
|
||||
# /etc/nsswitch.conf
|
||||
#
|
||||
# An example Name Service Switch config file. This file should be
|
||||
# sorted with the most-used services at the beginning.
|
||||
#
|
||||
# The entry '[NOTFOUND=return]' means that the search for an
|
||||
# entry should stop if the search in the previous entry turned
|
||||
# up nothing. Note that if the search failed due to some other reason
|
||||
# (like no NIS server responding) then the search continues with the
|
||||
# next entry.
|
||||
#
|
||||
# Legal entries are:
|
||||
#
|
||||
# nisplus or nis+ Use NIS+ (NIS version 3)
|
||||
# nis or yp Use NIS (NIS version 2), also called YP
|
||||
# dns Use DNS (Domain Name Service)
|
||||
# files Use the local files
|
||||
# [NOTFOUND=return] Stop searching if not found so far
|
||||
#
|
||||
|
||||
passwd: files mysql
|
||||
shadow: files mysql
|
||||
group: files mysql
|
||||
|
||||
hosts: files dns
|
||||
networks: files dns
|
||||
|
||||
services: files
|
||||
protocols: files
|
||||
rpc: files
|
||||
ethers: files
|
||||
netmasks: files
|
||||
netgroup: files
|
||||
bootparams: files
|
||||
|
||||
automount: files
|
||||
aliases: files
|
||||
|
8
libraries/nss-mysql/slack-desc
Normal file
8
libraries/nss-mysql/slack-desc
Normal file
|
@ -0,0 +1,8 @@
|
|||
nss-mysql: MySQL Name Service Switch Module
|
||||
nss-mysql:
|
||||
nss-mysql: NSS-MySQL is a NSS library for MySQL.
|
||||
nss-mysql: Featuring full groups, passwd and shadow support.
|
||||
nss-mysql:
|
||||
nss-mysql: The nss-mysql project was started by Steve Brown
|
||||
nss-mysql: and is currently maintained by Guillaume Morin
|
||||
nss-mysql:
|
Loading…
Reference in a new issue