콘텐츠로 이동

lua 표준 라이브러리 및 lua-lib 지원 목록


  • 버전: 1.0.7-7-g251eead
  • 릴리스 날짜: 2023-04-06 11:17:57
  • 지원 OS: windows/amd64, windows/386, linux/arm, linux/arm64, linux/386, linux/amd64

설명

scheck는 golang에서 사용할 수 있는 기능이 완비되고 통합이 간편한 lua 샌드박스 환경을 제공하여 사용자의 다양한 요구와 환경에 적응하는 것을 목표로 합니다. 이를 위해 우수한 오픈소스 lua VM인 gopher-lua 를 도입했습니다. 이 VM이 사용하는 lua 샌드박스 환경은 lua 5.1 버전입니다.

보안상의 이유로 lua 표준 라이브러리에서 IO 및 OS의 일부 기능을 비활성화했으며, lua-lib 및 go-openlib에서 이에 대한 보완 및 확장 기능을 제공합니다.

이 문서에서는 lua 스크립트 개발 과정에서 다양한 라이브러리를 사용하는 방법과 주의 사항을 중점적으로 설명합니다.

lua 스크립트 개발에서 라이브러리를 참조할 수 있는 세 가지 위치는 다음과 같습니다.

  • 표준 라이브러리: 대부분의 라이브러리와 함수를 지원합니다.
  • lua-lib: 개발자가 호출할 수 있는 일반적인 lua 함수 라이브러리를 캡슐화합니다.
  • go-openlib: golang을 사용하여 개발되었으며 file, system, net, utils 등을 제공합니다. 자세한 내용은 func 목록을 참조하세요.

표준 라이브러리

비활성화된 함수 목록:

  • 모든 IO 모듈 기능은 호출이 금지됩니다.
  • OS 라이브러리에서 비활성화된 함수: exit, execute, remove, rename, setenv, setlocale
  • OS 라이브러리에서 사용 가능한 함수: clock, difftime, date, getenv, time, tmpname

scheck의 lua-lib 사용

파일 위치: 설치 디렉터리 아래 rules.d/libs에 있습니다. 각 함수의 구체적인 메서드는 해당 파일을 참조하세요.

메서드 목록:

  • common
    • watcher(path, enum, func)
  • directorymonitor
    • change(dir)
    • add(dir)
    • del(dir)
    • priv_change(dir)
  • filemonitor
    • check(file)
    • exist(file)
    • priv_change(file)
    • priv_fixedchange(file, mode)
    • priv_limit(file, mode_bits)
    • priv_root_ownership(file)
    • priv_ownership(file, user)
  • kernelmonitor
    • module_isinstall(module_name, isInstalled)
  • mountflagmonitor
    • check(mountpath, mountflag, value)
  • rpmmonitor
    • check(pck_name, switch)
  • sysctlmonitor
    • check(param, switch)
    • check_many(params, switch)

예제:

lua-lib의 메서드 사용

local filemonitor = require("filemonitor")
local function check(file)
    if filemonitor.exist(file) then
        filemonitor.check(file) -- 파일을 모니터링하고 변경이 발생하면 메시지를 보고합니다
    end
end
check('/etc/shadow')

문서 평가

이 페이지가 도움이 되었나요?