diff --git a/lib/configfiles/freebsd.inc.php b/lib/configfiles/freebsd.inc.php index 3aaad345..3d8f6b47 100644 --- a/lib/configfiles/freebsd.inc.php +++ b/lib/configfiles/freebsd.inc.php @@ -15,6 +15,23 @@ * */ +// Try to guess user/group from settings' email UID/GID +$vmail_user=posix_getpwuid($settings['system']['vmail_uid']); +$vmail_group=posix_getgrgid($settings['system']['vmail_gid']); + +/* If one of them are not set, call it 'vmail' and suggest creating user/group + * in scripts. */ +if ($vmail_user === false) { + $vmail_username="vmail"; +} else { + $vmail_username=$vmail_user['name']; +} +if ($vmail_group === false) { + $vmail_groupname="vmail"; +} else { + $vmail_groupname=$vmail_group['name']; +} + return Array( 'freebsd' => Array( 'label' => 'FreeBSD', @@ -89,10 +106,10 @@ return Array( 'make install' ), 'commands_2' => Array( - 'pw groupadd vmail -g '.$settings['system']['vmail_gid'], - 'pw useradd vmail -u '.$settings['system']['vmail_uid'].' -g '.$settings['system']['vmail_gid'].' -s/sbin/nologin -d/dev/null', + ($vmail_group === false) ? 'pw groupadd ' . $vmail_groupname . ' -g '.$settings['system']['vmail_gid'] : '', + ($vmail_user === false) ? 'pw useradd ' . $vmail_username . ' -u '.$settings['system']['vmail_uid'].' -g '.$settings['system']['vmail_gid'].' -s/sbin/nologin -d/dev/null' : '', 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'chmod 0750 ' . $settings['system']['vmail_homedir'] ), 'commands_3' => Array( @@ -180,7 +197,7 @@ return Array( ), 'commands_2' => Array( 'echo "dovecot unix - n n - - pipe - flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient}" >> /usr/local/etc/postfix/master.cf', + flags=DRhu user='.$vmail_username.':'.$vmail_groupname.' argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient}" >> /usr/local/etc/postfix/master.cf', 'chmod 0640 /usr/local/etc/dovecot-sql.conf' ), 'restart' => Array( diff --git a/lib/configfiles/gentoo.inc.php b/lib/configfiles/gentoo.inc.php index 6c8a8af7..f87c4232 100644 --- a/lib/configfiles/gentoo.inc.php +++ b/lib/configfiles/gentoo.inc.php @@ -17,6 +17,23 @@ * */ +// Try to guess user/group from settings' email UID/GID +$vmail_user=posix_getpwuid($settings['system']['vmail_uid']); +$vmail_group=posix_getgrgid($settings['system']['vmail_gid']); + +/* If one of them are not set, call it 'vmail' and suggest creating user/group + * in scripts. */ +if ($vmail_user === false) { + $vmail_username="mail"; // Gentoo uses 'mail' user/group +} else { + $vmail_username=$vmail_user['name']; +} +if ($vmail_group === false) { + $vmail_groupname="mail"; // Gentoo uses 'mail' user/group +} else { + $vmail_groupname=$vmail_group['name']; +} + return Array( 'gentoo' => Array( 'label' => 'Gentoo', @@ -126,7 +143,7 @@ return Array( 'echo "mail-mta/postfix -dovecot-sasl sasl" >> /etc/portage/package.use', 'emerge -av postfix', 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_user['name'].':'.$vmail_group['name'].' ' . $settings['system']['vmail_homedir'], 'chmod 0750 ' . $settings['system']['vmail_homedir'], 'mv /etc/postfix/main.cf /etc/postfix/main.cf.gentoo', 'touch /etc/postfix/main.cf', @@ -169,7 +186,7 @@ return Array( 'echo "mail-mta/postfix dovecot-sasl -sasl" >> /etc/portage/package.use', 'emerge -av postfix', 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_user['name'].':'.$vmail_group['name'].' ' . $settings['system']['vmail_homedir'], 'chmod 0750 ' . $settings['system']['vmail_homedir'], 'mv /etc/postfix/main.cf /etc/postfix/main.cf.gentoo', 'touch /etc/postfix/main.cf', diff --git a/lib/configfiles/hardy.inc.php b/lib/configfiles/hardy.inc.php index e93cbe65..2a85282c 100644 --- a/lib/configfiles/hardy.inc.php +++ b/lib/configfiles/hardy.inc.php @@ -17,6 +17,23 @@ * */ +// Try to guess user/group from settings' email UID/GID +$vmail_user=posix_getpwuid($settings['system']['vmail_uid']); +$vmail_group=posix_getgrgid($settings['system']['vmail_gid']); + +/* If one of them are not set, call it 'vmail' and suggest creating user/group + * in scripts. */ +if ($vmail_user === false) { + $vmail_username="vmail"; +} else { + $vmail_username=$vmail_user['name']; +} +if ($vmail_group === false) { + $vmail_groupname="vmail"; +} else { + $vmail_groupname=$vmail_group['name']; +} + return Array( 'ubuntu_hardy' => Array( 'label' => 'Ubuntu 8.04 (Hardy)', @@ -127,13 +144,13 @@ return Array( 'postfix_courier' => Array( 'label' => 'Postfix/Courier', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', + 'mkdir -p ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'apt-get install postfix postfix-mysql libsasl2-2 libsasl2-modules libsasl2-modules-sql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', - 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', @@ -188,13 +205,13 @@ return Array( 'postfix_dovecot' => Array( 'label' => 'Postfix/Dovecot', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', + 'mkdir -p ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'apt-get install postfix postfix-mysql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', - 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', diff --git a/lib/configfiles/lenny.inc.php b/lib/configfiles/lenny.inc.php index 006c4665..28bf6446 100644 --- a/lib/configfiles/lenny.inc.php +++ b/lib/configfiles/lenny.inc.php @@ -17,6 +17,23 @@ * */ +// Try to guess user/group from settings' email UID/GID +$vmail_user=posix_getpwuid($settings['system']['vmail_uid']); +$vmail_group=posix_getgrgid($settings['system']['vmail_gid']); + +/* If one of them are not set, call it 'vmail' and suggest creating user/group + * in scripts. */ +if ($vmail_user === false) { + $vmail_username="vmail"; +} else { + $vmail_username=$vmail_user['name']; +} +if ($vmail_group === false) { + $vmail_groupname="vmail"; +} else { + $vmail_groupname=$vmail_group['name']; +} + return Array( 'debian_lenny' => Array( 'label' => 'Debian 5.0 (Lenny)', @@ -128,13 +145,13 @@ return Array( 'postfix_courier' => Array( 'label' => 'Postfix/Courier', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', + 'mkdir -p ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'apt-get install postfix postfix-mysql libsasl2-2 libsasl2-modules libsasl2-modules-sql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', - 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', @@ -189,13 +206,13 @@ return Array( 'postfix_dovecot' => Array( 'label' => 'Postfix/Dovecot', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', + 'mkdir -p ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'apt-get install postfix postfix-mysql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', - 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', diff --git a/lib/configfiles/lucid.inc.php b/lib/configfiles/lucid.inc.php index 4560790c..0d4fc727 100644 --- a/lib/configfiles/lucid.inc.php +++ b/lib/configfiles/lucid.inc.php @@ -17,6 +17,23 @@ * */ +// Try to guess user/group from settings' email UID/GID +$vmail_user=posix_getpwuid($settings['system']['vmail_uid']); +$vmail_group=posix_getgrgid($settings['system']['vmail_gid']); + +/* If one of them are not set, call it 'vmail' and suggest creating user/group + * in scripts. */ +if ($vmail_user === false) { + $vmail_username="vmail"; +} else { + $vmail_username=$vmail_user['name']; +} +if ($vmail_group === false) { + $vmail_groupname="vmail"; +} else { + $vmail_groupname=$vmail_group['name']; +} + return Array( 'ubuntu_lucid' => Array( 'label' => 'Ubuntu 10.04 (Lucid)', @@ -128,13 +145,13 @@ return Array( 'postfix_courier' => Array( 'label' => 'Postfix/Courier', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', + 'mkdir -p ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'apt-get install postfix postfix-mysql libsasl2-2 libsasl2-modules libsasl2-modules-sql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', - 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', @@ -189,13 +206,13 @@ return Array( 'postfix_dovecot' => Array( 'label' => 'Postfix/Dovecot', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', + 'mkdir -p ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'apt-get install postfix postfix-mysql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', - 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', diff --git a/lib/configfiles/precise.inc.php b/lib/configfiles/precise.inc.php index e2ac72aa..9a1a7ec1 100644 --- a/lib/configfiles/precise.inc.php +++ b/lib/configfiles/precise.inc.php @@ -17,6 +17,23 @@ * */ +// Try to guess user/group from settings' email UID/GID +$vmail_user=posix_getpwuid($settings['system']['vmail_uid']); +$vmail_group=posix_getgrgid($settings['system']['vmail_gid']); + +/* If one of them are not set, call it 'vmail' and suggest creating user/group + * in scripts. */ +if ($vmail_user === false) { + $vmail_username="vmail"; +} else { + $vmail_username=$vmail_user['name']; +} +if ($vmail_group === false) { + $vmail_groupname="vmail"; +} else { + $vmail_groupname=$vmail_group['name']; +} + return Array( 'ubuntu_precise' => Array( 'label' => 'Ubuntu 12.04 (Precise)', @@ -128,13 +145,13 @@ return Array( 'postfix_courier' => Array( 'label' => 'Postfix/Courier', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', + 'mkdir -p ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'apt-get install postfix postfix-mysql libsasl2-2 libsasl2-modules libsasl2-modules-sql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', - 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', @@ -189,13 +206,13 @@ return Array( 'postfix_dovecot' => Array( 'label' => 'Postfix/Dovecot', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', + 'mkdir -p ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'apt-get install postfix postfix-mysql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', - 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', diff --git a/lib/configfiles/sle10.inc.php b/lib/configfiles/sle10.inc.php index ef03cd05..94f3c8f0 100644 --- a/lib/configfiles/sle10.inc.php +++ b/lib/configfiles/sle10.inc.php @@ -17,6 +17,23 @@ * */ +// Try to guess user/group from settings' email UID/GID +$vmail_user=posix_getpwuid($settings['system']['vmail_uid']); +$vmail_group=posix_getgrgid($settings['system']['vmail_gid']); + +/* If one of them are not set, call it 'vmail' and suggest creating user/group + * in scripts. */ +if ($vmail_user === false) { + $vmail_username="vmail"; +} else { + $vmail_username=$vmail_user['name']; +} +if ($vmail_group === false) { + $vmail_groupname="vmail"; +} else { + $vmail_groupname=$vmail_group['name']; +} + return Array( 'sle_10' => Array( 'label' => 'SUSE Linux Enterprise 10', @@ -71,11 +88,11 @@ return Array( 'usr_lib_sasl2_smtpd.conf' => '/usr/lib/sasl2/smtpd.conf' ), 'commands' => Array( - 'mkdir -p /var/spool/postfix/etc/pam.d', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], + 'mkdir -p /var/spool/postfix/etc/pam.d', 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', diff --git a/lib/configfiles/squeeze.inc.php b/lib/configfiles/squeeze.inc.php index 42d4f9ad..a54e6bcf 100644 --- a/lib/configfiles/squeeze.inc.php +++ b/lib/configfiles/squeeze.inc.php @@ -17,6 +17,23 @@ * */ +// Try to guess user/group from settings' email UID/GID +$vmail_user=posix_getpwuid($settings['system']['vmail_uid']); +$vmail_group=posix_getgrgid($settings['system']['vmail_gid']); + +/* If one of them are not set, call it 'vmail' and suggest creating user/group + * in scripts. */ +if ($vmail_user === false) { + $vmail_username="vmail"; +} else { + $vmail_username=$vmail_user['name']; +} +if ($vmail_group === false) { + $vmail_groupname="vmail"; +} else { + $vmail_groupname=$vmail_group['name']; +} + return Array( 'debian_squeeze' => Array( 'label' => 'Debian 6.0 (Squeeze)', @@ -128,13 +145,13 @@ return Array( 'postfix_courier' => Array( 'label' => 'Postfix/Courier', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' '.$vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', + 'mkdir -p ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'apt-get install postfix postfix-mysql libsasl2-2 libsasl2-modules libsasl2-modules-sql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', - 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', @@ -189,13 +206,13 @@ return Array( 'postfix_dovecot' => Array( 'label' => 'Postfix/Dovecot', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', + 'mkdir -p ' . $settings['system']['vmail_homedir'], + 'chown -R ' . $vmail_username . ':' . $vmail_groupname . ' ' . $settings['system']['vmail_homedir'], 'apt-get install postfix postfix-mysql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', - 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', diff --git a/lib/configfiles/suse11.inc.php b/lib/configfiles/suse11.inc.php index 241e6e7f..beb82e82 100644 --- a/lib/configfiles/suse11.inc.php +++ b/lib/configfiles/suse11.inc.php @@ -17,6 +17,23 @@ * */ +// Try to guess user/group from settings' email UID/GID +$vmail_user=posix_getpwuid($settings['system']['vmail_uid']); +$vmail_group=posix_getgrgid($settings['system']['vmail_gid']); + +/* If one of them are not set, call it 'vmail' and suggest creating user/group + * in scripts. */ +if ($vmail_user === false) { + $vmail_username="vmail"; +} else { + $vmail_username=$vmail_user['name']; +} +if ($vmail_group === false) { + $vmail_groupname="vmail"; +} else { + $vmail_groupname=$vmail_group['name']; +} + return Array( 'opensuse_11_x' => Array( 'label' => 'openSUSE 11.x', @@ -68,11 +85,11 @@ return Array( 'etc_sasl2_smtpd.conf' => '/etc/sasl2/smtpd.conf' ), 'commands' => Array( - 'mkdir -p /var/spool/postfix/etc/pam.d', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], + 'chown -R ' . $vmail_username . ':' . $vmail_groupname . ' ' . $settings['system']['vmail_homedir'], + 'mkdir -p /var/spool/postfix/etc/pam.d', 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf', @@ -106,13 +123,13 @@ return Array( 'postfix_dovecot' => Array( 'label' => 'Postfix/Dovecot', 'commands' => Array( + ($vmail_group === false) ? 'groupadd -g ' . $settings['system']['vmail_gid'] . ' ' . $vmail_groupname : '', + ($vmail_user === false) ? 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g ' . $vmail_groupname . ' ' . $vmail_username : '', 'zypper install postfix postfix-mysql', 'mkdir -p /var/spool/postfix/etc/pam.d', 'mkdir -p /var/spool/postfix/var/run/mysqld', - 'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail', - 'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail', 'mkdir -p ' . $settings['system']['vmail_homedir'], - 'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'], + 'chown -R '.$vmail_username.':'.$vmail_groupname.' ' . $settings['system']['vmail_homedir'], 'touch /etc/postfix/mysql-virtual_alias_maps.cf', 'touch /etc/postfix/mysql-virtual_mailbox_domains.cf', 'touch /etc/postfix/mysql-virtual_mailbox_maps.cf',