use sudo on need
This commit is contained in:
parent
9a525b6ffe
commit
386d0fc65d
@ -6,11 +6,7 @@ Scanne le réseau avec `nmap` et affiche les résultats dans une page web.
|
||||
|
||||
Certaines options nécessitent l'accès root.
|
||||
Pour donner les droits à lanScan sous Linux, installer `sudo` au besoin, puis créer le fichier `/etc/sudoers.d/lanScan` avec le contenu
|
||||
(en remplaçant `www-data` par le compte du service web) :
|
||||
(en remplaçant `www-data` par l'utilisateur du service web) :
|
||||
```
|
||||
www-data ALL = NOPASSWD: /usr/bin/nmap
|
||||
````
|
||||
et modifier le fichier `config.php` avec :
|
||||
```php
|
||||
$sudo = true;
|
||||
```
|
@ -16,8 +16,8 @@ $HOSTSCAN_OPTIONS = [
|
||||
'stylesheet' => "$BASEDIR/hostScan.xsl"
|
||||
];
|
||||
|
||||
$refreshPeriod = 60;
|
||||
|
||||
$SCANSDIR = 'scans';
|
||||
$DATADIR = '/usr/share/nmap';
|
||||
|
||||
$sudo = true;
|
||||
$refreshPeriod = 60;
|
||||
|
13
scan.php
13
scan.php
@ -28,8 +28,17 @@ foreach ($inputs as $arg => $value) {
|
||||
|
||||
$tempPath = tempnam(sys_get_temp_dir(), 'scan_').".xml";
|
||||
|
||||
exec(($sudo ? "sudo " : "") . "nmap$args -oX '$tempPath' $targets 2>&1", $stderr, $code);
|
||||
if ($code) {
|
||||
$command = "nmap$args -oX '$tempPath' $targets 2>&1";
|
||||
|
||||
exec($command, $stderr, $retcode);
|
||||
|
||||
if ($retcode && strpos(implode($stderr), " root ") !== false) {
|
||||
// Retry with sudo
|
||||
$recode = 0;
|
||||
exec("sudo $command", $stderr, $retcode);
|
||||
}
|
||||
|
||||
if ($retcode) {
|
||||
http_response_code(500);
|
||||
die(implode("<br/>\n", $stderr));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user