KarelWintersky

KarelWintersky / Blacktower: primary install

Last active 3 months ago

Like 0

KarelWintersky revised this gist 4 months ago · c26b404

1 file changed, 4 insertions, 4 deletions

install.sh
@@ -3,10 +3,10 @@
3 3 set -e
4 4
5 5 # Цвета для вывода
6 - ANSI_RED := $(shell tput -Txterm setaf 1)
7 - ANSI_GREEN := $(shell tput -Txterm setaf 2)
8 - ANSI_YELLOW := $(shell tput -Txterm setaf 3)
9 - ANSI_RESET := $(shell tput -Txterm sgr0)
6 + ANSI_RED := $(tput -Txterm setaf 1)
7 + ANSI_GREEN := $(tput -Txterm setaf 2)
8 + ANSI_YELLOW := $(tput -Txterm setaf 3)
9 + ANSI_RESET := $(tput -Txterm sgr0)
10 10
11 11 # ==================== ФУНКЦИИ ====================
12 12

KarelWintersky revised this gist 4 months ago · 595ce4d

1 file changed, 4 insertions, 4 deletions

install.sh
@@ -3,10 +3,10 @@
3 3 set -e
4 4
5 5 # Цвета для вывода
6 - ANSI_RED='\033[0;31m'
7 - ANSI_GREEN='\033[0;32m'
8 - ANSI_YELLOW='\033[1;33m'
9 - ANSI_RESET='\033[0m'
6 + ANSI_RED := $(shell tput -Txterm setaf 1)
7 + ANSI_GREEN := $(shell tput -Txterm setaf 2)
8 + ANSI_YELLOW := $(shell tput -Txterm setaf 3)
9 + ANSI_RESET := $(shell tput -Txterm sgr0)
10 10
11 11 # ==================== ФУНКЦИИ ====================
12 12

KarelWintersky revised this gist 4 months ago · c3a9ae4

1 file changed, 3 insertions, 3 deletions

