From 785e8f0938969f99a4c3da8ebf491813de88a486 Mon Sep 17 00:00:00 2001 From: "Michael Kaufmann (d00p)" Date: Mon, 17 May 2010 05:33:32 +0000 Subject: [PATCH] - added configuration templates for FreeBSD's libnss-mysql, fixes #228 --- lib/configfiles/freebsd.inc.php | 23 +++++++++++++++++-- .../freebsd/libnss/etc_nsswitch.conf | 20 ++++++++++++++++ .../usr_local_etc_libnss-mysql-root.cfg | 2 ++ .../libnss/usr_local_etc_libnss-mysql.cfg | 18 +++++++++++++++ 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 templates/misc/configfiles/freebsd/libnss/etc_nsswitch.conf create mode 100644 templates/misc/configfiles/freebsd/libnss/usr_local_etc_libnss-mysql-root.cfg create mode 100644 templates/misc/configfiles/freebsd/libnss/usr_local_etc_libnss-mysql.cfg diff --git a/lib/configfiles/freebsd.inc.php b/lib/configfiles/freebsd.inc.php index 4eaef0bf..63f955fa 100644 --- a/lib/configfiles/freebsd.inc.php +++ b/lib/configfiles/freebsd.inc.php @@ -58,7 +58,7 @@ return Array( 'cd /usr/ports/dns/powerdns', 'make config', 'make install', - 'echo "add pdns_enable=\"YES\"" >> /etc/rc.conf', + 'echo "pdns_enable=\"YES\"" >> /etc/rc.conf', ), 'files' => Array( 'usr_local_etc_pdns_pdns.conf' => '/usr/local/etc/pdns/pdns.conf' @@ -155,7 +155,7 @@ return Array( 'set ManageSieve support (optional)', 'set MySQL support ', 'make install', - 'echo "add dovecot_enable=\"YES\"" >> /etc/rc.conf' + 'echo "dovecot_enable=\"YES\"" >> /etc/rc.conf' ), 'files' => Array( 'usr_local_etc_dovecot.conf' => '/usr/local/etc/dovecot.conf', @@ -203,6 +203,25 @@ return Array( 'files' => Array( 'etc_awstats.model.conf' => makeCorrectFile($settings['system']['awstats_conf'].'/awstats.model.conf') ) + ), + 'libnss' => Array( + 'label' => 'libnss (system login with mysql)', + 'commands_1' => Array( + 'cd /usr/ports/net/libnss-mysql', + 'make install clean', + 'echo "nscd_enable=\"YES\"" >> /etc/rc.conf' + ), + 'files' => Array( + 'usr_local_etc_libnss-mysql.cfg' => '/usr/local/etc/libnss-mysql.cfg', + 'usr_local_etc_libnss-mysql-root.cfg' => '/usr/local/etc/libnss-mysql-root.cfg', + 'etc_nsswitch.conf' => '/etc/nsswitch.conf' + ), + 'commands_2' => Array( + 'chmod 600 /usr/local/etc/libnss-mysql.cfg /usr/local/etc/libnss-mysql-root.cfg' + ), + 'restart' => Array( + 'sh /etc/rc.d/nscd restart' + ) ) ) ) diff --git a/templates/misc/configfiles/freebsd/libnss/etc_nsswitch.conf b/templates/misc/configfiles/freebsd/libnss/etc_nsswitch.conf new file mode 100644 index 00000000..5ac5d49d --- /dev/null +++ b/templates/misc/configfiles/freebsd/libnss/etc_nsswitch.conf @@ -0,0 +1,20 @@ +# Make sure that `passwd`, `group` and `shadow` have mysql in their lines +# You should place mysql at the end, so that it is queried after the other mechanisams +# +passwd: compat mysql +group: compat mysql +shadow: compat mysql + +hosts: files dns +networks: files dns + +services: db files +protocols: db files +rpc: db files +ethers: db files +netmasks: files +netgroup: files +bootparams: files + +automount: files +aliases: files diff --git a/templates/misc/configfiles/freebsd/libnss/usr_local_etc_libnss-mysql-root.cfg b/templates/misc/configfiles/freebsd/libnss/usr_local_etc_libnss-mysql-root.cfg new file mode 100644 index 00000000..64989771 --- /dev/null +++ b/templates/misc/configfiles/freebsd/libnss/usr_local_etc_libnss-mysql-root.cfg @@ -0,0 +1,2 @@ +username +password diff --git a/templates/misc/configfiles/freebsd/libnss/usr_local_etc_libnss-mysql.cfg b/templates/misc/configfiles/freebsd/libnss/usr_local_etc_libnss-mysql.cfg new file mode 100644 index 00000000..193fa9b1 --- /dev/null +++ b/templates/misc/configfiles/freebsd/libnss/usr_local_etc_libnss-mysql.cfg @@ -0,0 +1,18 @@ +getpwnam SELECT username, 'x', uid, gid, '0', '', 'MySQL User', homedir, shell, '0' FROM ftp_users WHERE username='%1$s' LIMIT 1 +getpwuid SELECT username, 'x', uid, gid, '0', '', 'MySQL User', homedir, shell, '0' FROM ftp_users WHERE uid='%1$u' LIMIT 1 +getpwent SELECT username, 'x', uid, gid, '0', '', 'MySQL User', homedir, shell, '0' FROM ftp_users +getspnam SELECT username, password, '12345', '0', '99999', '7', '', '', '' FROM ftp_users WHERE username='%1$s' LIMIT 1 +getspent SELECT username, password, '12345', '0', '99999', '7', '', '', '' FROM ftp_users +getgrnam SELECT groupname, '', gid FROM ftp_groups WHERE groupname='%1$s' LIMIT 1 +getgrgid SELECT groupname, '', gid FROM ftp_groups WHERE gid='%1$u' LIMIT 1 +getgrent SELECT groupname, '', gid FROM ftp_groups +memsbygid SELECT username FROM ftp_users WHERE gid='%1$u' +gidsbymem SELECT gid FROM ftp_users WHERE username='%1$s' + +host +database +username +password +port 3306 +timeout 10 +compress 0