Ubuntu, lua, nmap 및 sqlite3 - 'luasql.sqlite3' 모듈을 찾을 수 없습니다.

Ubuntu, lua, nmap 및 sqlite3 - 'luasql.sqlite3' 모듈을 찾을 수 없습니다.

nmap과 sqlite3을 사용해야 하고 우분투 컴퓨터에 lua 5.1과 lua-sql-sqlite3이 설치되어 있습니다.

sudo apt-get install lua5.1; sudo apt-get install lua-sql-sqlite3

이제 내가 이렇게 하면:

$ lua
Lua 5.2.1  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> drv = require "luasql.sqlite3"
> print(drv._VERSION)
LuaSQL 2.3.0

모든 것이 괜찮지만 다음 줄을 사용하여 nmap nse scrint를 실행하려고 하면:

require "luasql.sqlite3"

이 nse 스크립트를 사용하고 있습니다sqlite-output.nse nmap 및 sqlite3과 함께 사용됩니다.

오류가 있습니다.

$ sudo nmap --script=sqlite-output.nse localhost
[sudo] password for alex: 

Starting Nmap 7.01 ( https://nmap.org ) at 2016-03-13 04:16 EET
NSE: Failed to load sqlite-output.nse:
sqlite-output.nse:7: module 'luasql.sqlite3' not found:
    NSE failed to find nselib/luasql/sqlite3.lua in search paths.
    no field package.preload['luasql.sqlite3']
    no file '/usr/local/share/lua/5.2/luasql/sqlite3.lua'
    no file '/usr/local/share/lua/5.2/luasql/sqlite3/init.lua'
    no file '/usr/local/lib/lua/5.2/luasql/sqlite3.lua'
    no file '/usr/local/lib/lua/5.2/luasql/sqlite3/init.lua'
    no file './luasql/sqlite3.lua'
    no file '/usr/local/lib/lua/5.2/luasql/sqlite3.so'
    no file '/usr/local/lib/lua/5.2/loadall.so'
    no file './luasql/sqlite3.so'
    no file '/usr/local/lib/lua/5.2/luasql.so'
    no file '/usr/local/lib/lua/5.2/loadall.so'
    no file './luasql.so'
stack traceback:
    [C]: in function 'require'
    sqlite-output.nse:7: in function <sqlite-output.nse:1>
NSE: failed to initialize the script engine:
/usr/local/bin/../share/nmap/nse_main.lua:600: could not load script
stack traceback:
    [C]: in function 'error'
    /usr/local/bin/../share/nmap/nse_main.lua:600: in function 'new'
    /usr/local/bin/../share/nmap/nse_main.lua:805: in function 'get_chosen_scripts'
    /usr/local/bin/../share/nmap/nse_main.lua:1249: in main chunk
    [C]: in ?

답변1

Nmap은 5.1이 아닌 Lua 5.2를 사용합니다. 버전이 호환되지 않습니다.


편집: Lua 5.2에서 실제로 lua-sql-sqlite3을 사용하고 있다는 것을 확인했습니다. 하지만 Nmap은 귀하의 질문에 인쇄된 위치(접두사)에서 이를 찾고 있습니다 /usr/local. Ubuntu 패키지는 /usr접두사로 설치됩니다. 다음을 수행하여 작동하게 할 수도 있습니다.sudo ln -s /usr/lib/lua/5.2/luasql /usr/local/lib/lua/5.2/luasql

관련 정보