#!/bin/bash if [ $# != 2 ]; then echo "USAGE: $0 input key_file" exit 1 fi encrypt_dir=$1 key_file_path=$2 USERNAME=aiguard OUTPUT=workdir/output/ function create_user(){ id ${USERNAME} >/dev/null 2>&1 if [ $? -eq 0 ]; then uid=`id -u ${USERNAME}` if [ $uid -ne 9002 ]; then echo "user ${USERNAME} exist, but uid isn't 9002." return 1 fi return 0 else useradd -u 9002 -m ${USERNAME} >/dev/null 2>&1 if [ $? -eq 0 ]; then echo "create user ${USERNAME} success." return 0 fi echo "create user ${USERNAME} failed." return 1 fi } function is_or_not_clear_output(){ while true do read -r -p "Directory ${OUTPUT} is not empty, it must be empty when running aiguard. Do you want to empty it? [y/n]" input case $input in [yY][eE][sS]|[yY]) rm -rf ${OUTPUT}/* >/dev/null 2>&1 return 0 ;; [nN][oO]|[nN]) return 1 ;; *) echo "Invalid input..." ;; esac done } create_user if [ $? -ne 0 ]; then exit 1 fi mkdir -p workdir/input if [ -d ${OUTPUT} ]; then if [ "$(ls -A $OUTPUT)" ]; then is_or_not_clear_output if [ $? -ne 0 ]; then exit 1 fi fi fi mkdir -p ${OUTPUT} cp -af $encrypt_dir/* workdir/input cp -af $key_file_path workdir chown ${USERNAME} -R workdir find workdir/ -exec chmod -77 {} + find workdir/input -type f -exec chmod 500 {} + docker run -it --rm -u ${USERNAME} -v $PWD/workdir:/home/${USERNAME}/workdir -w /home/${USERNAME}/workdir [image_name]:[image_version] bash
执行命令启动镜像
bash run_aiguard.sh $encrypt_dir $key_file_path 命令样例: bash run_aiguard.sh ./model_file ./key_file
#修改文件权限(可选) chmod 600 MK.json #执行加密命令 aiguard encrypt -i ./input -o ./output -f MK.json
执行加密命令时,会弹出提示,要求输入导出主秘钥时使用的口令,输入后生成加密文件,并存储“./output”,加密文件用于边缘节点推理,请用户自行拷贝。