Различие важно при записи сценариев, которые должны использовать позиционные параметры правильным способом...
Вообразите следующий вызов:
$ myuseradd -m -c "Carlos Campderrós" ccampderros
Здесь существует всего 4 параметра:
$1 => -m
$2 => -c
$3 => Carlos Campderrós
$4 => ccampderros
В моем случае, myuseradd
просто обертка для useradd
это принимает те же параметры, но добавляет квоту для пользователя:
#!/bin/bash -e
useradd "$@"
setquota -u "${!#}" 10000 11000 1000 1100
Заметьте вызов к useradd "$@"
, с $@
заключенный в кавычки. Это будет уважать параметры и отправлять им as-they-are в useradd
. Если необходимо было закрыть кавычки $@
(или использовать $*
также закрывший кавычки), useradd видел бы 5 параметров, поскольку 3-й параметр, который содержал пространство, будет разделен в два:
$1 => -m
$2 => -c
$3 => Carlos
$4 => Campderrós
$5 => ccampderros
(и с другой стороны, если необходимо было использовать "$*"
, useradd только видел бы один параметр: -m -c Carlos Campderrós ccampderros
)
Так, короче говоря, если необходимо работать с параметрами, уважая параметры многословные, использовать "$@"
.
Я нашел ответ. Я добавил NAT к каждому nic:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
После того как я сделал это, все начало работать правильно. Спасибо все!
Как Вы говорите как Вы, получают ответы ping от сервера, затем могло бы быть возможно что правила iptables, примененные на Ваш сервер, так, чтобы сервер, отбрасывающий соединение SSH.
Если Вы разрешены видеть, что сервер iptables правило затем проверяет его. Было бы правило для отбрасывания соединения SSH.