|
|
|
@ -1,4 +1,4 @@
|
|
|
|
#!/bin/bash
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# Initial script for Live operating system
|
|
|
|
# Initial script for Live operating system
|
|
|
|
# This script are launching before starting init from linux-live script.
|
|
|
|
# This script are launching before starting init from linux-live script.
|
|
|
|
@ -19,6 +19,7 @@ debug_mode "$0" "$@"
|
|
|
|
|
|
|
|
|
|
|
|
SYSCONF="${ROOTFS}/${SYSCONF}"
|
|
|
|
SYSCONF="${ROOTFS}/${SYSCONF}"
|
|
|
|
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
|
|
|
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
|
|
|
|
|
|
|
SOURCE=${SYSCONF}/system; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
|
|
|
SOURCE=${SYSCONF}/network; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
|
|
|
SOURCE=${SYSCONF}/network; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
|
|
|
|
|
|
|
|
|
|
|
exec_hostname(){
|
|
|
|
exec_hostname(){
|
|
|
|
@ -26,39 +27,60 @@ exec_hostname(){
|
|
|
|
[[ -n ${PARAM} ]] && eval "${PARAM%%=*}='${PARAM#*=}'"
|
|
|
|
[[ -n ${PARAM} ]] && eval "${PARAM%%=*}='${PARAM#*=}'"
|
|
|
|
SET_HOSTNAME="${HOSTNAME}"
|
|
|
|
SET_HOSTNAME="${HOSTNAME}"
|
|
|
|
[[ -z ${SET_HOSTNAME} ]] && SET_HOSTNAME=ublinux-live
|
|
|
|
[[ -z ${SET_HOSTNAME} ]] && SET_HOSTNAME=ublinux-live
|
|
|
|
tail -c1 -- hosts | grep -qx $'\n' || echo >> ${ROOTFS}/etc/hosts
|
|
|
|
|
|
|
|
|
|
|
|
# Удалить предыдущее имя хоста
|
|
|
|
|
|
|
|
OLD_HOSTNAME=$(tail -1 ${ROOTFS}/etc/hostname); OLD_HOSTNAME=${OLD_HOSTNAME%%.*}
|
|
|
|
|
|
|
|
sed -E -e "s/\s${OLD_HOSTNAME}(\s|$)/ /g" -e "s/\s${OLD_HOSTNAME}\.[-0-9a-zA-Z.]*(\s|$)/ /g" -e "/^\s*[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\s*$/d" -i ${ROOTFS}/etc/hosts
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Если нет новой строки, то вставить
|
|
|
|
|
|
|
|
tail -c1 -- ${ROOTFS}/etc/hosts | grep -qx $'\n' || echo >> ${ROOTFS}/etc/hosts
|
|
|
|
|
|
|
|
|
|
|
|
HOSTS_1="127.0.0.1 sb-ssl.l.google.com safebrowsing.clients.google.com safebrowsing.cache.l.google.com"
|
|
|
|
HOSTS_1="127.0.0.1 sb-ssl.l.google.com safebrowsing.clients.google.com safebrowsing.cache.l.google.com"
|
|
|
|
grep -q "^\s*${HOSTS_1}\s*$" ${ROOTFS}/etc/hosts || echo "${HOSTS_1}" >> ${ROOTFS}/etc/hosts
|
|
|
|
grep -q "^\s*${HOSTS_1}\s*$" ${ROOTFS}/etc/hosts || echo "${HOSTS_1}" >> ${ROOTFS}/etc/hosts
|
|
|
|
HOSTS_2="127.0.0.1 ${SET_HOSTNAME%%.*}"
|
|
|
|
HOSTS_2="127.0.0.1 ${SET_HOSTNAME%%.*}"
|
|
|
|
grep -q "^\s*${HOSTS_2}\s*$" ${ROOTFS}/etc/hosts || echo "${HOSTS_2}" >> ${ROOTFS}/etc/hosts
|
|
|
|
grep -q "^\s*${HOSTS_2}\s*$" ${ROOTFS}/etc/hosts || echo "${HOSTS_2}" >> ${ROOTFS}/etc/hosts
|
|
|
|
echo "${SET_HOSTNAME}" > ${ROOTFS}/etc/hostname
|
|
|
|
|
|
|
|
[[ ${SET_HOSTNAME} != ${SET_HOSTNAME#*.} ]] && DOMAIN="${SET_HOSTNAME#*.}"
|
|
|
|
[[ ${SET_HOSTNAME} != ${SET_HOSTNAME#*.} ]] && DOMAIN="${SET_HOSTNAME#*.}"
|
|
|
|
if [[ ${DOMAIN} != "" ]]; then
|
|
|
|
if [[ ${DOMAIN} != "" ]]; then
|
|
|
|
HOSTNAME="${SET_HOSTNAME%%.*}.${DOMAIN}"
|
|
|
|
SET_HOSTNAME="${SET_HOSTNAME%%.*}.${DOMAIN}"
|
|
|
|
|
|
|
|
echo "${SET_HOSTNAME}" > ${ROOTFS}/etc/hostname
|
|
|
|
HOSTS_3="127.0.0.1 ${SET_HOSTNAME}"
|
|
|
|
HOSTS_3="127.0.0.1 ${SET_HOSTNAME}"
|
|
|
|
grep -q "^\s*${HOSTS_3}\s*$" ${ROOTFS}/etc/hosts || echo "${HOSTS_3}" >> ${ROOTFS}/etc/hosts
|
|
|
|
grep -q "^\s*${HOSTS_3}\s*$" ${ROOTFS}/etc/hosts || echo "${HOSTS_3}" >> ${ROOTFS}/etc/hosts
|
|
|
|
|
|
|
|
|
|
|
|
## Указать доменных пользователей AccountsService, что-бы были видны для выбора логина в DM
|
|
|
|
## Указать доменных пользователей AccountsService, что-бы были видны для выбора логина в DM
|
|
|
|
ls -d ${ROOTFS}/home/*@*/ 2>/dev/null | xargs -ri basename {} | xargs -ri touch ${ROOTFS}/var/lib/AccountsService/users/{}
|
|
|
|
ls -d ${ROOTFS}/home/*@*/ 2>/dev/null | xargs -ri basename {} | xargs -ri touch ${ROOTFS}/var/lib/AccountsService/users/{}
|
|
|
|
|
|
|
|
|
|
|
|
## Домен для сервера dhcpd
|
|
|
|
## Домен для сервера dhcpd
|
|
|
|
sed s/"option domain-name .*"/"option domain-name \"${DOMAIN}\";"/g -i ${ROOTFS}/etc/dhcpd.conf
|
|
|
|
if [[ -f ${ROOTFS}/etc/dhcpd.conf ]]; then
|
|
|
|
sed s/"option nis-domain .*"/"option nis-domain \"${DOMAIN}\";"/g -i ${ROOTFS}/etc/dhcpd.conf
|
|
|
|
sed s/"option domain-name .*"/"option domain-name \"${DOMAIN}\";"/g -i ${ROOTFS}/etc/dhcpd.conf
|
|
|
|
|
|
|
|
sed s/"option nis-domain .*"/"option nis-domain \"${DOMAIN}\";"/g -i ${ROOTFS}/etc/dhcpd.conf
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
## Имя хоста записать в конфиг с постфиксом домена
|
|
|
|
## Имя хоста записать в конфиг с постфиксом домена
|
|
|
|
sed /^HOSTNAME=/d -i ${ROOTFS}/etc/ublinux/config
|
|
|
|
[[ -f ${ROOTFS}/etc/ublinux/config ]] && { grep -q "^\s*HOSTNAME=${SET_HOSTNAME}\s*$" ${ROOTFS}/etc/ublinux/config || sed "s/^\s*HOSTNAME=.*/HOSTNAME=${SET_HOSTNAME}/g" -i ${ROOTFS}/etc/ublinux/config; }
|
|
|
|
echo "HOSTNAME=${SET_HOSTNAME}" >> ${ROOTFS}/etc/ublinux/config
|
|
|
|
[[ -f ${ROOTFS}/etc/ublinux/system ]] && { grep -q "^\s*HOSTNAME=${SET_HOSTNAME}\s*$" ${ROOTFS}/etc/ublinux/system || sed "s/^\s*HOSTNAME=.*/HOSTNAME=${SET_HOSTNAME}/g" -i ${ROOTFS}/etc/ublinux/system; }
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
echo "${SET_HOSTNAME}" > ${ROOTFS}/etc/hostname
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
exec_hostname_live(){
|
|
|
|
exec_hostname_live(){
|
|
|
|
|
|
|
|
# Если выполнение в initrd, то выход
|
|
|
|
[[ -z ${ROOTFS} ]] || return 0
|
|
|
|
[[ -z ${ROOTFS} ]] || return 0
|
|
|
|
local PARAM="$@"
|
|
|
|
local PARAM="$@"
|
|
|
|
[[ -n ${PARAM} ]] && eval "${PARAM%%=*}='${PARAM#*=}'"
|
|
|
|
[[ -n ${PARAM} ]] && eval "${PARAM%%=*}='${PARAM#*=}'"
|
|
|
|
SET_HOSTNAME="${HOSTNAME}"
|
|
|
|
SET_HOSTNAME="${HOSTNAME}"
|
|
|
|
[[ -z ${SET_HOSTNAME} ]] && SET_HOSTNAME=ublinux-live
|
|
|
|
[[ -z ${SET_HOSTNAME} ]] && SET_HOSTNAME=ublinux-live
|
|
|
|
[[ ${SET_HOSTNAME} != ${SET_HOSTNAME#*.} ]] && DOMAIN="${SET_HOSTNAME#*.}"
|
|
|
|
[[ ${DOMAIN} != "" ]] && SET_HOSTNAME="${SET_HOSTNAME%%.*}.${DOMAIN}"
|
|
|
|
[[ ${DOMAIN} != "" ]] && ubconfig -q set network DOMAIN="${DOMAIN}"
|
|
|
|
|
|
|
|
hostnamectl set-hostname ${SET_HOSTNAME}
|
|
|
|
hostnamectl set-hostname ${SET_HOSTNAME}
|
|
|
|
|
|
|
|
|
|
|
|
## Если меняется имя хоста в запущенных X, то новое имя добавляем в xauth
|
|
|
|
## Если меняется имя хоста в запущенных X, то новое имя добавляем в xauth
|
|
|
|
who | grep "(:[0-9.]*)$" | cut -d' ' -f1 | xargs -ri su {} -c "xauth list | sed 's|^.*/|su {} -c \\\\\"xauth add ${SET_HOSTNAME}/|;s|$|\\\\\"|'" | xargs -ri sh -c '{}'
|
|
|
|
who | grep "(:[0-9.]*)$" | cut -d' ' -f1 | xargs -ri su {} -c "xauth list | sed 's|^.*/|su {} -c \\\\\"xauth add ${SET_HOSTNAME}/|;s|$|\\\\\"|'" | xargs -ri sh -c '{}'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Если указан домен, то задаём переменную DOMAIN=
|
|
|
|
|
|
|
|
# Примечание: Имя сервера контроллера домена включает постфикс домена, но в домен не входит
|
|
|
|
|
|
|
|
#[[ ${SET_HOSTNAME} != ${SET_HOSTNAME#*.} ]] && DOMAIN="${SET_HOSTNAME#*.}"
|
|
|
|
|
|
|
|
#[[ ${DOMAIN} != "" ]] && ubconfig -q set network DOMAIN="${DOMAIN}"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
################
|
|
|
|
################
|
|
|
|
|