Как переместить несколько файлов, начинающихся с разных строк/имен, в другую папку?

#!/usr/bin/zsh

pid="$1"
stdin_data="$2"

for p in $(pstree -sp "$pid" | grep -Po '(?<=\()\d+(?=\))' | tac); do
  [[ -r "/proc/$p/fd" ]] || continue
  for f in /proc/$p/fd/*; do
    if [[ "$(readlink "$f")" = /dev/ptmx ]]; then
      fd="$(basename "$f")"
      break 2
    fi
  done
done

sudo gdb -p "$p" --batch -x =(printf '%s' '            
  p (int)write($fd, "$stdin_data", (int)strlen("$stdin_data"))
')

Мне не нравится, что аргумент скрипта может быть C-инъекцией.

2
14.09.2021, 13:49
0 ответов

Теги

Похожие вопросы