Загрузка данных
#!/usr/bin/env bash
set -Eeuo pipefail
OLD_USER="y0xan"
NEW_USER="kyouma"
NEW_HOSTNAME="Kyouma-Laptop"
STAMP="$(date +%Y%m%d-%H%M%S)"
LOG="/tmp/reset-for-kyouma-$STAMP.log"
exec > >(tee -a "$LOG") 2>&1
echo "=== RESET FOR KYOUMA ==="
echo "Time: $(date)"
echo "Current user: $(id -un)"
echo "Log: $LOG"
echo
if [ "$(id -u)" -eq 0 ]; then
echo "ОШИБКА: не запускай этот скрипт через sudo напрямую."
echo "Запусти так: ./reset_for_kyouma.sh"
exit 1
fi
if [ "$(id -un)" != "$NEW_USER" ]; then
echo "ОШИБКА: сейчас ты не под пользователем $NEW_USER."
echo "Сначала выйди из y0xan, зайди как $NEW_USER, потом запусти скрипт."
exit 1
fi
if ! id "$OLD_USER" >/dev/null 2>&1; then
echo "Пользователь $OLD_USER уже не существует. Продолжаю очистку системы."
OLD_UID=""
else
OLD_UID="$(id -u "$OLD_USER")"
OLD_GID="$(id -g "$OLD_USER")"
echo "Будет удалён пользователь:"
echo " user: $OLD_USER"
echo " uid: $OLD_UID"
echo " home: /home/$OLD_USER"
fi
echo
echo "ВНИМАНИЕ: это удалит учётку $OLD_USER и /home/$OLD_USER."
echo "Для подтверждения введи точно:"
echo "DELETE-y0xan"
read -r CONFIRM
if [ "$CONFIRM" != "DELETE-y0xan" ]; then
echo "Отменено."
exit 1
fi
echo
echo "Проверяю sudo..."
sudo -v
echo
echo "1/9 Завершаю процессы $OLD_USER..."
if id "$OLD_USER" >/dev/null 2>&1; then
sudo loginctl terminate-user "$OLD_USER" 2>/dev/null || true
sleep 2
sudo pkill -KILL -u "$OLD_USER" 2>/dev/null || true
fi
echo
echo "2/9 Удаляю пользователя $OLD_USER и его домашнюю папку..."
if id "$OLD_USER" >/dev/null 2>&1; then
sudo deluser --remove-home "$OLD_USER" || sudo userdel -r "$OLD_USER" || true
fi
sudo rm -rf "/home/$OLD_USER"
sudo rm -f "/var/spool/cron/crontabs/$OLD_USER"
sudo rm -f "/var/mail/$OLD_USER" "/var/spool/mail/$OLD_USER"
sudo loginctl disable-linger "$OLD_USER" 2>/dev/null || true
if getent group "$OLD_USER" >/dev/null 2>&1; then
sudo delgroup "$OLD_USER" 2>/dev/null || true
fi
echo
echo "3/9 Удаляю остатки файлов старого UID на системном разделе..."
if [ -n "${OLD_UID:-}" ]; then
sudo find / -xdev \
\( -path /proc -o -path /sys -o -path /dev -o -path /run -o -path /media -o -path /mnt -o -path /home/"$NEW_USER" \) -prune -o \
-uid "$OLD_UID" -print -exec rm -rf {} + 2>/dev/null || true
fi
echo
echo "4/9 Отключаю сторонние apt-репозитории..."
sudo mkdir -p "/root/disabled-apt-sources-$STAMP"
if [ -d /etc/apt/sources.list.d ]; then
sudo find /etc/apt/sources.list.d -maxdepth 1 -type f \
\( -name '*.list' -o -name '*.sources' \) \
-exec mv {} "/root/disabled-apt-sources-$STAMP/" \; 2>/dev/null || true
fi
echo
echo "5/9 Чищу apt-кеш и временные файлы..."
sudo apt clean || true
sudo apt autoclean || true
sudo rm -rf /tmp/* /var/tmp/* 2>/dev/null || true
echo
echo "6/9 Чищу системные логи..."
sudo journalctl --rotate 2>/dev/null || true
sudo journalctl --vacuum-time=1s 2>/dev/null || true
sudo find /var/log -type f -exec truncate -s 0 {} \; 2>/dev/null || true
echo
echo "7/9 Удаляю сохранённые Wi-Fi и Bluetooth-пары..."
sudo find /etc/NetworkManager/system-connections -mindepth 1 -maxdepth 1 -exec rm -f {} \; 2>/dev/null || true
sudo rm -rf /var/lib/bluetooth/* 2>/dev/null || true
echo
echo "8/9 Настраиваю имя ноутбука и machine-id..."
sudo hostnamectl set-hostname "$NEW_HOSTNAME" 2>/dev/null || true
sudo rm -f /var/lib/dbus/machine-id 2>/dev/null || true
sudo truncate -s 0 /etc/machine-id 2>/dev/null || true
sudo systemd-machine-id-setup 2>/dev/null || true
if command -v ssh-keygen >/dev/null 2>&1; then
sudo rm -f /etc/ssh/ssh_host_* 2>/dev/null || true
sudo ssh-keygen -A 2>/dev/null || true
fi
echo
echo "9/9 Очищаю историю shell и делаю TRIM SSD..."
sudo rm -f /root/.bash_history /root/.zsh_history /root/.lesshst 2>/dev/null || true
rm -f "$HOME/.bash_history" "$HOME/.zsh_history" "$HOME/.lesshst" 2>/dev/null || true
sudo fstrim -av 2>/dev/null || true
echo
echo "Проверка пользователей:"
getent passwd "$OLD_USER" || echo "$OLD_USER удалён"
getent passwd "$NEW_USER" || true
echo
echo "ГОТОВО."
echo "Лог был тут:"
echo "$LOG"
echo
echo "Сейчас ноут можно перезагрузить:"
echo "sudo reboot"