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)
      Това се използва, когато имате нужда от интерактивна терминална сесия като друг потребител – често за системно администриране или за тестване как нещо се държи в различна среда на акаунта.
    • Стартиране на една команда като друг потребител
      Идеално, когато имате нужда само от повишени привилегии или различна идентичност за една задача (като рестартиране на услуга или изпълнение на команда за база данни) без напълно да сменяте сесията си.
  • Смяна на потребителя по подразбиране за услуга/процес
    Услугите (уеб сървъри, бази данни, приложения) обикновено трябва да работят под специализирани, неправа потребители за сигурност. Смяната на потребителя на услугата влияе на начина, по който процесът работи и какво може да достъпи.
  • Смяна на собствеността на файлове и директории
    Собствеността на файловете контролира достъпа. Ако разрешенията са неправилни – често след миграции, възстановявания или внедрявания – вие “сменяте потребителя”, като преназначавате собствеността, така че правилният акаунт да може да чете/пише файлове.
  • Смяна на атрибутите на идентичността на потребителя (потребителско име, 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
За начало