оболочка: предупреждать или запрещать выполнение команды с помощью псевдонима

выполнение

iptables -F

очень опасно, если ваша политика по умолчанию для одной или всех цепочек - DROP

. Я хотел бы использовать псевдоним в bashrc как

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

, но это не работает.

1
задан 2 September 2017 в 19:48
1 ответ

Это не должно работать из-за пробела в вашем псевдониме. .

Вместо этого вы можете вызвать пользовательскую функцию в .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'

Будет выведено предупреждающее сообщение, если аргумент iptables равен -F .

В противном случае он выполнит обычную команду iptables , включая все параметры, которые вы могли ей передать (скрытые), запустит настоящую команду iptables , не допуская обратного вызова вашей собственной функции. :

# 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.
...
2
ответ дан 3 December 2019 в 20:19

Теги

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