Як змінити користувача в 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:
Змінити власника файлу:
Змінити деталі облікового запису:
