Yandex
Обновяване на предпочитанията за бисквитки

Управление на потребителите в Linux

В съвременните операционни системи можете да създадете няколко акаунта, всеки от които функционира самостоятелно и не влияе на други потребители или стартирани програми. Акаунтите могат да се модифицират, например да се коригират имената, идентификаторите и други параметри. Нека разгледаме управлението на потребителите в Linux, като използваме за пример дистрибуцията Ubuntu.

Къде се съдържа информацията за потребителя

В Linux системите, независимо дали потребителят е добавен ръчно или е създаден по време на инсталирането на софтуера, данните се намират в /etc/passwd.

Файлът има следната структура: потребителско име (login):парола:номер на потребител:номер на потребителска група:допълнителна информация:път до домашната директория:път до обвивката.

Полета в passwd

Потребителско име - този параметър служи за идентификация в системата и се използва при влизане в нея. Дължината на името може да варира от 1 до 32 символа.

Парола - в Linux тя не се съхранява в обикновен текст, което прави системата по-сигурна. Използва се един от специалните символи:
  • x - паролата се съхранява в криптиран вид заедно със „сол“ - случаен набор от символи, който се добавя към хеш сумата на паролата при нейното създаване. Самата криптирана парола се намира във файла /etc/shadow.
  • \ - този символ означава, че потребителят няма право да влезе в системата.
Ако в полето за парола не присъства нито един от тези символи, това означава, че за този потребител няма парола.

Потребителски номер (UID) - на всеки потребител се присвоява уникален идентификатор под формата на положително число.

0 - принадлежи на потребителя root с максимални привилегии.
Номерата от 1 до 499 са запазени за псевдопотребители, които се създават заедно с инсталирането на програми.

За нормалните потребители се използват номера, започващи с 500 или 1000, но за разлика от root, те могат да бъдат променяни.

Номер на потребителската група (GID) - Когато в Linux се създава потребител, автоматично се създава група със същото име и на потребителя се присвоява GID. Групите обединяват потребителите с цел присвояване на права за достъп до системни обекти (файлове или директории). Всеки потребител трябва да принадлежи към поне една група. Подобно на UID, на групите също се присвояват уникални идентификатори.

Допълнителна информация - можете да посочите пълното име, адреса или телефонния номер на потребителския акаунт или да оставите полетата празни.

Пълен път до началната директория - всеки потребител има начална директория, която по подразбиране е /home. Можете да изберете друга директория.

Пълен път до обвивка и забрана - на потребителя може да бъде зададена обвивка, в която да изпълнява команди (по-често bash или shell (sh)). Възможно е също така да се забрани използването на акаунт за влизане в сървъра.

Root, sudo и административни права

В Linux има два основни метода за удостоверяване на потребители: root и не-root потребител. Препоръчително е да се избягва използването на root по подразбиране. Потребителят root може да извършва всякакви действия и дори случайното изтриване на важни данни няма да бъде съпроводено с предупреждение. Трябва да влезете в системата с обикновен акаунт, като повишите правата си до root само когато това е наистина необходимо. В повечето случаи привилегиите root не са необходими за стандартните потребителски задачи, но са необходими за някои административни операции.

В някои дистрибуции, като Ubuntu, root акаунтът е забранен по подразбиране и не е възможно да влезете като root. Когато се инсталира Ubuntu, се създава потребител, който автоматично се добавя към групата Administrators и може да изпълнява команди с привилегии на root с помощта на командата `sudo`, която временно предоставя необходимите привилегии.

Управление на потребители и групи в Linux

Съществува набор от команди, които позволяват на администраторите да създават, изтриват и променят потребителски акаунти, както и да задават разрешения и да ограничават достъпа до системни ресурси.

В Linux потребителският акаунт не винаги съответства на конкретно лице, което работи на даден компютър. Той е обект, създаден в системата Linux за предоставяне на определени права, необходими за изпълнение на задачи. Такива акаунти могат да бъдат свързани както с хора, така и с различни услуги.

Как да добавите потребител в Linux чрез useradd

Процесът на добавяне на нов потребител в Linux може да се раздели на две стъпки: създаване на потребител и задаване на парола за него.

