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