Как изменить пользователя в Linux?
В Linux фраза “сменить пользователя” может описывать несколько различных действий — некоторые временные и основанные на сессии, другие постоянные и системные. Поскольку Linux является многопользовательской операционной системой по своему замыслу, она предоставляет несколько способов переключения идентичностей и прав в зависимости от того, что вы пытаетесь достичь: администрирование сервера, запуск приложения с ограниченными правами, исправление проблем с доступом к файлам или реорганизация учетных записей пользователей.
Смена “пользователя” в Linux может означать несколько различных вещей в зависимости от контекста:
- Переключение на другую учетную запись в оболочке (например, с john на root)
Это используется, когда вам нужна интерактивная сессия терминала от имени другого пользователя — часто для администрирования системы или для тестирования того, как что-то ведет себя в другой учетной среде. - Запуск одной команды от имени другого пользователя
Идеально, когда вам нужны повышенные привилегии или другая идентичность для одной задачи (например, перезапуск службы или выполнение команды базы данных) без полной смены вашей сессии.
- Переключение на другую учетную запись в оболочке (например, с john на root)
- Смена пользователя по умолчанию для службы/процесса
Службы (веб-серверы, базы данных, приложения) обычно должны работать под выделенными, не root-пользователями для безопасности. Смена пользователя службы влияет на то, как работает процесс и к чему он может получить доступ. - Смена владельца файлов и директорий
Владение файлами контролирует доступ. Если права неверны — что часто бывает после миграций, восстановлений или развертываний — вы “меняете пользователя”, переназначая владение, чтобы правильная учетная запись могла читать/записывать файлы. - Смена атрибутов идентичности пользователя (имя пользователя, UID, группы)
Это управление учетной записью: переименование пользователя, изменение его UID или корректировка членства в группах (например, предоставление доступа sudo). Эти изменения могут повлиять на вход в систему, права и доступ к службам.
Этот гид охватывает все эти сценарии, показывая, когда использовать каждый подход, как сделать это безопасно и каких ошибок следует избегать — чтобы вы могли уверенно менять пользователей, не нарушая права, службы или доступ.
Переключение на другого пользователя (интерактивная оболочка)
su (сменить пользователя)
– (или -l) загружает полную среду входа целевого пользователя: домашний каталог, PATH, профиль оболочки.
Без -, вы сохраняете большую часть вашей текущей среды (это может быть запутанным).
Переключиться на root:
Примечание по безопасности: На многих дистрибутивах su требует пароль целевого пользователя (например, пароль root), который часто отключен.
sudo -i (предпочтительно для оболочек root/admin)
Предоставляет вам оболочку входа root (аналогично su -), используя ваши права sudo вместо пароля root.
Переключиться на другого пользователя с оболочкой входа:
Запуск одной команды от имени другого пользователя (неинтерактивно)
sudo -u
Запуск с чистой средой, похожей на вход:
Запуск команды от имени root
Смена “эффективного пользователя” работающего процесса (расширенная реальность)
Linux не позволяет вам “сменить пользователя” уже работающего процесса на месте в большинстве практических сценариев. Вместо этого вы обычно:
перезапускаете процесс под правильным пользователем
или используете менеджеры служб (systemd) для определения пользователя
Чтобы проверить, какой пользователь запускает процесс:
Или:
Смена пользователя, от имени которого работает служба (systemd)
Большинство производственных Linux использует systemd. Службы должны работать под выделенными, непривилегированными пользователями.
Проверьте конфигурацию службы:
Ищите:
User=Group=
Пример переопределения (безопасный метод):
Добавьте:
Примените:
Проверьте:
Смена владельца файла (смена “пользователя” для файлов)
chown (смена владельца)
Сменить владельца:
Сменить владельца и группу:
Рекурсивно (будьте осторожны):
Сохранить символьные ссылки (избегать изменения целевых ссылок):
Расширенный совет: Для больших деревьев сначала просмотрите:
Смена вашей текущей идентичности оболочки против изменения самой учетной записи
Подтвердите, кто вы
Подтвердите, кто вошел в систему
Посмотрите, какой пользователь запустил текущую оболочку через sudo
Смена имени пользователя, UID, групп (модификация учетной записи)
Переименовать пользователя (имя пользователя)
Также переместите/переименуйте домашний каталог:
Также обновите имя группы (по желанию):
Смена UID (расширенная; влияет на владение файлами)
После изменения UID исправьте владение файлами:
Добавить пользователя в группу (например, sudo)
Проверьте:
Быстрый “шпаргалка”
Сменить пользователя:
Запустить команду от имени другого пользователя:
Запустить оболочку root:
Сменить владельца файла:
Сменить данные учетной записи:
