mallka/yii2-webshell

A web shell that allows to run yii or other console commands and create your own commands.

Fund package maintenance!
samdark
Patreon

Installs: 60

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 36

Language:JavaScript

Type:yii2-extension

2.0.0 2016-03-04 01:01 UTC

This package is auto-updated.

Last update: 2024-05-13 17:03:30 UTC


README

Notice:the package forked from samdark/yii2-webshell

What we change

  1. allow to run other console command
  2. move the jquery.terminal into asset folder due to bower floder is different(since some date)
  3. changed sourcepath of Asset Class, then I don't need to set Alias config anymore.

Yii 2.0 web shell

Web shell allows to run yii console commands using a browser.

screenshot.png

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist mallka/yii2-webshell "dev-master"

or add

"mallka/yii2-webshell": "dev-master"

to the require section of your composer.json file.

Configuration

To use web shell, include it as a module in the application configuration like the following:

return [
    'modules' => [
        'webshell' => [
            'class' => 'mallka\webshell\Module',
            // 'yiiScript' => Yii::getAlias('@root'). '/yii', // adjust path to point to your ./yii script
        ],
    ],

    // ... other application configuration
]

With the above configuration, you will be able to access web shell in your browser using the URL http://localhost/path/to/index.php?r=webshell

Access control

By default access is restricted to local IPs. It could be changed via allowedIPs property. Additionally, checkAccessCallback is available to be able to introduce custom access control:

return [
    'modules' => [
        'webshell' => [
            'class' => 'mallka\webshell\Module',
            // 'yiiScript' => Yii::getAlias('@root'). '/yii', // adjust path to point to your ./yii script
            'allowedIPs' => ['127.0.0.1', '::1', '192.168.0.2'],
            'checkAccessCallback' => function (\yii\base\Action $action) {
                // return true if access is granted or false otherwise
                return true;
            },
            
            //allow to run other commands,default is true,
            'unlimit'=>false,
            
            //unsupport command
            'unsupportCommands'=>['top','ping'],
        ],
    ],

    // ... other application configuration
]

Limitations

Web shell is unable to work interactively because of request-response nature of web. Therefore you should disable interactive mode for commands.