borgextend/tools/borg-restricted.py

26 lines
637 B
Python
Executable File

#!/usr/bin/env python3
import os
import pwd
import subprocess
import sys
# You can optionally add logging, etc. to log attempts that fail to verify the command enforcement,
# client IPs, etc. via environment variables, etc.
cur_user = os.geteuid()
homedir = pwd.getpwuid(cur_user).pw_dir
os.chdir(homedir)
orig_cmd = sys.argv[1:]
if orig_cmd.pop(0) != 'borg':
raise PermissionError('That command is not allowed')
if orig_cmd.pop(0) != 'serve':
raise PermissionError('That command is not allowed')
new_cmd = ['borg', 'serve', '--restrict-to-path', homedir]
new_cmd.extend(orig_cmd)
os.chdir(homedir)
subprocess.run(new_cmd)