puggan icon

/usr/local/bin/nano

puggan | PRO | 12/11/19 07:06:00 AM UTC | 0 ⭐ | 653 👁️ | Never ⏰ | []
PHP |

500 B

|

None

|

0 👍

/

0 👎

#!/usr/bin/env php
<?php
 
$sudo = false;
$cmd = ['sudo', '/bin/nano'];
foreach(array_slice($argv, 1) as $arg) {
    $cmd[] = escapeshellarg($arg);
    if($sudo) {
        continue;
    }
    if(substr($arg, 0, 1) === '-') {
        continue;
    }
    if(file_exists($arg)) {
        if(!is_writable($arg)) {
            $sudo = true;
        }
        continue;
    }
    $dir = dirname($arg);
    if(is_dir($dir)) {
        if(!is_writable($dir)) {
            $sudo = true;
        }
        continue;
    }
}
if(!$sudo) {
    unset($cmd[0]);
}
passthru(implode(' ', $cmd));

Comments