shell: avisa sobre ou nega a execução do comando com a ajuda de um alias

1

executando

iptables -F

é muito perigoso se sua política padrão para uma ou todas as cadeias for DROP

Eu gostaria de usar um alias em bashrc like

alias iptables -F="echo \
'WARNING: due to the DROP default rule, flushing all rules would lock you out'"

mas isso não funciona.

    
por MarkHelms 02.09.2017 / 18:48

1 resposta

2

Isso não deve funcionar devido ao espaço em seu nome de alias.

Você pode chamar uma função personalizada, em .bash_aliases :

#!/bin/bash

function myiptables {
 if [ $@ == "-F" ]
 then
   echo "WARNING: due to the DROP default rule, flushing all rules would lock you out"
 else
   command iptables "$@"
 fi
}

alias iptables='myiptables'

Isso imprimirá a mensagem de aviso se o argumento iptables for -F .

Caso contrário, ele executará o comando normal iptables , incluindo todos os parâmetros que você pode ter passado para ele ( $@ ).

command executará o comando real iptables , prevetando a chamada de sua própria função:

# help command
...
Runs COMMAND with ARGS suppressing shell function lookup, or display
information about the specified COMMANDs. Can be used to invoke commands
on disk when a function with the same name exists.
...
    
por 02.09.2017 / 19:51