init commit
This commit is contained in:
commit
e208544c61
104
users_add.sh
Executable file
104
users_add.sh
Executable 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 "=== Готово ==="
|
||||
Loading…
Reference in a new issue