Можете ли вы сделать команду `dd` безопасной?

Обычно нет - как только машина (виртуальная или нет) подключается к VPN, она ведет себя так, как если бы она была физически подключена к этой VPN, она больше не доступна и больше не может доступ к другим машинам в локальной сети (если не возможны соединения между машинами локальной сети и любой другой машиной внутри VPN, что как бы сводит на нет всю цель VPN).

В зависимости от реализации VPN это может быть технически разрешено через конфигурацию со стороны сервера VPN, ищите разделенное туннелирование VPN. Я сомневаюсь, что корпоративные ИТ позволят это, поскольку это считается дырой в безопасности.

0
23.04.2018, 21:46
2 ответа

Как сказал Аркадиуш, можно создать обертку:

dd() {
  # Limit variables' scope
  local args command output reply

  # Basic arguments handling
  while (( ${#} > 0 )); do
    case "${1}" in
    ( of=* )
      output="${1#*=}"
      ;;
    ( * )
      args+=( "${1}" )
      ;;
    esac
    shift || break
  done

  # Build the actual command
  command=( command -- dd "${args[@]}" "of=${output}" )

  # Warn the user
  printf 'Please double-check this to avoid potentially dangerous behavior.\n' >&2
  printf 'Output file: %s\n' "${output}" >&2

  # Ask for confirmation
  IFS= read -p 'Do you want to continue? (y/n): ' -r reply

  # Check user's reply
  case "${reply}" in
  ( y | yes )
    printf 'Running command...\n' >&2
    ;;
  ( * )
    printf 'Aborting\n' >&2
    return
    ;;
  esac

  # Run command
  "${command[@]}"
}

Пример:

$ dd if=/dev/urandom of=file.txt bs=4M count=5
Please double-check this to avoid potentially dangerous behavior.
Output file: file.txt
Do you want to continue? (y/n): y
Running command...
5+0 records in
5+0 records out
20971520 bytes (21 MB, 20 MiB) copied, 0.443037 s, 47.3 MB/s

Измените его в соответствии со своими потребностями (сделайте его совместимым с POSIX -, проверьте другие условия и т. д. ).

4
28.01.2020, 02:15

Насколько я знаю, не -суперпользователь не может перезаписать /dev/sda. Если вы не можете доверять своим операторам, которым был доверен доступ суперпользователя, у вас есть более серьезные проблемы, чем /bin/dd.

3
28.01.2020, 02:15

Теги

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