Първата стъпка е да използвате командата `useradd`:
useradd [create options] [login]Тази команда разчита на редица предварително зададени настройки, които са дефинирани във файловете `/etc/default/useradd` и `/etc/login.defs`. За да видите основните настройки, можете да използвате командата:
useradd -D

Основни параметри на useradd

  • GROUP: указва GID на групата, към която ще бъде добавен новият потребител.
  • HOME: указва основната директория, в която ще се намира домашната директория на потребителя.
  • INACTIVE (Неактивен): указва броя на дните, през които акаунтът ще бъде блокиран, след като паролата стане невалидна. Стойност „-1“ изключва тази опция.
  • EXPIRE (Изтичане): указва датата, до която акаунтът ще бъде активен. Ако тази опция не е зададена, акаунтът ще бъде активен без ограничения.
  • SHELL: указва обвивката, която ще се използва от потребителя.
  • SKEL: път до директорията, в която се съхраняват файловете-шаблони, които се копират в домашната директория на новия потребител при създаването му.
  • CREATE_MAIL_SPOOL: указва дали да се създаде пощенска директория за новия потребител в `/var/spool/mail`.
Ако използвате `useradd` без допълнителни параметри, ще бъде създаден потребител с настройки по подразбиране:
useradd test-userАко искате да конфигурирате потребител със специфични параметри, трябва да използвате разширените опции на командата `useradd`.

  • `-m`: създава домашна директория, ако тя все още не съществува.
  • `-d /home/tester-user`: указва домашната директория, която да бъде зададена на потребителя.
  • `-c „Ivan Petrov“ `: добавя коментар към акаунта, например име и фамилия.
  • `-g tester`: указва основната група, към която ще принадлежи потребителят. Можете да посочите или GID, или име на група, която вече трябва да съществува в системата. Тази опция може да се използва в комбинация с ключа `-N`, който отменя автоматичното създаване на група с името на потребителя.
  • `-G users, wheel`: указва списък с допълнителни групи, към които ще бъде добавен потребителят. Групите се посочват разделени със запетая, без интервали.
  • `-s /bin/bash`: указва командния шел, който ще се използва от потребителя.
  • `-r`: създава системен потребител, който да изпълнява услуги. По подразбиране за него не се създава домашна директория и не се добавят данни в `/etc/shadow`.
  • `-u`: задава уникален UID (идентификатор на потребител). UID трябва да бъде цяло положително число и не трябва да се повтаря сред други потребители.
  • `-e 2025-02-01`: указва датата, до която акаунтът ще бъде активен. Датата се задава във формат `YYYYYY-MM-DD`.
  • `-f 3`: указва броя на дните, в които акаунтът ще бъде блокиран след изтичане на паролата.
Командата може да изглежда по следния начин:
useradd -m -u 777 -d /home/users/tester-userer -c "Tester" -e 2025-01-01 -s /bin/bash tester-userТози пример създава потребител `tester-user` с UID 777, домашна директория `/home/users/tester-user`, коментар „Tester“ и достъп до обвивката `bash`. Акаунтът ще бъде активен до 01.01.2025 г.

След като потребителският акаунт бъде създаден, е важно да се зададе силна парола. За тази цел се използва командата: passwd tester-user.

Ако трябва да промените данните на потребителя `tester-user`, командата ще изглежда по следния начин:
usermod -l tester-user2 -m -d /home/tester-user2 -c "Terminator" -u 1945 -e 2025-02-02 -f -1 tester-userВ този пример променяме потребителското име на `tester-user2`, посочваме нова домашна директория `/home/tester-user2` с миграция на файлове, актуализираме коментара, UID, датата на изтичане на акаунта и отменяме блокирането, ако паролата е остаряла.

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

Създаване на потребител чрез adduser

Useradd е помощна програма от ниско ниво за добавяне на потребители в Linux.  Adduser е по-удобен инструмент, който всъщност представлява обвивка над командите useradd, groupadd и usermod. Не всички дистрибуции на Linux разполагат с него, но ако вашата го има, той е препоръчителен.

Вместо ivanov въведете името на новия потребител:
adduser ivanovСлед като изпълните командата, трябва да зададете парола за новия потребител и да въведете допълнителна информация. Не е необходимо да въвеждате тази информация - просто натиснете Enter, за да прескочите стъпката. 

