Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/opt/bin/perl -w
- sub usergroups {
- my $user = shift;
- my @groups = scalar getgrgid( ( getpwnam $user )[ 3 ] ); # init group list to user main group
- while ( my ( $name, $users ) = ( getgrent )[ 0, -1 ] ) {
- $users =~ /\b$user\b/ and push @groups, $name
- }
- return @groups;
- }
- sub rootoradmin {
- my $user=shift;
- return 1 if $user eq "root";
- foreach my $group (usergroups($user)) {
- return 1 if $group eq "administrators";
- }
- return 0;
- }
- print "Content-type: text/html\n\n";
- # Are we authenticated yet ?
- my $user = undef;
- if (open (IN,"/usr/syno/synoman/webman/modules/authenticate.cgi|")) {
- $user=<IN>;
- chop($user);
- close(IN);
- }
- defined($user) && rootoradmin($user) || do {
- print <<EOF;
- <HTML><HEAD><TITLE>Non autorisé</TITLE></HEAD>
- <BODY>
- un compte administrateur est requis
- </BODY>
- </HTML>
- EOF
- die;
- };
- print "<HTML><HEAD><TITLE>Process Tree</TITLE></HEAD>\n";
- print "bienvenue $user\n<b>";
- print "<pre>\n";
- my $command ="/opt/bin/ps -wef --forest 2>&1";
- system($command);
- print "</pre>\n";
- print "terminé \n<b>";
- print "</html>";
- # Local Variables:
- # mode: cperl
- # End:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement