Command-Line你能讓
你能讓dd
命令安全嗎?
我們都有(或認識的人)無意中誤用了
destroy-disk
(dd
) 命令。有哪些方法(如果有)可以通過以下或類似的方式更改命令: 如果/dev/sda
作為輸出文件 (of=/dev/sda
) 給出該命令,則該命令不會執行或提示您進行確認,例如“您確定嗎”?你能用你的
.bashrc
文件實現類似的目標嗎?一般來說,有沒有辦法在傳遞某些參數時阻止某些命令執行?
編輯:該命令以 root 身份執行。
正如 Arkadiusz 所說,您可以創建一個包裝器:
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,檢查其他條件等)。