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
Начать