Назад | Перейти на главную страницу

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

выполнение

iptables -F

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

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

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

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

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

Вместо этого вы можете вызвать пользовательскую функцию в .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 команда, включая все параметры, которые вы ей могли передать ($@).


command будет работать реальный 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.
...