init commit

This commit is contained in:
user 2026-11-06 09:47:22 +05:00
commit e208544c61

104
users_add.sh Executable file
View file

@ -0,0 +1,104 @@
#!/bin/bash
# Скрипт управления пользователями redOS
# Запускать от имени root: sudo ./user_manage.sh
DISK_DIR="/mnt/disk"
SRC_USER="user"
PYCHARM_DIR="pycharm-community-2024.1.1"
# --- 1. Показать всех пользователей системы ---
echo "=== Список пользователей системы (UID >= 1000) ==="
awk -F: '$3 >= 1000 && $3 < 65534 {print $1 " (UID: " $3 ", Home: " $6 ")"}' /etc/passwd
echo ""
# --- 2. Запрос имени пользователя для удаления ---
read -p "Введите имя пользователя для удаления (или оставьте пустым для пропуска): " DEL_USER
if [ -n "$DEL_USER" ]; then
if id "$DEL_USER" &>/dev/null; then
echo "Удаление пользователя $DEL_USER и его домашней директории..."
userdel -r "$DEL_USER"
if [ -d "$DISK_DIR/$DEL_USER" ]; then
echo "Удаление папки $DISK_DIR/$DEL_USER..."
rm -rf "$DISK_DIR/$DEL_USER"
fi
echo "Пользователь $DEL_USER и связанные данные удалены."
else
echo "Ошибка: Пользователь $DEL_USER не найден."
fi
else
echo "Удаление пропущено."
fi
echo ""
# --- 3. Создание нового пользователя ---
read -p "Введите имя нового пользователя (или оставьте пустым для пропуска): " NEW_USER
if [ -n "$NEW_USER" ]; then
if id "$NEW_USER" &>/dev/null; then
echo "Ошибка: Пользователь $NEW_USER уже существует."
else
echo "Создание пользователя $NEW_USER..."
useradd -m "$NEW_USER"
echo "Установите пароль для $NEW_USER:"
passwd "$NEW_USER"
# --- Копирование рабочего стола (включая ярлыки .desktop) ---
if [ -d "/home/$SRC_USER/Desktop" ]; then
echo "Копирование рабочего стола от $SRC_USER..."
mkdir -p "/home/$NEW_USER/Desktop"
cp -a "/home/$SRC_USER/Desktop/." "/home/$NEW_USER/Desktop/"
chown -R "$NEW_USER:$NEW_USER" "/home/$NEW_USER/Desktop"
# Заменяем пути старого пользователя на нового в ярлыках
find "/home/$NEW_USER/Desktop" -name "*.desktop" -type f -exec \
sed -i "s|/home/$SRC_USER/|/home/$NEW_USER/|g" {} \;
# Обновляем кэш .desktop-файлов (если доступно)
sudo -u "$NEW_USER" update-desktop-database "/home/$NEW_USER/Desktop" 2>/dev/null
else
echo "Предупреждение: /home/$SRC_USER/Desktop не найден."
fi
# --- Копирование папки PyCharm (с подтверждением) ---
if [ -d "/home/$SRC_USER/$PYCHARM_DIR" ]; then
read -p "Копировать директорию $PYCHARM_DIR для $NEW_USER? [y/N]: " COPY_PYCHARM
case "$COPY_PYCHARM" in
[yY]|[yY][eE][sS])
echo "Копирование $PYCHARM_DIR..."
cp -a "/home/$SRC_USER/$PYCHARM_DIR" "/home/$NEW_USER/"
chown -R "$NEW_USER:$NEW_USER" "/home/$NEW_USER/$PYCHARM_DIR"
# Заменяем старые пути внутри конфигов PyCharm
grep -rl "/home/$SRC_USER" "/home/$NEW_USER/$PYCHARM_DIR" 2>/dev/null | while read -r f; do
sed -i "s|/home/$SRC_USER|/home/$NEW_USER|g" "$f"
done
echo "Директория $PYCHARM_DIR скопирована."
;;
*)
echo "Копирование $PYCHARM_DIR пропущено."
;;
esac
else
echo "Предупреждение: /home/$SRC_USER/$PYCHARM_DIR не найден."
fi
# --- Создание папки в /mnt/disk ---
if [ ! -d "$DISK_DIR/$NEW_USER" ]; then
echo "Создание папки $DISK_DIR/$NEW_USER..."
mkdir -p "$DISK_DIR/$NEW_USER"
chown "$NEW_USER:$NEW_USER" "$DISK_DIR/$NEW_USER"
else
echo "Папка $DISK_DIR/$NEW_USER уже существует."
fi
echo "Пользователь $NEW_USER успешно создан."
fi
else
echo "Создание пользователя пропущено."
fi
echo ""
echo "=== Готово ==="