Загрузка данных


#!/bin/bash
# ============================================================
# Практическая работа 12. Работа с профилями пользователей
# Скопируйте весь блок и вставьте в терминал (Enter)
# ============================================================

# =================== ЗАДАНИЕ 1 ==============================
echo "=== Задание 1. Создание /etc/skel/tmp_files ==="
# 1. Создаём директорию tmp_files в скелетном каталоге
sudo mkdir -p /etc/skel/tmp_files

# 2. Создаём тестового пользователя, чтобы проверить копирование скелета
echo "Создаём тестового пользователя testuser..."
sudo useradd -m testuser
echo "Задаём пароль (password) для тестового пользователя"
echo 'testuser:password' | sudo chpasswd

# Проверяем, что папка tmp_files появилась в домашнем каталоге
echo "Проверка наличия /home/testuser/tmp_files:"
sudo -u testuser ls -ld /home/testuser/tmp_files

# Создаём файл от имени testuser
echo "Создаём файл в tmp_files от имени testuser"
sudo -u testuser touch /home/testuser/tmp_files/file1

# 3. Добавляем команду очистки содержимого tmp_files в .bash_logout
echo "Добавляем очистку tmp_files в .bash_logout"
echo 'rm -rf ~/tmp_files/*' | sudo tee -a /home/testuser/.bash_logout

# Демонстрируем работу .bash_logout:
# Запускаем оболочку testuser, создаём ещё один файл и сразу выходим.
# При выходе сработает .bash_logout, и файлы исчезнут.
echo "Демонстрация: создаём файл и выходим из оболочки testuser"
sudo -u testuser bash -c 'echo "data" > ~/tmp_files/file2; ls ~/tmp_files; echo "Выход..."'
echo "Проверяем содержимое tmp_files после выхода:"
sudo -u testuser ls /home/testuser/tmp_files
echo "Ожидается: папка пуста (нет файлов)."
echo ""

# =================== ЗАДАНИЕ 2 ==============================
echo "=== Задание 2. Добавление my_programm в PATH ==="
# 1. Создаём директорию my_programm в домашней папке пользователя testuser
sudo -u testuser mkdir -p /home/testuser/my_programm

# 2. Добавляем путь к ней в переменную PATH (через .profile)
echo 'export PATH="$HOME/my_programm:$PATH"' | sudo tee -a /home/testuser/.profile
echo "Путь $HOME/my_programm добавлен в PATH в .profile"

# Проверяем, что после логина переменная содержит нужный каталог
echo "Проверка PATH после логина testuser:"
sudo -u testuser bash -l -c 'echo "PATH=$PATH"'
echo "Убедитесь, что в выводе есть /home/testuser/my_programm."
echo ""

# =================== ЗАДАНИЕ 3 ==============================
echo "=== Задание 3. HISTTIMEFORMAT и псевдоним rm ==="
# 1. Устанавливаем HISTTIMEFORMAT глобально (для всех пользователей)
echo "Добавляем HISTTIMEFORMAT в /etc/bash.bashrc (глобальный bashrc)"
echo 'export HISTTIMEFORMAT="%H:%M:%S %d-%m-%Y"' | sudo tee -a /etc/bash.bashrc

echo ""
echo "Теперь для проверки нужно вручную войти под testuser:"
echo "    sudo su - testuser   (пароль: password)"
echo "  Введите несколько любых команд (например: ls, pwd, whoami),"
echo "  затем выполните 'history' – каждая строка будет с датой и временем."
echo ""

# 2. Создаём файл .bash_aliases с псевдонимом rm (запрашивать подтверждение)
echo "Создаём .bash_aliases для пользователя testuser"
echo "alias rm='rm -i'" | sudo -u testuser tee /home/testuser/.bash_aliases

# Добавляем загрузку .bash_aliases в .bashrc (если ещё нет)
echo 'if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases; fi' | sudo tee -a /home/testuser/.bashrc

echo "Проверка псевдонима rm:"
# Интерактивный bash, чтобы алиас применился, и rm запросил подтверждение
sudo -u testuser bash -i -c 'touch /tmp/testremove; rm /tmp/testremove'
echo "Вы должны были увидеть запрос 'rm: remove regular empty file /tmp/testremove?'"
echo "Введите 'y' для удаления или 'n' для отмены."
echo ""
echo "=== Все задания выполнены ==="