install.sh
@@ -365,7 +365,7 @@ EOF
365 365 install_midnight_commanger() {
366 366 apt-get -y install mc
367 367
368 - write_config_file "/root/.config/mc/ini" false <<< 'EOF'
368 + write_config_file "/root/.config/mc/ini" false << 'EOF'
369 369 [Midnight-Commander]
370 370 verbose=true
371 371 shell_patterns=true
@@ -517,7 +517,7 @@ Modified git files=git ls-files --modified
517 517
518 518 EOF
519 519
520 - write_config_file "/root/.config/mc/panels.ini" false <<< 'EOF'
520 + write_config_file "/root/.config/mc/panels.ini" false << 'EOF'
521 521 [New Left Panel]
522 522 display=listing
523 523 reverse=false
@@ -556,7 +556,7 @@ list_format=user
556 556 current_is_left=false
557 557 other_dir=/root
558 558 EOF
559 -
559 +
560 560
561 561
562 562

KarelWintersky revised this gist 4 months ago · 59712ed

1 file changed, 520 insertions, 92 deletions

install.sh

Diff is too large to be shown

KarelWintersky revised this gist 4 months ago · 02513de

1 file changed, 171 insertions

install.sh (file created)
@@ -0,0 +1,171 @@
1 + #!/bin/bash
2 +
3 + set -e
4 +
5 + # Цвета для вывода
6 + ANSI_RED='\033[0;31m'
7 + ANSI_GREEN='\033[0;32m'
8 + ANSI_YELLOW='\033[1;33m'
9 + ANSI_RESET='\033[0m'
10 +
11 + # Проверка, что скрипт запущен от root
12 + if [ "$EUID" -ne 0 ]; then
13 + echo -e "${ANSI_RED}Ошибка: скрипт должен запускаться от root${ANSI_RESET}"
14 + exit 1
15 + fi
16 +
17 + echo -e "${ANSI_GREEN}=== Настройка системы ===${ANSI_RESET}"
18 +
19 + # Запрос имени хоста
20 + echo -e "${ANSI_YELLOW}Введите новое имя хоста:${ANSI_RESET}"
21 + read -p "Hostname: " NEW_HOSTNAME
22 + if [ -z "$NEW_HOSTNAME" ]; then
23 + echo -e "${ANSI_RED}Имя хоста не может быть пустым.${ANSI_RESET}"
24 + exit 1
25 + fi
26 +
27 + # Запрос имени пользователя
28 + echo -e "${ANSI_YELLOW}Введите имя нового пользователя:${ANSI_RESET}"
29 + read -p "Username: " NEW_USER
30 + if [ -z "$NEW_USER" ]; then
31 + echo -e "${ANSI_RED}Имя пользователя не может быть пустым.${ANSI_RESET}"
32 + exit 1
33 + fi
34 +
35 + # Запрос пароля для нового пользователя
36 + echo -e "${ANSI_YELLOW}Введите пароль для пользователя $NEW_USER:${ANSI_RESET}"
37 + read -s -p "Password: " USER_PASS
38 + echo
39 + if [ -z "$USER_PASS" ]; then
40 + echo -e "${ANSI_RED}Пароль не может быть пустым.${ANSI_RESET}"
41 + exit 1
42 + fi
43 +
44 + echo -e "\n${ANSI_GREEN}=== Установка имени хоста: $NEW_HOSTNAME ===${ANSI_RESET}"
45 + hostnamectl set-hostname "$NEW_HOSTNAME"
46 + # Обновление /etc/hosts
47 + sed -i "s/^127.0.1.1.*/127.0.1.1\t$NEW_HOSTNAME/" /etc/hosts
48 + echo -e "${ANSI_GREEN}Имя хоста установлено.${ANSI_RESET}"
49 +
50 + # Функция добавления репозитория MEPHI
51 + add_mephi_repository() {
52 + # Определение версии Debian
53 + . /etc/os-release 2>/dev/null || { echo "Failed to determine release"; exit 1; }
54 + [ -z "$VERSION_CODENAME" ] && echo "VERSION_CODENAME not found" && exit 1
55 +
56 + local conf_file="/etc/apt/sources.list.d/debian_mephi.list"
57 +
58 + if grep -qs "mirror.mephi.ru.*$VERSION_CODENAME" "$conf_file" 2>/dev/null; then
59 + echo -e "Repository for $VERSION_CODENAME already exists in $conf_file"
60 + else
61 + echo -e "Adding repository for Debian $VERSION_CODENAME"
62 + cat >> "$conf_file" << EOF
63 +
64 + # Added $(date '+%Y-%m-%d')
65 + deb http://mirror.mephi.ru/debian/ $VERSION_CODENAME main non-free-firmware
66 + deb-src http://mirror.mephi.ru/debian/ $VERSION_CODENAME main non-free-firmware
67 + EOF
68 + echo "Repository added, updating package list..."
69 + apt update
70 + fi
71 + }
72 +
73 + # Добавляем репозиторий MEPHI
74 + add_mephi_repository
75 +
76 + # Обновление и апгрейд
77 + apt -y upgrade
78 +
79 + # Установка пакетов (включая sudo)
80 + PACKAGES=(
81 + pv nano curl wget sudo lsb-release iptables
82 + unzip pigz zstd
83 + ncdu gdu
84 + screen tmux lynx
85 + htop btop iftop mtr ioping
86 + git jq yq pwgen
87 + bind9-dnsutils net-tools ssh-audit
88 + cloud-guest-utils qemu-guest-agent
89 + console-setup
90 + )
91 +
92 + echo -e "${ANSI_GREEN}Installing packages...${ANSI_RESET}"
93 + apt-get update
94 + apt-get install -y "${PACKAGES[@]}"
95 +
96 + # Настройка SSH
97 + echo -e "${ANSI_GREEN}Allowing SSH root login${ANSI_RESET}"
98 + sed -i 's/^.*PermitRootLogin.*$/PermitRootLogin yes/' /etc/ssh/sshd_config
99 + systemctl restart sshd
100 + echo -e "${ANSI_GREEN}Ok.${ANSI_RESET}"
101 +
102 + # Midnight Commander
103 + apt-get -y install mc
104 +
105 + # Настройка таймзоны и локали
106 + echo "tzdata tzdata/Areas select Europe" | debconf-set-selections
107 + echo "tzdata tzdata/Zones/Europe select Moscow" | debconf-set-selections
108 + DEBIAN_FRONTEND=noninteractive dpkg-reconfigure tzdata
109 +
110 + cat > /etc/locale.gen << EOF
111 + ru_RU.UTF-8 UTF-8
112 + en_US.UTF-8 UTF-8
113 + EOF
114 +
115 + locale-gen
116 + update-locale LANG=en_US.UTF-8
117 + locale -a | grep -E "en_US|ru_RU"
118 + source /etc/default/locale
119 +
120 + dpkg-reconfigure console-setup
121 + dpkg-reconfigure keyboard-configuration
122 +
123 + # Настройка journald
124 + mkdir -p /etc/systemd/journald.conf.d
125 + cat > /etc/systemd/journald.conf.d/size.conf << EOF
126 + [Journal]
127 + SystemMaxUse=1G
128 + SystemMaxFileSize=50M
129 + MaxLevelStore=warning
130 + EOF
131 +
132 + systemctl restart systemd-journald
133 +
134 + # Создание пользователя
135 + useradd -m "$NEW_USER" && echo "$NEW_USER:$USER_PASS" | chpasswd && passwd -e "$NEW_USER"
136 + usermod -aG sudo "$NEW_USER"
137 +
138 + # Настройка .Xauthority
139 + touch "/home/$NEW_USER/.Xauthority"
140 + chown "$NEW_USER:$NEW_USER" "/home/$NEW_USER/.Xauthority"
141 +
142 + echo -e "${ANSI_GREEN}Пользователь $NEW_USER с паролем '${ANSI_YELLOW}$USER_PASS${ANSI_GREEN}' создан${ANSI_RESET}"
143 +
144 + # Настройка истории для пользователя
145 + cat >> "/home/$NEW_USER/.bashrc" << 'EOF'
146 + export HISTSIZE=10000
147 + export HISTFILESIZE=50000
148 + export HISTTIMEFORMAT="%F %T "
149 + export HISTCONTROL=ignoredups:ignorespace
150 + shopt -s histappend
151 + export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
152 + EOF
153 +
154 + chown "$NEW_USER:$NEW_USER" "/home/$NEW_USER/.bashrc"
155 +
156 + # Удаление документации git
157 + rm -rf /usr/share/doc/git/RelNotes
158 +
159 + # Настройка истории для root
160 + cat >> /root/.bashrc << 'EOF'
161 + export HISTSIZE=10000
162 + export HISTFILESIZE=50000
163 + export HISTTIMEFORMAT="%F %T "
164 + export HISTCONTROL=ignoredups:ignorespace
165 + shopt -s histappend
166 + export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
167 + EOF
168 +
169 + source /root/.bashrc
170 +
171 + echo -e "${ANSI_GREEN}=== Настройка завершена успешно ===${ANSI_RESET}"