리눅스에서 멀티 샌드박싱으로 llama.cpp 네이티브 도구(exec_shell_command)를 안전하게 실행하는 방법

✍️ OpenClawRadar📅 게시일: June 7, 2026🔗 Source
리눅스에서 멀티 샌드박싱으로 llama.cpp 네이티브 도구(exec_shell_command)를 안전하게 실행하는 방법
Ad

llama.cpp 프로젝트는 최근 llama-server에 네이티브 도구 지원을 추가하여 모델이 get_datetime과 같은 함수를 호출할 수 있게 했으며, 강력하지만 위험한 exec_shell_command도 포함됩니다. Reddit 사용자는 호스트 시스템을 위험에 빠뜨리지 않고 웹 RAG(실시간 URL 가져오기)와 같은 작업에 exec_shell_command를 안전하게 사용할 수 있는 다중 샌드박싱 워크플로우를 자세히 공유했습니다.

출처의 주요 세부 사항

  • 사용된 모델: MTP 추측 디코딩을 사용한 Qwen3.6-35B-A3B_MTP-UD-Q8_K_XL.gguf
  • 서버 플래그: --jinja --tools get_datetime,exec_shell_command --temp 0.6 --top-p 0.95 --top-k 20 --presence-penalty 1.5 --min-p 0.00 --chat-template-kwargs '{"preserve_thinking":true}' --spec-type draft-mtp --spec-draft-n-max 1
  • 다중 샌드박싱 스택: Firejail + smolvm (Alpine Linux VM) + 도구 실행 전용 Linux 사용자
Ad

단계별 설정

  1. llama-server에서 도구 활성화: --tools get_datetime,exec_shell_command로 시작 (먼저 get_datetime으로 테스트)
  2. Firejail 설치 (예: Arch에서 sudo pacman -S firejail)
  3. 격리된 사용자 생성: sudo useradd -m vmagents; sudo passwd vmagents
  4. vmagents로 전환하고 smolvm 설치: curl -sSL https://smolmachines.com/install.sh | bash
  5. 최소 Alpine VM 생성:
    smolvm machine create minivm --image alpine --net
    smolvm machine start --name minivm
  6. ~vmagents/.local/bin/minivm-exec 생성:
    #!/bin/sh
    smolvm machine start --name minivm >/dev/null
    firejail smolvm machine exec --name minivm -- $* 2>/dev/null
    smolvm machine stop --name minivm >/dev/null
    실행 가능하게: chmod +x minivm-exec
  7. 자신의 사용자 ~/.local/bin/vm-exec 생성:
    #!/bin/sh
    sudo su - vmagents -c "minivm-exec $*"
    실행 가능하게.
  8. llama-server 웹 UI에서 모델에 vm-exec를 래퍼로 사용하도록 프롬프트, 예:
    실행할 모든 명령 앞에 샌드박싱 래퍼 vm-exec를 붙이세요. 웹 콘텐츠를 가져올 때는 브라우저 사용자 에이전트 문자열로 "-U Mozilla" 옵션을 추가하여 wget을 사용하세요.
    그런 다음 실시간 URL을 검색하고 내용을 분석하도록 요청하세요.

샌드박싱 작동 방식

명령은 smolvm이 생성한 임시 Alpine Linux VM(minivm) 내에서 실행되며, 이 VM 자체가 Firejail 샌드박스로 감싸져 있습니다. 이는 네트워크 접근, 파일 시스템, 프로세스 공간을 격리합니다. 호스트의 vm-exec 스크립트는 전체 체인을 vmagents 사용자로 호출하여 호스트 사용자의 홈 디렉터리나 중요한 시스템 파일로의 권한 상승을 방지합니다. 각 명령 후 VM이 중지되어 악의적인 동작으로 인한 지속적인 상태가 없도록 합니다.

대상 독자

로컬 LLM 서버를 실행 중이고 호스트 OS를 노출하지 않고 에이전트 도구를 통해 안전하게 코드 실행이나 웹 가져오기를 허용하려는 개발자.

📖 전체 출처 읽기: r/LocalLLaMA

Ad

👀 See Also

클로드 코드 LSP 설정 가이드: 구조적 코드 이해
Guides

클로드 코드 LSP 설정 가이드: 구조적 코드 이해

레딧 게시물은 구조적 코드 이해를 위해 텍스트 매칭 대신 Language Server Protocol을 사용하도록 Claude Code를 구성하는 방법을 설명하며, 정의로 이동, 참조 찾기, 호출 계층 구조 기능으로 쿼리 시간을 30-60초에서 ~50ms로 줄입니다.

OpenClawRadar
클로드 스킬 제작 실용 가이드: 구조, 트리거, 스크립트
Guides

클로드 스킬 제작 실용 가이드: 구조, 트리거, 스크립트

클로드 스킬은 반복적인 작업을 자동화하는 지침 매뉴얼로, ~/.claude/skills/ 디렉토리에 SKILL.md 파일이 포함된 폴더 형태로 저장됩니다. 이 가이드는 YAML 트리거, 스크립트 통합, 그리고 다중 스킬 오케스트레이션 규칙을 설명합니다.

OpenClawRadar
클로드에서 Todoist 커넥터가 제거되었으며, 사용자 지정 설정이 필요합니다.
Guides

클로드에서 Todoist 커넥터가 제거되었으며, 사용자 지정 설정이 필요합니다.

공식 Todoist 커넥터가 Claude에서 더 이상 사용할 수 없습니다. 사용자는 MCP URL https://ai.todoist.net/mcp를 사용하여 Todoist를 커스텀 커넥터로 추가할 수 있지만, 이는 Claude Pro 또는 Max 구독이 필요합니다.

OpenClawRadar
로컬 대 클라우드 LLM의 일관된 벤치마킹 방법론
Guides

로컬 대 클라우드 LLM의 일관된 벤치마킹 방법론

개발자가 순차적 요청과 규칙 기반 점수 매기기를 사용한 측정 설정을 공유하며, ZenMux와 같은 통합 엔드포인트를 통해 로컬 모델(llama.cpp, vLLM, Ollama)과 클라우드 API(GPT-5.4, Claude Sonnet 4.6, Gemini 3.1 Pro)를 비교합니다.

OpenClawRadar