15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

Використовуй код:

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%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

Використовуй код:

Skills
Почати