Това ще създаде потребител с посоченото име, група, неговата домашна папка в /home/user_name, където ще бъдат дублирани файловете от директорията /etc/skel.

Изтриване на потребители

Преди да изтриете, е важно да се уверите, че в акаунта не се изпълняват активни процеси и че не се редактират файлове. Неспазването на това изискване може да доведе до неправилно функциониране на системата.

Командата `userdel` се използва за изтриване на акаунти. Синтаксисът ѝ е подобен на този на другите команди:
userdel [какво да се изтрие] [кой]Командата има два основни параметъра.
  • `-r`: Изтрива домашната директория и пощенската опашка на потребителя.
  • `-f`: Деактивира механизма за защита. Когато тази опция е активирана, потребителят ще бъде изтрит, дори ако има активни процеси и други потенциални конфликти.
След изтриване на потребител трябва ръчно да се уверите, че на сървъра не са останали файлове или директории, принадлежащи на потребителя. Това ще помогне да се избегнат евентуални проблеми, свързани с останалите следи от изтрития акаунт.

Потребителски групи в Linux

Информацията за групите се съхранява във файла `/etc/group`. Групите се използват за делегиране на права за достъп до файлове, директории или скриптове на няколко потребители едновременно. Например при работа с FTP сървър. Ако сте избрали директория за работа с файлове, можете да създадете група и да ѝ дадете права за тази директория. Впоследствие, когато добавяте нови потребители към групата, автоматично им предоставяте достъп до FTP директорията, без да се налага да конфигурирате разрешенията за всеки потребител поотделно.

Създаване на групи

За да създадете нова група, използвайте командата `groupadd` с параметри.
  • `-f`: Ако групата вече съществува, командата ще бъде прекратена без грешка.
  • `-g`: Задава уникален GID за новата група.
  • `-r`: Създава системна група.
  • `-p`: Задава паролата за групата, която се изисква при влизане в групата с помощта на командата `newgrp`. Този параметър обаче не се препоръчва от съображения за сигурност, тъй като паролата се вижда в историята на командите.

Промяна на групите

Командата `groupmod` се използва за извършване на промени в групите. Опциите се задават с помощта на параметрите.

`-g`: Променя GID на групата.
`-n`: Преименува групата, като ѝ дава ново име.

Ако искате да промените името на групата от `group1` на `new-group`, командата ще изглежда по следния начин:
groupmod -n new-group group1

Изтриване на групи

Дадена група не може да бъде изтрита, ако е основна група за съществуващ потребител. В този случай първо трябва да изтриете всички потребители от тази група. Самият процес на изтриване се извършва с помощта на командата:
groupdel group1След изтриването е важно да се провери дали на сървъра не са останали файлове и данни, принадлежащи на тази група. Това е необходимо, за да се предотвратят евентуални конфликти в системата.

Управление на потребители в група

Това става с помощта на помощната програма `gpasswd`. Тя предоставя няколко полезни параметъра, но за една команда може да се използва само един параметър.

gpasswd [какво да се направи] [в коя група]
  • `-a`: В Linux добавя потребител към група.
  • `-d`: Премахва потребител от дадена група.
  • `-A user1, user2`: Този параметър е достъпен само за потребители с администраторски права (`root`). Придава списък с администратори на групата.
  • `-M user1, user2`: Също е достъпен само за администратори. Приписва списък на членовете на групата.
  • `-r`: Деактивира паролата за групата и позволява само на членовете на групата да използват командата `newgrp` за свързване.
  • `-R`: Деактивира външния достъп до групата и ограничава използването на командата `newgrp` само от членовете на групата.

Добавяне на потребител в група

Достатъчно е да стартирате следната команда:
gpasswd -a new-user test-groupили да използвате командата:
usermod -a -G new-group tester-userАко искате да зададете `new-group` като основна група за потребителя `tester-user`, командата ще изглежда така:
usermod -g new-group tester-userВсеки потребител може сам да разреши и да се присъедини към новата група, като използва командата newgrp.

Заключение

Разгледахме основните начини за създаване, изтриване и модифициране на потребители и групи, както и примери за използване на команди. Компетентното им използване повишава сигурността и стабилността на сървърите и осигурява ефективно администриране.
11 Sep 2024, 18:29:31