]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
more robust code for setting daemon uid/gid
authorEvan Prodromou <evan@prodromou.name>
Thu, 4 Sep 2008 19:10:31 +0000 (15:10 -0400)
committerEvan Prodromou <evan@prodromou.name>
Thu, 4 Sep 2008 19:10:31 +0000 (15:10 -0400)
darcs-hash:20080904191031-84dde-bb457c429c76eedb9bd4ea838b7ccad28844effd.gz

lib/daemon.php

index 0bda0272f4bbd20ef17c444dc13a17a5d1952396..a7a49ce94bf769db86ad84bd2fb131886a0a7088 100644 (file)
@@ -85,16 +85,28 @@ class Daemon {
 
        function changeUser() {
 
-               if (common_config('daemon', 'user')) {
-                       $user_info = posix_getpwnam(common_config('daemon', 'user'));
-                       common_log(LOG_INFO, "Setting user to " . common_config('daemon', 'user'));
-                       posix_setuid($user_info['uid']);
+               $username = common_config('daemon', 'user');
+               
+               if ($username) {
+                       $user_info = posix_getpwnam($username);
+                       if (!$user_info) {
+                               common_log(LOG_WARNING, 'Ignoring unknown user for daemon: ' . $username);
+                       } else {
+                               common_log(LOG_INFO, "Setting user to " . $username);
+                               posix_setuid($user_info['uid']);
+                       }
                }
+
+               $groupname = common_config('daemon', 'group');
                
-               if (common_config('daemon', 'group')) {
-                       $group_info = posix_getgrnam(common_config('daemon', 'group'));
-                       common_log(LOG_INFO, "Setting group to " . common_config('daemon', 'group'));
-                       posix_setgid($group_info['gid']);
+               if ($groupname) {
+                       $group_info = posix_getgrnam($groupname);
+                       if (!$group_info) {
+                               common_log(LOG_WARNING, 'Ignoring unknown group for daemon: ' . $groupname);
+                       } else {
+                               common_log(LOG_INFO, "Setting group to " . $groupname);
+                               posix_setgid($group_info['gid']);
+                       }
                }
        }