summaryrefslogtreecommitdiff
path: root/FS/bin/freeside-queued
diff options
context:
space:
mode:
Diffstat (limited to 'FS/bin/freeside-queued')
-rw-r--r--FS/bin/freeside-queued18
1 files changed, 15 insertions, 3 deletions
diff --git a/FS/bin/freeside-queued b/FS/bin/freeside-queued
index 42d00cebe..311fe62f9 100644
--- a/FS/bin/freeside-queued
+++ b/FS/bin/freeside-queued
@@ -15,7 +15,7 @@ use FS::queue_depend;
# no autoloading just yet
use FS::cust_main;
use FS::svc_acct;
-use Net::SSH 0.06;
+use Net::SSH 0.07;
use FS::part_export;
$max_kids = '10'; #guess it should be a config file...
@@ -36,8 +36,20 @@ $sigint = 0;
$SIG{INT} = sub { warn "SIGINT received; shutting down\n"; $sigint++; };
$SIG{TERM} = sub { warn "SIGTERM received; shutting down\n"; $sigterm++; };
-$> = $FS::UID::freeside_uid unless $>;
-$< = $>;
+my $freeside_gid = scalar(getgrnam('freeside'))
+ or die "can't setgid to freeside group\n";
+$) = $freeside_gid;
+$( = $freeside_gid;
+#if freebsd can't setuid(), presumably it can't setgid() either. grr fleabsd
+($(,$)) = ($),$();
+$) = $freeside_gid;
+
+$> = $FS::UID::freeside_uid;
+$< = $FS::UID::freeside_uid;
+#freebsd is sofa king broken, won't setuid()
+($<,$>) = ($>,$<);
+$> = $FS::UID::freeside_uid;
+
$ENV{HOME} = (getpwuid($>))[7]; #for ssh
adminsuidsetup $user;