Advertisement
CoolRaoul

synoman_webman_3rdparty_processes_index.cgi

Jul 5th, 2012
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.19 KB | None | 0 0
  1. #!/opt/bin/perl -w
  2.  
  3. sub usergroups {
  4.     my $user = shift;
  5.     my @groups = scalar getgrgid( ( getpwnam $user )[ 3 ] ); # init group list to user main group
  6.     while ( my ( $name, $users ) = ( getgrent )[ 0, -1 ] ) {
  7.       $users =~ /\b$user\b/ and push @groups, $name
  8.     }
  9.     return @groups;
  10. }
  11.  
  12.  
  13. sub rootoradmin {
  14.     my $user=shift;
  15.  
  16.     return 1 if $user eq "root";
  17.  
  18.     foreach my $group  (usergroups($user)) {
  19.     return 1 if $group eq "administrators";
  20.     }
  21.     return 0;
  22. }
  23.  
  24.  
  25. print "Content-type: text/html\n\n";
  26.  
  27. # Are we authenticated yet ?
  28. my $user = undef;
  29. if (open (IN,"/usr/syno/synoman/webman/modules/authenticate.cgi|")) {
  30.     $user=<IN>;
  31.     chop($user);
  32.     close(IN);
  33. }
  34.  
  35.  
  36. defined($user) && rootoradmin($user) || do {
  37.     print <<EOF;
  38. <HTML><HEAD><TITLE>Non autorisé</TITLE></HEAD>
  39. <BODY>
  40. un compte administrateur est requis
  41. </BODY>
  42. </HTML>
  43. EOF
  44.     die;
  45. };
  46.  
  47.  
  48.  
  49. print "<HTML><HEAD><TITLE>Process Tree</TITLE></HEAD>\n";
  50.  
  51. print "bienvenue $user\n<b>";
  52.  
  53. print "<pre>\n";
  54.  
  55. my $command ="/opt/bin/ps -wef --forest 2>&1";
  56. system($command);
  57.  
  58. print "</pre>\n";
  59. print "terminé \n<b>";
  60. print "</html>";
  61.  
  62. # Local Variables:
  63. # mode: cperl
  64. # End:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement