15%

Сэкономьте 15% на всех услугах хостинга

Проверьте свои навыки и получите скидку на любой хостинг-план

Используйте код:

Skills
Начать
02.01.2026

Как изменить пользователя в Linux?

В Linux фраза “сменить пользователя” может описывать несколько различных действий — некоторые временные и основанные на сессии, другие постоянные и системные. Поскольку Linux является многопользовательской операционной системой по своему замыслу, она предоставляет несколько способов переключения идентичностей и прав в зависимости от того, что вы пытаетесь достичь: администрирование сервера, запуск приложения с ограниченными правами, исправление проблем с доступом к файлам или реорганизация учетных записей пользователей.

Смена “пользователя” в Linux может означать несколько различных вещей в зависимости от контекста:

    • Переключение на другую учетную запись в оболочке (например, с john на root)
      Это используется, когда вам нужна интерактивная сессия терминала от имени другого пользователя — часто для администрирования системы или для тестирования того, как что-то ведет себя в другой учетной среде.
    • Запуск одной команды от имени другого пользователя
      Идеально, когда вам нужны повышенные привилегии или другая идентичность для одной задачи (например, перезапуск службы или выполнение команды базы данных) без полной смены вашей сессии.
  • Смена пользователя по умолчанию для службы/процесса
    Службы (веб-серверы, базы данных, приложения) обычно должны работать под выделенными, не root-пользователями для безопасности. Смена пользователя службы влияет на то, как работает процесс и к чему он может получить доступ.
  • Смена владельца файлов и директорий
    Владение файлами контролирует доступ. Если права неверны — что часто бывает после миграций, восстановлений или развертываний — вы “меняете пользователя”, переназначая владение, чтобы правильная учетная запись могла читать/записывать файлы.
  • Смена атрибутов идентичности пользователя (имя пользователя, UID, группы)
    Это управление учетной записью: переименование пользователя, изменение его UID или корректировка членства в группах (например, предоставление доступа sudo). Эти изменения могут повлиять на вход в систему, права и доступ к службам.

Этот гид охватывает все эти сценарии, показывая, когда использовать каждый подход, как сделать это безопасно и каких ошибок следует избегать — чтобы вы могли уверенно менять пользователей, не нарушая права, службы или доступ.

Переключение на другого пользователя (интерактивная оболочка)

su (сменить пользователя)

su - username
  • – (или -l) загружает полную среду входа целевого пользователя: домашний каталог, PATH, профиль оболочки.

  • Без -, вы сохраняете большую часть вашей текущей среды (это может быть запутанным).

Переключиться на root:

su -

Примечание по безопасности: На многих дистрибутивах su требует пароль целевого пользователя (например, пароль root), который часто отключен.

sudo -i (предпочтительно для оболочек root/admin)

sudo -i

Предоставляет вам оболочку входа root (аналогично su -), используя ваши права sudo вместо пароля root.

Переключиться на другого пользователя с оболочкой входа:

sudo -iu username

Запуск одной команды от имени другого пользователя (неинтерактивно)

sudo -u

sudo -u username whoami
sudo -u postgres psql

Запуск с чистой средой, похожей на вход:

sudo -iu username

Запуск команды от имени root

sudo systemctl restart nginx

Смена “эффективного пользователя” работающего процесса (расширенная реальность)

Linux не позволяет вам “сменить пользователя” уже работающего процесса на месте в большинстве практических сценариев. Вместо этого вы обычно:

  • перезапускаете процесс под правильным пользователем

  • или используете менеджеры служб (systemd) для определения пользователя

Чтобы проверить, какой пользователь запускает процесс:

ps -eo user,pid,cmd | grep nginx

Или:

ps -p <PID> -o user,group,cmd

Смена пользователя, от имени которого работает служба (systemd)

Большинство производственных Linux использует systemd. Службы должны работать под выделенными, непривилегированными пользователями.

Проверьте конфигурацию службы:

systemctl cat myservice.service

Ищите:

  • User=

  • Group=

Пример переопределения (безопасный метод):

sudo systemctl edit myservice.service

Добавьте:

[Service]
User=myuser
Group=mygroup

Примените:

sudo systemctl daemon-reload
sudo systemctl restart myservice.service

Проверьте:

systemctl status myservice.service
ps -eo user,pid,cmd | grep myservice

Смена владельца файла (смена “пользователя” для файлов)

chown (смена владельца)

Сменить владельца:

sudo chown username file.txt

Сменить владельца и группу:

sudo chown username:groupname file.txt

Рекурсивно (будьте осторожны):

sudo chown -R username:groupname /var/www/site

Сохранить символьные ссылки (избегать изменения целевых ссылок):

sudo chown -h username:group symlink

Расширенный совет: Для больших деревьев сначала просмотрите:

find /path -maxdepth 2 -printf '%u:%g %pn' | head

Смена вашей текущей идентичности оболочки против изменения самой учетной записи

Подтвердите, кто вы

whoami
id

Подтвердите, кто вошел в систему

who
w

Посмотрите, какой пользователь запустил текущую оболочку через sudo

echo $USER
echo $SUDO_USER

Смена имени пользователя, UID, групп (модификация учетной записи)

Переименовать пользователя (имя пользователя)

sudo usermod -l newname oldname

Также переместите/переименуйте домашний каталог:

sudo usermod -d /home/newname -m newname

Также обновите имя группы (по желанию):

sudo groupmod -n newname oldname

Смена UID (расширенная; влияет на владение файлами)

sudo usermod -u 2001 username

После изменения UID исправьте владение файлами:

sudo find / -user oldUID -exec chown -h username {} ;

Добавить пользователя в группу (например, sudo)

sudo usermod -aG sudo username # Debian/Ubuntu
sudo usermod -aG wheel username # RHEL/Alma/Rocky

Проверьте:

id username

Быстрый “шпаргалка”

Сменить пользователя:

su - user
sudo -iu user

Запустить команду от имени другого пользователя:

sudo -u user command

Запустить оболочку root:

sudo -i

Сменить владельца файла:

sudo chown -R user:group /path

Сменить данные учетной записи:

sudo usermod -l new old
sudo usermod -d /home/new -m new
sudo usermod -aG
sudo user
15%

Сэкономьте 15% на всех услугах хостинга

Проверьте свои навыки и получите скидку на любой хостинг-план

Используйте код:

Skills
Начать