not good
This commit is contained in:
commit
db6eb09d9a
|
@ -0,0 +1,490 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# проверка запуска от имени рута
|
||||
if [ "$EUID" -ne 0 ]
|
||||
then echo "Use sudo, dummy."
|
||||
exit
|
||||
fi
|
||||
|
||||
# установка компонентов для pxe
|
||||
sudo apt install tftpd-hpa pxelinux syslinux isc-dhcp-server -y
|
||||
# настройка dhcp
|
||||
sed -i "s/INTERFACESv4=""/INTERFACESv4="eth1"/" /etc/default/isc-dhcp-server
|
||||
sed -i "s/INTERFACESv4=""/INTERFACESv4="eth1"/" /etc/dhcp/dhcpd.conf
|
||||
network_variables () {
|
||||
# переменные хоста
|
||||
read -p 'Введите имя этого ПК: ' -i $(hostname -s) -e PC_NAME
|
||||
read -p 'Введите имя домена: ' -i $(hostname -d) -e DOMAIN
|
||||
|
||||
# меняем имя хоста
|
||||
hostnamectl set-hostname "$PC_NAME"
|
||||
|
||||
# переменные сети
|
||||
read -p 'Введите имя интерфейса: ' -i eth0 -e INTERFACE
|
||||
read -p 'Введите адрес этого ПК: ' -i $(hostname -i) -e IP
|
||||
read -p 'Введите маску подсети: ' -i 24 -e SUBNET
|
||||
read -p 'Введите gateway: ' -i $(echo "$IP" | grep -Eo '([0-9]+\.)+') -e GATEWAY
|
||||
read -p 'Введите адрес DNS сервера: ' -i $(echo "$IP" | grep -Eo '([0-9]+\.)+') -e DNS
|
||||
read -p 'Введите сеть: ' -i $(echo "$IP" | grep -Eo '([0-9]+\.)+') -e IP_NET
|
||||
read -p 'Введите начало диапазона DHCP: ' -i $(echo "$IP" | grep -Eo '([0-9]+\.)+') -e IP_range1
|
||||
read -p 'Введите конец диапазона DHCP: ' -i $(echo "$IP" | grep -Eo '([0-9]+\.)+') -e IP_range2
|
||||
# удаляем все соединения
|
||||
rm /etc/network/interfaces.d/* 2> /dev/null
|
||||
nmcli --terse connection show 2> /dev/null | cut -d : -f 1 | \
|
||||
while read name; do echo nmcli connection delete "$name" 2> /dev/null; done
|
||||
|
||||
# поднимаем сеть
|
||||
echo "auto $INTERFACE" > "/etc/network/interfaces.d/$INTERFACE"
|
||||
echo "iface $INTERFACE inet static" >> "/etc/network/interfaces.d/$INTERFACE"
|
||||
echo -e "\taddress $IP" >> "/etc/network/interfaces.d/$INTERFACE"
|
||||
echo -e "\tnetmask $SUBNET" >> "/etc/network/interfaces.d/$INTERFACE"
|
||||
echo -e "\tgateway $GATEWAY" >> "/etc/network/interfaces.d/$INTERFACE"
|
||||
echo "nameserver $DNS" > '/etc/resolv.conf'
|
||||
systemctl restart networking
|
||||
|
||||
# прописываем хостс
|
||||
echo "127.0.0.1 localhost" > /etc/hosts
|
||||
echo "$IP $PC_NAME.$DOMAIN $PC_NAME" >> /etc/hosts
|
||||
# установка компонентов для pxe
|
||||
sudo apt install tftpd-hpa pxelinux syslinux isc-dhcp-server -y
|
||||
# настройка dhcp
|
||||
sed -i "s/INTERFACESv4=""/INTERFACESv4="eth1"/" /etc/default/isc-dhcp-server
|
||||
sed -i "s/INTERFACESv4=""/INTERFACESv4="eth1"/" /etc/dhcp/dhcpd.conf
|
||||
config_dhcp = "
|
||||
authoritative;
|
||||
option domain-name "$DNS";
|
||||
default-lease-time 600;
|
||||
max-lease-time 7200;
|
||||
log-facility local7;
|
||||
option domain-name-servers $DNS;
|
||||
allow booting;
|
||||
allow bootp;
|
||||
option fqdn.no-client-update on;
|
||||
option fqdn.rcode2 255;
|
||||
option pxegrub code 150 = text ;
|
||||
|
||||
next-server $IP;
|
||||
option architecture code 93 = unsigned integer 16 ;
|
||||
if option architecture = 00:07 {
|
||||
filename "bootx64.efi";
|
||||
} elsif option architecture = 00:09 {
|
||||
filename "bootx64.efi";
|
||||
} else {
|
||||
filename "pxelinux.0";
|
||||
}
|
||||
|
||||
subnet $IP_NET netmask 255.255.255.0 {
|
||||
range $IP_range1 $IP_range2;
|
||||
option broadcast-address 192.168.56.255;
|
||||
option routers $IP;
|
||||
option subnet-mask 255.255.255.0;
|
||||
} "
|
||||
|
||||
echo $config_dhcp | tee /etc/dhcp/dhcpd.conf
|
||||
}
|
||||
PXE_setting () {
|
||||
|
||||
|
||||
}
|
||||
|
||||
echo "network_variables [1]"
|
||||
echo "PXE_setting [2]"
|
||||
read -p 'ALD_Pro [0124] ' WHICH_FUNC
|
||||
|
||||
if grep -q "1" <<< "$WHICH_FUNC"; then
|
||||
network_variables
|
||||
fi
|
||||
if grep -q "2" <<< "$WHICH_FUNC"; then
|
||||
PXE_setting
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
network_variables () {
|
||||
# переменные хоста
|
||||
read -p 'Введите имя этого ПК: ' -i $(hostname -s) -e PC_NAME
|
||||
read -p 'Введите имя домена: ' -i $(hostname -d) -e DOMAIN
|
||||
|
||||
# меняем имя хоста
|
||||
hostnamectl set-hostname "$PC_NAME"
|
||||
|
||||
# переменные сети
|
||||
read -p 'Введите имя интерфейса: ' -i eth0 -e INTERFACE
|
||||
read -p 'Введите адрес этого ПК: ' -i $(hostname -i) -e IP
|
||||
read -p 'Введите маску подсети: ' -i 24 -e SUBNET
|
||||
read -p 'Введите gateway: ' -i $(echo "$IP" | grep -Eo '([0-9]+\.)+') -e GATEWAY
|
||||
read -p 'Введите адрес DNS сервера: ' -i $(echo "$IP" | grep -Eo '([0-9]+\.)+') -e DNS
|
||||
|
||||
# удаляем все соединения
|
||||
rm /etc/network/interfaces.d/* 2> /dev/null
|
||||
nmcli --terse connection show 2> /dev/null | cut -d : -f 1 | \
|
||||
while read name; do echo nmcli connection delete "$name" 2> /dev/null; done
|
||||
|
||||
# поднимаем сеть
|
||||
echo "auto $INTERFACE" > "/etc/network/interfaces.d/$INTERFACE"
|
||||
echo "iface $INTERFACE inet static" >> "/etc/network/interfaces.d/$INTERFACE"
|
||||
echo -e "\taddress $IP" >> "/etc/network/interfaces.d/$INTERFACE"
|
||||
echo -e "\tnetmask $SUBNET" >> "/etc/network/interfaces.d/$INTERFACE"
|
||||
echo -e "\tgateway $GATEWAY" >> "/etc/network/interfaces.d/$INTERFACE"
|
||||
echo "nameserver $DNS" > '/etc/resolv.conf'
|
||||
systemctl restart networking
|
||||
|
||||
# прописываем хостс
|
||||
echo "127.0.0.1 localhost" > /etc/hosts
|
||||
echo "$IP $PC_NAME.$DOMAIN $PC_NAME" >> /etc/hosts
|
||||
}
|
||||
|
||||
admin_variables () {
|
||||
# переменные админа (для входа в домен)
|
||||
read -p 'Введите логин админимтратора: ' -i Administrator -e ADMIN_LOGIN
|
||||
read -p 'Введите пароль администратора: ' -i xxXX1234 -e ADMIN_PASSWORD
|
||||
}
|
||||
|
||||
another_variables () {
|
||||
# переменные другого пк (домен/клиент)
|
||||
read -p 'Введите имя ПК: ' ANOTHER_PC_NAME
|
||||
read -p 'Введите адрес ПК: ' ANOTHER_IP
|
||||
|
||||
# прописываем хостс
|
||||
echo "$ANOTHER_IP $ANOTHER_PC_NAME.$DOMAIN $ANOTHER_PC_NAME" >> /etc/hosts
|
||||
}
|
||||
|
||||
check_variables () {
|
||||
if grep -L "0" <<< "$WHICH_FUNC"; then
|
||||
read -p "Сеть и хостс настроены? " -i n -e QUESTION
|
||||
if [[ "$QUESTION" == "n" ]]; then
|
||||
network_variables
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
admin_rules () {
|
||||
read -p "Дать пользователю права администратора? " -i y -e QUESTION
|
||||
if [[ "$QUESTION" == "y" ]]; then
|
||||
read -p 'Введите имя доменного пользователя: ' USERNAME
|
||||
pdpl-user -i 63 "$USERNAME"
|
||||
echo "$USERNAME ALL=(ALL:ALL) ALL" | EDITOR="tee -a" visudo
|
||||
fi
|
||||
}
|
||||
|
||||
1.6_repos_update () {
|
||||
# подсказка по дискам
|
||||
echo "1. Smolensk-1.6.iso"
|
||||
echo "2. Devel-Smolensk-1.6.iso"
|
||||
echo "3. Repository-Update.iso"
|
||||
echo "4. Repository-Update-Devel.iso"
|
||||
read -p "Вы вставили все диски?"
|
||||
|
||||
# CD/DVD-1 [Smolensk-1.6]
|
||||
while ! ls /dev/sr0 > /dev/null 2>&1; do
|
||||
read -p "Вставьте Smolensk-1.6.iso"
|
||||
done
|
||||
mkdir -p /srv/repo/smolensk/main
|
||||
mount /dev/sr0 /media/cdrom
|
||||
cp -a /media/cdrom/* /srv/repo/smolensk/main
|
||||
umount /media/cdrom
|
||||
|
||||
# CD/DVD 2 [Devel-Smolensk-1.6]
|
||||
while ! ls /dev/sr1 > /dev/null 2>&1; do
|
||||
read -p "Вставьте Devel-Smolensk-1.6.iso"
|
||||
done
|
||||
mkdir -p /srv/repo/smolensk/devel
|
||||
mount /dev/sr1 /media/cdrom
|
||||
cp -a /media/cdrom/* /srv/repo/smolensk/devel
|
||||
umount /media/cdrom
|
||||
|
||||
# CD/DVD 3 [20200722SE16]
|
||||
while ! ls /dev/sr2 > /dev/null 2>&1; do
|
||||
read -p "Вставьте Repository-Update.iso"
|
||||
done
|
||||
mkdir -p /srv/repo/smolensk/update
|
||||
mount /dev/sr2 /media/cdrom
|
||||
cp -a /media/cdrom/* /srv/repo/smolensk/update
|
||||
umount /media/cdrom
|
||||
|
||||
# CD/DVD 4 [Repository-Update-Devel]
|
||||
while ! ls /dev/sr3 > /dev/null 2>&1; do
|
||||
read -p "Вставьте Repository-Update-Devel.iso"
|
||||
done
|
||||
mkdir -p /srv/repo/smolensk/update-dev
|
||||
mount /dev/sr3 /media/cdrom
|
||||
cp -a /media/cdrom/* /srv/repo/smolensk/update-dev
|
||||
umount /media/cdrom
|
||||
|
||||
# дополняем источники
|
||||
echo "deb file:/srv/repo/smolensk/main smolensk main contrib non-free" > /etc/apt/sources.list
|
||||
echo "deb file:/srv/repo/smolensk/devel smolensk main contrib non-free" >> /etc/apt/sources.list
|
||||
echo "deb file:/srv/repo/smolensk/update smolensk main contrib non-free" >> /etc/apt/sources.list
|
||||
echo "deb file:/srv/repo/smolensk/update-dev smolensk main contrib non-free" >> /etc/apt/sources.list
|
||||
}
|
||||
|
||||
1.7_repos_update () {
|
||||
# сертификаты
|
||||
apt install apt-transport-https ca-certificates
|
||||
|
||||
# дополняем источники
|
||||
echo "deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free" > /etc/apt/sources.list
|
||||
echo "deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free" >> /etc/apt/sources.list
|
||||
echo "deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free" >> /etc/apt/sources.list
|
||||
echo "deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free" >> /etc/apt/sources.list
|
||||
}
|
||||
|
||||
repos_update () {
|
||||
# проверяем версию Астры
|
||||
ASTRA_VERISON=$(cat /etc/*-release)
|
||||
|
||||
# версия 1.6
|
||||
if grep -q "1.6" <<< "$ASTRA_VERISON"; then
|
||||
1.6_repos_update
|
||||
fi
|
||||
|
||||
# версия 1.7
|
||||
if grep -q "1.7" <<< "$ASTRA_VERISON"; then
|
||||
1.7_repos_update
|
||||
fi
|
||||
|
||||
# обновление пакетов
|
||||
apt update -y
|
||||
apt dist-upgrade -y
|
||||
apt -f install -y
|
||||
apt autoremove -y
|
||||
}
|
||||
|
||||
ssh_server () {
|
||||
# устанавливаем пакет
|
||||
apt install openssh-server -y
|
||||
|
||||
# включаем SSH
|
||||
systemctl enable --now ssh
|
||||
}
|
||||
|
||||
ssh_client () {
|
||||
# генерим ключи
|
||||
ssh-keygen
|
||||
|
||||
# логин@пароль
|
||||
echo "Вводите данные сервера."
|
||||
admin_variables
|
||||
|
||||
# передаюм ключи на удалённый сервер
|
||||
ssh-copy-id -i ~/.ssh/id_rsa.pub "$ADMIN_LOGIN"@"$ADMIN_PASSWORD"
|
||||
}
|
||||
|
||||
ad_join () {
|
||||
# устанавливаем пакет
|
||||
apt install astra-ad-sssd-client -y
|
||||
|
||||
# входим в домен
|
||||
check_variables
|
||||
admin_variables
|
||||
astra-ad-sssd-client -d "$(hostname -d)" -u "$ADMIN_LOGIN" -p "$ADMIN_PASSWORD" -y
|
||||
admin_rules
|
||||
}
|
||||
|
||||
ald_init () {
|
||||
# устанавливаем пакеты
|
||||
apt install fly-admin-ald-server ald-server-common smolensk-security-ald -y
|
||||
|
||||
# функции
|
||||
check_variables
|
||||
echo "Вводите данные клиента."
|
||||
another_variables
|
||||
|
||||
# иницилизируем ald
|
||||
ald-init init
|
||||
}
|
||||
|
||||
ald_join () {
|
||||
# устанавливаем пакеты
|
||||
apt install ald-client-common ald-admin -y
|
||||
|
||||
# функции
|
||||
check_variables
|
||||
echo "Вводите данные домена."
|
||||
another_variables
|
||||
|
||||
# входим в домен
|
||||
ald-client join
|
||||
admin_rules
|
||||
}
|
||||
|
||||
dmcli_install () {
|
||||
# директория dmcli
|
||||
rm -rf dmcli/; mkdir dmcli/
|
||||
|
||||
# наличие архива
|
||||
while ! ls *.tar.gz > /dev/null 2>&1; do
|
||||
read -p "Переместите архив клиента Device Monitor."
|
||||
done
|
||||
|
||||
# распаковка архива
|
||||
tar -xvf *.tar.gz -C dmcli/
|
||||
|
||||
# распаковка пакета
|
||||
PACKAGE=$(echo dmcli/*.deb)
|
||||
dpkg-deb -x "$PACKAGE" dmcli/dpkg/
|
||||
dpkg-deb -e "$PACKAGE" dmcli/dpkg/DEBIAN
|
||||
|
||||
# замена файлов (вписывает текущее ядро)
|
||||
mv dmcli/dpkg/opt/iw/dmagent/lib/modules/*-$(uname -r | grep -P -o 'generic|hardened') \
|
||||
dmcli/dpkg/opt/iw/dmagent/lib/modules/$(uname -r)
|
||||
|
||||
# сборка пакета
|
||||
rm "$PACKAGE" && dpkg -b dmcli/dpkg "$PACKAGE"
|
||||
|
||||
# удаление старых ядер
|
||||
sudo apt-get remove `dpkg --list 'linux-image*' |grep ^ii | awk '{print $2}'\ | grep -v \`uname -r\``
|
||||
|
||||
# установка девайс монитор клиента
|
||||
read -p 'Введите адрес и порт IWDM: ' -i 192.168.1.20:15101 -e IWDM
|
||||
dmcli/install.sh $IWDM
|
||||
}
|
||||
|
||||
rutk_server () {
|
||||
# установка библиотек для сертификатов
|
||||
apt install libccid pcscd libpcsclite1 pcsc-tools opensc krb5-pkinit libpam-krb5 libengine-pkcs11-openssl1.1 -y
|
||||
wget https://es.ukrtb.ru/nextcloud/s/HX6fcj5mpBASTeG/download/librtpkcs11ecp_2.3.3.0-1_amd64.deb -O /tmp/librtpkcs11ecp.deb
|
||||
dpkg -i /tmp/librtpkcs11ecp.deb
|
||||
|
||||
# создание сертификатов
|
||||
mkdir /etc/ssl/CA ; cd "$_"
|
||||
openssl genrsa -out cakey.pem 2048
|
||||
openssl req -key cakey.pem -new -x509 -days 3650 -out cacert.pem -subj "/C=RU/ST=RB/L=Ufa/O=UKRTB/OU=IB/CN=astra/emailAddress=astra@demo.lab"
|
||||
openssl genrsa -out kdckey.pem 2048
|
||||
openssl req -new -out kdc.req -key kdckey.pem -subj "/C=RU/ST=RB/L=Ufa/O=UKRTB/OU=IB/CN=astra/emailAddress=astra@demo.lab"
|
||||
wget https://es.ukrtb.ru/git/ukrtb/learn/raw/branch/master/pkinit_extensions
|
||||
sed -i "s/КЛИЕНТ/$(hostname -s)/" pkinit_extensions
|
||||
sed -i "s/РЕАЛМ/$(hostname -d)/" pkinit_extensions
|
||||
openssl x509 -req -in kdc.req -CAkey cakey.pem -CA cacert.pem -out kdc.pem -extfile pkinit_extensions -extensions kdc_cert -CAcreateserial -days 365
|
||||
cp kdc.pem kdckey.pem cacert.pem /var/lib/krb5kdc/
|
||||
|
||||
# конфигурация керберос
|
||||
sed -i '/kdcdefaults/a \
|
||||
pkinit_identity = FILE:/var/lib/krb5kdc/kdc.pem,/var/lib/krb5kdc/kdckey.pem \
|
||||
pkinit_anchors = FILE:/var/lib/krb5kdc/cacert.pem '\
|
||||
/etc/ald/config-templates/kdc.conf
|
||||
ald-init commit-config
|
||||
|
||||
# перезапуск керберос
|
||||
systemctl restart krb5-admin-server
|
||||
systemctl restart krb5-kdc
|
||||
|
||||
# проверка наличия рутокена
|
||||
while ! pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T > /dev/null 2>&1; do
|
||||
read -p "Вставьте Рутокен."
|
||||
done
|
||||
|
||||
# форматирование и инициализация токена
|
||||
pkcs15-init --erase-card -p rutoken_ecp
|
||||
pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk ""
|
||||
pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin "12345678" --puk "" --so-pin "87654321" --label "Rutoken" --finalize
|
||||
|
||||
# генерация закрытых ключей на рутокене
|
||||
pkcs11-tool --slot 0 --login --pin 12345678 --keypairgen --key-type rsa:2048 --id 42 --label “ukrtb” --module /usr/lib/librtpkcs11ecp.so
|
||||
|
||||
# генерация сертификатов
|
||||
openssl << EOT
|
||||
engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so
|
||||
req -engine pkcs11 -new -key 0:42 -keyform engine -out client.req -subj "/C=RU/ST=RB/L=Ufa/O=UKRTB/OU=IB/CN=client/emailAddress=client@demo.lab"
|
||||
x509 -CAkey cakey.pem -CA cacert.pem -req -in client.req -extensions client_cert -extfile pkinit_extensions -out client.pem -days 365
|
||||
x509 -in client.pem -out client.cer -inform PEM -outform DER
|
||||
q
|
||||
EOT
|
||||
|
||||
# перенос сертификатов на Рутокен
|
||||
pkcs15-init --store-certificate client.cer --auth-id 02 --id 42 --format der
|
||||
# pkcs15-init --store-certificate cacert.pem --auth-id 02 --id 11 --format pem
|
||||
}
|
||||
|
||||
rutk_client () {
|
||||
# установка библиотек для сертификатов
|
||||
apt install libccid pcscd libpcsclite1 pcsc-tools opensc krb5-pkinit libpam-krb5 libengine-pkcs11-openssl1.1 -y
|
||||
wget https://es.ukrtb.ru/nextcloud/s/HX6fcj5mpBASTeG/download/librtpkcs11ecp_2.3.3.0-1_amd64.deb -O /tmp/librtpkcs11ecp.deb
|
||||
dpkg -i /tmp/librtpkcs11ecp.deb
|
||||
|
||||
# создане директории для корневого сертификата
|
||||
mkdir /etc/krb5/
|
||||
|
||||
# конфигурация керберос
|
||||
sed -i '/default_realm/a \
|
||||
pkinit_anchors = FILE:/etc/krb5/cacert.pem \
|
||||
pkinit_identities = PKCS11:/usr/lib/librtpkcs11ecp.so ' \
|
||||
/etc/krb5.conf
|
||||
}
|
||||
|
||||
# определение необходимостей
|
||||
echo "Сеть [0]"
|
||||
echo "Репозитории [1]"
|
||||
echo "Сервер SSH [2]"
|
||||
echo "Беспарольный вход по SSH [3]"
|
||||
echo "Вход в Active Directory [4]"
|
||||
echo "Иницилизация Astra Linux Directory [5]"
|
||||
echo "Вход в Astra Linux Directory [6]"
|
||||
echo "Device Monitor клиент [7]"
|
||||
echo "RUTK Сервер [8]"
|
||||
echo "RUTK Клиент [9]"
|
||||
read -p 'Выберите интересующие вас функции: [0124] ' WHICH_FUNC
|
||||
|
||||
if grep -q "0" <<< "$WHICH_FUNC"; then
|
||||
network_variables
|
||||
fi
|
||||
|
||||
if grep -q "1" <<< "$WHICH_FUNC"; then
|
||||
repos_update
|
||||
fi
|
||||
|
||||
if grep -q "2" <<< "$WHICH_FUNC"; then
|
||||
ssh_server
|
||||
fi
|
||||
|
||||
if grep -q "3" <<< "$WHICH_FUNC"; then
|
||||
ssh_client
|
||||
fi
|
||||
|
||||
if grep -q "4" <<< "$WHICH_FUNC"; then
|
||||
ad_join
|
||||
fi
|
||||
|
||||
if grep -q "5" <<< "$WHICH_FUNC"; then
|
||||
ald_init
|
||||
fi
|
||||
|
||||
if grep -q "6" <<< "$WHICH_FUNC"; then
|
||||
ald_join
|
||||
fi
|
||||
|
||||
if grep -q "7" <<< "$WHICH_FUNC"; then
|
||||
dmcli_install
|
||||
fi
|
||||
|
||||
if grep -q "8" <<< "$WHICH_FUNC"; then
|
||||
rutk_server
|
||||
fi
|
||||
|
||||
if grep -q "9" <<< "$WHICH_FUNC"; then
|
||||
rutk_client
|
||||
fi
|
Loading…
Reference in New Issue