use setuid/setgid feature from PVE::Daemon

This commit is contained in:
Dietmar Maurer 2015-01-02 14:11:38 +01:00
parent 4209128ee1
commit 0ef9c4e8ca
2 changed files with 4 additions and 21 deletions

View File

@ -6,7 +6,6 @@ delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
use strict;
use warnings;
use English;
use PVE::SafeSyslog;
use PVE::Daemon;
@ -44,21 +43,13 @@ my %daemon_options = (
restart_on_error => 5,
stop_wait_time => 15,
leave_children_open_on_reload => 1,
setuid => 'www-data',
setgid => 'www-data',
run_dir => '/var/run/pveproxy',
);
my $daemon = __PACKAGE__->new('pveproxy', $cmdline, %daemon_options);
# run as www-data
my $gid = getgrnam('www-data') || die "getgrnam failed - $!\n";
POSIX::setgid($gid) || die "setgid $gid failed - $!\n";
$EGID = "$gid $gid"; # this calls setgroups
my $uid = getpwnam('www-data') || die "getpwnam failed - $!\n";
POSIX::setuid($uid) || die "setuid $uid failed - $!\n";
# just to be sure
die "detected strange uid/gid\n" if !($UID == $uid && $EUID == $uid && $GID eq "$gid $gid" && $EGID eq "$gid $gid");
sub add_dirs {
my ($result_hash, $alias, $subdir) = @_;

View File

@ -10,7 +10,6 @@ delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
use strict;
use warnings;
use English;
use PVE::SafeSyslog;
use PVE::Daemon;
@ -36,20 +35,13 @@ my %daemon_options = (
restart_on_error => 5,
stop_wait_time => 15,
leave_children_open_on_reload => 1,
setuid => 'www-data',
setgid => 'www-data',
run_dir => '/var/run/pveproxy',
);
my $daemon = __PACKAGE__->new('spiceproxy', $cmdline, %daemon_options);
my $gid = getgrnam('www-data') || die "getgrnam failed - $!\n";
POSIX::setgid($gid) || die "setgid $gid failed - $!\n";
$EGID = "$gid $gid"; # this calls setgroups
my $uid = getpwnam('www-data') || die "getpwnam failed - $!\n";
POSIX::setuid($uid) || die "setuid $uid failed - $!\n";
# just to be sure
die "detected strange uid/gid\n" if !($UID == $uid && $EUID == $uid && $GID eq "$gid $gid" && $EGID eq "$gid $gid");
sub init {
my ($self) = @_;