February 24

Инструкция: Создание пользователя adm с правами root и домашней папкой /root

Да, создать пользователя adm с домашней папкой /root и дать ему права суперпользователя возможно, хотя это нестандартная конфигурация. Вот полная инструкция:

Инструкция: Создание пользователя adm с правами root и домашней папкой /root

Шаг 1: Создание пользователя с указанием домашней директории

Создадим пользователя adm с домашней папкой /root:

bash

sudo useradd -m -d /root -s /bin/bash adm

Объяснение параметров:

  • -m — создать домашнюю директорию, если она не существует
  • -d /root — указать /root как домашнюю директорию
  • -s /bin/bash — установить bash как командную оболочку
  • adm — имя создаваемого пользователя

Шаг 2: Установка пароля для пользователя

bash

sudo passwd adm

Система запросит ввод нового пароля дважды .

Шаг 3: Проверка создания пользователя

Убедимся, что пользователь создан с правильной домашней директорией:

bash

getent passwd adm

Вы должны увидеть строку, где последнее поле (перед командой оболочки) указывает на /root:

text

adm:x:1001:1001::/root:/bin/bash

Шаг 4: Настройка прав на домашнюю директорию /root

Поскольку /root принадлежит пользователю root, нужно дать доступ пользователю adm:

bash

# Добавим пользователя adm в группу root
sudo usermod -aG root adm

# Изменим права доступа к директории /root
sudo chmod 750 /root

# Убедимся, что владелец и группа установлены правильно
sudo chown root:root /root

Важно: Права 750 означают:

  • 7 (rwx) для владельца (root) — полный доступ
  • 5 (r-x) для группы (root) — чтение и выполнение
  • 0 (---) для остальных — нет доступа

Шаг 5: Копирование файлов конфигурации (опционально)

Чтобы у пользователя adm были стандартные файлы конфигурации оболочки:

bash

# Скопируем файлы из /etc/skel в /root
sudo cp -rT /etc/skel /root/

# Изменим владельца скопированных файлов
sudo chown -R adm:adm /root/.bashrc /root/.profile 2>/dev/null

Шаг 6: Предоставление прав суперпользователя (sudo)

Способ А: Через группу sudo (рекомендуется для Ubuntu/Debian)

bash

# Добавляем пользователя в группу sudo
sudo usermod -aG sudo adm

Способ Б: Через группу wheel (для RHEL/CentOS/AlmaLinux)

bash

# Добавляем пользователя в группу wheel
sudo usermod -aG wheel adm

Способ В: Напрямую через sudoers (максимальные права)

bash

# Редактируем файл sudoers через visudo (обязательно!)
sudo visudo -f /etc/sudoers.d/adm

Добавьте строку:

text

adm ALL=(ALL:ALL) ALL

или для доступа без пароля:

text

adm ALL=(ALL:ALL) NOPASSWD: ALL

Шаг 7: Настройка окружения пользователя

Создадим файл .bashrc в /root для пользователя adm (если его нет):

bash

# Создадим базовый .bashrc
cat > /root/.bashrc << 'EOF'
# ~/.bashrc: executed by bash(1) for interactive shells

# If not running interactively, don't do anything
case $- in
    *i*) ;;
    *) return;;
esac

# Set colorful prompt
if [ "$USER" = "root" ]; then
    PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
fi

# Alias definitions
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Enable color support
if [ -x /usr/bin/dircolors ]; then
    eval "$(dircolors -b)"
    alias ls='ls --color=auto'
fi

# Enable bash completion
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi
EOF

# Установим владельца
sudo chown adm:adm /root/.bashrc

Шаг 8: Проверка прав пользователя

Переключитесь на пользователя adm и проверьте его права:

bash

# Переключение на пользователя adm
sudo su - adm

# Проверка текущего пользователя и директории
whoami
pwd
id

# Проверка sudo прав
sudo whoami
# Должно вернуть "root"

# Проверка доступа к системным файлам
sudo ls -la /root
sudo cat /etc/shadow

Шаг 9: Настройка SSH для пользователя adm (опционально)

Если нужно разрешить вход по SSH для пользователя adm:

bash

# Создаем SSH директорию в /root (если её нет)
sudo mkdir -p /root/.ssh
sudo chmod 700 /root/.ssh

# Добавляем публичный ключ (если используется)
sudo nano /root/.ssh/authorized_keys
# Вставьте содержимое публичного ключа

# Устанавливаем правильного владельца
sudo chown -R adm:adm /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys

Полный скрипт для автоматизации

Вот полный скрипт, который выполняет все шаги автоматически:

bash

#!/bin/bash

# Создание пользователя adm с домашней папкой /root
echo "Создание пользователя adm..."
sudo useradd -m -d /root -s /bin/bash adm

# Установка пароля
echo "Установите пароль для пользователя adm:"
sudo passwd adm

# Добавление в группы
echo "Добавление в группы sudo и root..."
sudo usermod -aG sudo,root adm

# Настройка прав на /root
echo "Настройка прав доступа к /root..."
sudo chmod 750 /root
sudo chown root:root /root

# Настройка sudo прав
echo "Предоставление sudo прав..."
echo "adm ALL=(ALL:ALL) ALL" | sudo tee /etc/sudoers.d/adm
sudo chmod 440 /etc/sudoers.d/adm

# Копирование файлов конфигурации
echo "Копирование файлов конфигурации..."
sudo cp -rT /etc/skel/ /root/
sudo chown -R adm:adm /root/.bashrc /root/.profile 2>/dev/null

# Создание .bashrc если его нет
if [ ! -f /root/.bashrc ]; then
    echo "Создание .bashrc..."
    cat > /root/.bashrc << 'INNER_EOF'
# ~/.bashrc for adm user
export PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
INNER_EOF
    sudo chown adm:adm /root/.bashrc
fi

echo "Готово! Пользователь adm создан."
echo "Переключитесь на него: sudo su - adm"
echo "Проверьте права: sudo whoami"

Важные предупреждения

  1. Безопасность: Создание пользователя с домашней папкой /root нестандартно и может создать путаницу. Обычно root и обычные пользователи имеют раздельные домашние директории по соображениям безопасности .
  2. Конфликты: Если несколько пользователей используют /root как домашнюю папку, возможны конфликты с файлами конфигурации.
  3. Альтернатива: Рекомендуется оставить стандартную домашнюю папку /home/adm и просто дать пользователю права sudo:bashsudo adduser adm sudo usermod -aG sudo adm
  4. Проверка: После создания убедитесь, что пользователь имеет все необходимые права, но при этом не создает угроз безопасности системе.