Псевдонимы не раскрываются, когда оболочка не интерактивна, если только опция оболочки expand_aliases
не установлена с помощью shopt -s expand_aliases
.
Псевдонимы — это инструмент быстрого доступа для интерактивного использования. Вместо этого для любого сценария используйте функцию оболочки :
.
startservices () {
# commands go here
}
Функции оболочки во многих отношениях более гибкие, чем псевдонимы.Они могут принимать аргументы, как это делает сценарий оболочки, для начала :
.
startservices () {
user="$1"
service="$2"
# code to start service "$service" as user "$user"
}
Вам не нужно явно указывать источник .bash_profile
другого пользователя. Вместо этого используйте sudo -i
. Это запустит оболочку входа в систему, которая будет читать .bash_profile
при запуске :
.
$ sudo -i -u User2 startservices
Для этого требуется, чтобы startservices
был сценарием или другой внешней утилитой в $PATH
из User2
, функцией оболочки, определенной в файлах запуска оболочки User2
, или псевдонимом (с оболочкой. работает с набором expand_aliases
), определенным в файлах запуска оболочки User2
.
Учитывая, что два маршрутизатора позволяют проходить всем соединениям с обеих сторон, проще всего добавить новые IP-адреса к двум интерфейсам DEV2. Мы делаем это для того, чтобы DEV2 мог легко различать пакеты, предназначенные для него, и пакеты, предназначенные для прохождения :
.ip addr add 192.168.2.3/24 dev INTERFACE2
ip addr add 10.12.0.218/24 dev INTERFACE3
(подставьте реальные имена интерфейсов для INTERFACE2/3 и убедитесь, что эти адреса заняты а не , для этого просто ping -c 192.168.2.3 например и посмотрите, получите ли вы какой-либо ответ. Кроме того, я предположил, что две маски равны /24, если нет, измените соответственно ). Теперь все для 192.168.2.3 и 10.12.0.218 предназначено для DEV1/3, а все для 192.168.2.1 -10.12.0.217 — для DEV2.
Теперь мы пересылаем все, что приходит на два новых адреса.:
iptables -A FORWARD -j ACCEPT
iptables -A PREROUTING -t nat -d 192.168.2.3 -j DNAT --to 10.10.3.154
iptables -A PREROUTING -t nat -d 10.12.0.218 -j DNAT --to 192.168.2.2
iptables -t nat -A POSTROUTING -j MASQUERADE
Первое правило позволяет пакетам мигрировать с одного интерфейса на другой (правило net.ipv4.ip _forward = 1 необходимо, но недостаточно ), последнее правило переписывает все заголовки пакетов, как если бы они исходили от исходящего интерфейса, чтобы ответы снова направлялись через DEV2; два промежуточных правила переписывают заголовки пакетов таким образом, что пакеты отправляются от DEV1 к DEV3 (, правило № 2 ), и от DEV3 к DEV1 (, правило № 3 ).
Преимущество этой настройки заключается в том, что она очищает :все протоколы и все порты маршрутизируются одновременно, без каких-либо дополнительных сложностей.
ПРЕДОСТЕРЕЖЕНИЕ:interface1 на DEV1 и interface2 на DEV2 принадлежат к одной и той же подсети, что странно, поскольку вы говорите, что они разделены маршрутизатором :по определению, маршрутизатор объединяет два различных ] подсети. Значит, либо router1 , а не маршрутизатор, либо, если это так, в его конфигурации есть ошибка, так как он с обеих сторон окружен одними и теми же сетями. Я предположил первое, а не второе.