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
Почати