15%

Спестете 15% от всички услуги за хостинг

Тествайте уменията си и получете отстъпка за всеки хостинг план

Използвайте код:

Skills
За начало
02.01.2026

Как да променя потребител в Linux?

В Linux фразата “смяна на потребител” може да опише няколко различни действия – някои временно и базирани на сесия, други постоянни и системни. Понеже Linux е многопотребителска операционна система по дизайн, тя предоставя множество начини за смяна на идентичности и права в зависимост от това, което се опитвате да постигнете: администриране на сървър, стартиране на приложение с ограничени права, решаване на проблеми с достъпа до файлове или преструктуриране на потребителски акаунти.

Смяната на “потребител” в Linux може да означава няколко различни неща в зависимост от контекста:

    • Смяна на друг акаунт в shell (например, от john на root)
      Това се използва, когато имате нужда от интерактивна терминална сесия като друг потребител – често за системно администриране или за тестване как нещо се държи в различна среда на акаунта.
    • Стартиране на една команда като друг потребител
      Идеално, когато имате нужда от повишени права или различна идентичност за една задача (като рестартиране на услуга или изпълнение на команда за база данни) без да сменяте напълно сесията си.
  • Смяна на потребителя по подразбиране за услуга/процес
    Услугите (уеб сървъри, бази данни, приложения) обикновено трябва да работят под специализирани, не-root потребители за сигурност. Смяната на потребителя на услугата влияе на начина, по който процесът работи и какво може да достъпи.
  • Смяна на собствеността на файлове и директории
    Собствеността на файловете контролира достъпа. Ако правата са неправилни – често след миграции, възстановявания или внедрявания – вие “сменяте потребителя”, като преназначавате собствеността, така че правилният акаунт да може да чете/пише файлове.
  • Смяна на атрибутите на идентичността на потребителя (потребителско име, UID, групи)
    Това е управление на акаунти: преименуване на потребител, смяна на UID или коригиране на членството в групи (като предоставяне на sudo достъп). Тези промени могат да повлияят на влизанията, правата и достъпа до услуги.

Този наръчник обхваща всички тези сценарии, показвайки кога да използвате всеки подход, как да го направите безопасно и кои грешки да избягвате – така че да можете да сменяте потребители уверено, без да нарушавате правата, услугите или достъпа.

Смяна на друг потребител (интерактивен shell)

su (смяна на потребител)

su - username
  • – (или -l) зарежда пълната среда за вход на целевия потребител: домашна директория, PATH, shell профил.

  • Без -, запазвате голяма част от текущата си среда (може да бъде объркващо).

Смяна на root:

su -

Бележка за сигурност: В много дистрибуции, su изисква паролата на целевия потребител (например, паролата на root), която често е деактивирана.

sudo -i (предпочитано за root/admin shell)

sudo -i

Предоставя ви shell за вход на root (подобно на su -), използвайки вашите sudo права вместо паролата на root.

Смяна на друг потребител с shell за вход:

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

Запазване на symlinks (избягвайте смяна на целите на линковете):

sudo chown -h username:group symlink

Разширен съвет: За големи дървета, прегледайте първо:

find /path -maxdepth 2 -printf '%u:%g %pn' | head

Смяна на текущата си идентичност в shell спрямо смяна на самия акаунт

Потвърдете кой сте

whoami
id

Потвърдете кой е влязъл

who
w

Вижте кой потребител е стартирал текущия shell чрез 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 shell:

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
За начало