From d4e856d4372783e3ee2d758818886eb87fe4710e Mon Sep 17 00:00:00 2001 From: "Florian Aders (EleRas)" Date: Sat, 18 Jan 2014 14:22:35 +0100 Subject: [PATCH] Fixing permissions a better way, thx crazy4chrissi, fixes #532 Signed-off-by: Florian Aders (EleRas) --- admin_configfiles.php | 3 ++- scripts/jobs/cron_tasks.php | 4 ++-- .../configfiles/debian_wheezy/libnss/etc_libnss-mysql.cfg | 4 ++-- .../configfiles/freebsd/libnss/usr_local_etc_libnss-mysql.cfg | 4 ++-- templates/misc/configfiles/gentoo/libnss/etc_libnss-mysql.cfg | 4 ++-- .../configfiles/ubuntu_precise/libnss/etc_libnss-mysql.cfg | 4 ++-- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/admin_configfiles.php b/admin_configfiles.php index 63a64073..37c1fd68 100644 --- a/admin_configfiles.php +++ b/admin_configfiles.php @@ -97,7 +97,8 @@ if($userinfo['change_serversettings'] == '1') '' => makeCorrectDir(Settings::Get('system.bindconf_directory')), '' => Settings::Get('system.apachereload_command'), '' => makeCorrectDir(Settings::Get('system.logfiles_directory')), - '' => makeCorrectDir(Settings::Get('phpfpm.fastcgi_ipcdir')) + '' => makeCorrectDir(Settings::Get('phpfpm.fastcgi_ipcdir')), + '' => Settings::Get('system.httpgroup') ); $files = ''; $configpage = ''; diff --git a/scripts/jobs/cron_tasks.php b/scripts/jobs/cron_tasks.php index 7a09d164..4da4f5f7 100644 --- a/scripts/jobs/cron_tasks.php +++ b/scripts/jobs/cron_tasks.php @@ -132,8 +132,8 @@ while ($row = $result_tasks_stmt->fetch(PDO::FETCH_ASSOC)) { $userhomedir = (substr($userhomedir, 0, -1) == '/') ? substr($userhomedir, 0, -1) : $userhomedir; $usermaildir = (substr($usermaildir, 0, -1) == '/') ? substr($usermaildir, 0, -1) : $usermaildir; - $cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'Running: chown -R ' . (int)$row['data']['uid'] . ':' . Settings::Get('system.httpuser') . ' ' . escapeshellarg($userhomedir)); - safe_exec('chown -R ' . (int)$row['data']['uid'] . ':' . Settings::Get('system.httpuser') . ' ' . escapeshellarg($userhomedir)); + $cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'Running: chown -R ' . (int)$row['data']['uid'] . ':' . (int)$row['data']['gid'] . ' ' . escapeshellarg($userhomedir)); + safe_exec('chown -R ' . (int)$row['data']['uid'] . ':' . (int)$row['data']['gid'] . ' ' . escapeshellarg($userhomedir)); // don't allow others to access the directory (webserver will be the group) safe_exec('chmod 0750 ' . escapeshellarg($userhomedir)); $cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'Running: chown -R ' . (int)Settings::Get('system.vmail_uid') . ':' . (int)Settings::Get('system.vmail_gid') . ' ' . escapeshellarg($usermaildir)); diff --git a/templates/misc/configfiles/debian_wheezy/libnss/etc_libnss-mysql.cfg b/templates/misc/configfiles/debian_wheezy/libnss/etc_libnss-mysql.cfg index 8cb7a100..9850f6e8 100644 --- a/templates/misc/configfiles/debian_wheezy/libnss/etc_libnss-mysql.cfg +++ b/templates/misc/configfiles/debian_wheezy/libnss/etc_libnss-mysql.cfg @@ -29,10 +29,10 @@ getgrent SELECT groupname,'x',gid \ FROM ftp_groups memsbygid SELECT username \ FROM ftp_users \ - WHERE gid='%1$u' + WHERE gid='%1$u' UNION SELECT '' gidsbymem SELECT gid \ FROM ftp_users \ - WHERE username='%1$s' + WHERE username='%1$s' UNION SELECT gid FROM ftp_users WHERE ''='%1$s' host database 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 index d6e26292..d5e96dcf 100644 --- a/templates/misc/configfiles/freebsd/libnss/usr_local_etc_libnss-mysql.cfg +++ b/templates/misc/configfiles/freebsd/libnss/usr_local_etc_libnss-mysql.cfg @@ -6,8 +6,8 @@ getspent SELECT username, password, '12345', '0', '99999', '7', '', '', '' FROM 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' +memsbygid SELECT username FROM ftp_users WHERE gid='%1$u' UNION SELECT '' +gidsbymem SELECT gid FROM ftp_users WHERE username='%1$s' UNION SELECT gid FROM ftp_users WHERE ''='%1$s' host database diff --git a/templates/misc/configfiles/gentoo/libnss/etc_libnss-mysql.cfg b/templates/misc/configfiles/gentoo/libnss/etc_libnss-mysql.cfg index 361bf1ba..3092e67d 100644 --- a/templates/misc/configfiles/gentoo/libnss/etc_libnss-mysql.cfg +++ b/templates/misc/configfiles/gentoo/libnss/etc_libnss-mysql.cfg @@ -29,10 +29,10 @@ getgrent SELECT groupname,'x',gid \ FROM ftp_groups memsbygid SELECT username \ FROM ftp_users \ - WHERE gid='%1$u' + WHERE gid='%1$u' UNION SELECT '' gidsbymem SELECT gid \ FROM ftp_users \ - WHERE username='%1$s' + WHERE username='%1$s' UNION SELECT gid FROM ftp_users WHERE ''='%1$s' host database diff --git a/templates/misc/configfiles/ubuntu_precise/libnss/etc_libnss-mysql.cfg b/templates/misc/configfiles/ubuntu_precise/libnss/etc_libnss-mysql.cfg index 361bf1ba..3092e67d 100644 --- a/templates/misc/configfiles/ubuntu_precise/libnss/etc_libnss-mysql.cfg +++ b/templates/misc/configfiles/ubuntu_precise/libnss/etc_libnss-mysql.cfg @@ -29,10 +29,10 @@ getgrent SELECT groupname,'x',gid \ FROM ftp_groups memsbygid SELECT username \ FROM ftp_users \ - WHERE gid='%1$u' + WHERE gid='%1$u' UNION SELECT '' gidsbymem SELECT gid \ FROM ftp_users \ - WHERE username='%1$s' + WHERE username='%1$s' UNION SELECT gid FROM ftp_users WHERE ''='%1$s' host database