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

Управлението на потребителите във всяка операционна система е една от основните рутинни задачи на системния администратор.

За операционна система, базирана на Linux, това обикновено включва създаване на потребителски акаунти, модифициране на съществуващи акаунти, като промяна на тяхната начална директория, обвивка по подразбиране, заключване/отключване на един или повече акаунти и премахване на потребителски акаунти.

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

Типове потребители

Коренен потребител

Потребителят root е администраторът на ОС с всички права за извършване на операции. Обикновено само root може да инсталира/деинсталира или актуализира основни системни програми и библиотеки. Това е единственият потребителски акаунт с привилегии за цялата система.

И така, root потребителят е най-мощният потребител на системата.

Специален потребител

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

Те се създават автоматично по време на инсталиране на всяко приложение. bin, sync, lp, mail, operator, squid са някои от примерите за специални потребители.

Общи потребители

Обикновените потребители имат пълни привилегии само в тяхната работна директория, обикновено тяхната домашна директория. Те нямат права да управляват системата или да инсталират софтуера. Те не могат да изпълняват тези задачи, без да имат специални привилегии чрез sudo.

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

Debian/Ubuntu

В базирана на Debian или Ubuntu система има няколко опции за добавяне на потребители от CLI. Първата команда е adduser, която е Perl скрипт и използва команда useradd в бекенда, чието използване ще видим по-късно.

Тъй като добавянето на потребител е привилегирована задача, ще трябва да използвате sudo като префикс и потребителско име като аргумент. Други подробности могат да бъдат посочени при поискване. С изключение на потребителско име и парола, останалите подробности не са задължителни. Можем да проверим дали потребителят е създаден с помощта на команда id.

$ sudo adduser johndoe
Adding user `johndoe' ...
Adding new group `johndoe' (1003) ...
Adding new user `johndoe' (1003) with group `johndoe' ...
Creating home directory `/home/johndoe' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for johndoe
Enter the new value, or press ENTER for the default
        Full Name []: John Doe
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y
$
$ id johndoe
uid=1003(johndoe) gid=1003(johndoe) groups=1003(johndoe)
$

CentOS/RHEL/Fedora (включително Debian/Ubuntu)

Следващата команда, useradd, ще работи в RHEL базирани OS дистрибуции, както и работи еднакво добре на Ubuntu/Debian хостове. Най-простият синтаксис (без допълнителни опции) за създаване на нов потребител е:

$ sudo useradd <username>

Пример:

$ sudo useradd janedoe

Командата useradd поддържа множество опции, които могат да бъдат зададени при създаването на потребителя, като най-често срещаните са потребителски идентификатор (UID), групов идентификатор (GID), обвивка по подразбиране и домашна директория и т.н. Един такъв пример е даден по-долу:

$ sudo useradd -s /bin/sh -d /data/newhome -c "Jane Doe" -u 1005 janedoe

Можете да проверите новосъздадения потребител с помощта на командата id:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$

Промяна на потребителя

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

  Как автоматично да преименувате медийни файлове на Linux с FileBot

Обвивка по подразбиране

Обвивката по подразбиране е CLI обвивката, създадена, когато потребител стартира нова CLI сесия или локално, или чрез SSH. Повечето съвременни системи имат потребителски Bash по подразбиране, въпреки че може да варира в зависимост от дистрибуцията на Linux или средата на потребителя. За да промените обвивката по подразбиране на потребител, използвайте:

$ sudo usermod -s <shell> <username>

Пример:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/sh
$ sudo usermod -s /bin/bash janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$

Както можете да видите в горния резултат, обвивката е променена от /bin/sh на /bin/bash за потребител janedoe.

  Как да използвате командите cat and tac в Linux

Домашен указател

Подобно на обвивката по подразбиране, домашната директория на потребителя може да бъде променена на различно местоположение с помощта на:

$ sudo usermod -d <new_directory_path> <username>

В примера по-долу потребителската начална директория на потребителя janedoe е променена на /data/janedoe:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$ sudo usermod -d /data/janedoe janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$

Преди да направите превключването, уверете се, че новата директория има правилната собственост и разрешения. В противен случай потребителят може да се сблъска с проблеми по време на влизане или работа в новата начална директория.

Потребителско име

Можете да промените потребителския идентификатор на съществуващ потребител, като използвате:

$ sudo usermod -u <new_uid> <username>

Пример:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -u 1010 janedoe
$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$

Отново промяната на UID променя начина, по който файловата система на Linux картографира собствеността и разрешението за файл или директория. Уверете се, че домашната директория на потребителя и нейното съдържание, както и всички други файлове навсякъде в системата, първоначално притежавани от потребителя (със стар UID), са променени на картографирани UID. Ако не го направите, това може да причини проблеми в CLI сесията и достъпа до файлове от потребителя.

Група по подразбиране

Групата по подразбиране обикновено е идентификаторът на групата по подразбиране на потребителя, който се създава по време на създаването на потребител, освен ако не е указан друг GID. Linux ви позволява да променяте групата по подразбиране на потребител, като използвате и командата usermod. Ето синтаксиса, който трябва да използвате:

$ sudo usermod -g <new_gid or group_name> <username>

Ето един пример:

$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$ sudo usermod -g 1001 janedoe
$ getent passwd janedoe
janedoe:x:1010:1001::/data/janedoe:/bin/bash
$

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

Добавяне/премахване на групи

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

$ sudo usermod -a -G <group_id or group_name> <username>

Пример:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -a -G docker janedoe
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$

По същия начин, за да премахнете потребител от една от вторичните групи, използвайте командата gpasswd, както е показано по-долу:

$ sudo gpasswd -d <username> <groupname>

Пример:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$ sudo gpasswd -d janedoe docker
Removing user janedoe from group docker
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$

Коментар на GECOS

Полето GECOS в /etc/passwd съдържа потребителска информация или коментар. Можем да променим тази информация за съществуващ потребител като:

$ sudo usermod -c <comment> <username>

Пример:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -c "Jane Doe - System Admin" janedoe
$ getent passwd janedoe
janedoe:x:1005:1005:Jane Doe - System Admin:/data/janedoe:/bin/bash
$

Моля, обърнете внимание, че ако вашият коментар или потребителски данни съдържат интервали, оградете това поле в кавички, както е направено в горния пример.

  Как да играете Outlast на Linux

Потребителско име

Името за вход на потребителя може също да бъде променено с помощта на командата usermod чрез използване на флаг -l:

$ sudo usermod -l <new_username> <old_username>

Пример:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -l jane_doe janedoe
$ id jane_doe
uid=1005(jane_doe) gid=1005(janedoe) groups=1005(janedoe)
$

Не забравяйте да актуализирате потребителските препратки според новото име, където и да се използва. Дори в команди като id трябва да се посочи новото потребителско име.

Премахване на потребител

Потребител може да бъде премахнат от Linux чрез командата userdel.

$ sudo userdel <username>

Пример:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo userdel janedoe
$ id janedoe
id: ‘janedoe’: no such user
$

За да премахнете потребител заедно с неговата домашна директория и пощенски спул, добавете също флаг -r.

$ sudo userdel -r <username>

Специално за системи, базирани на Ubuntu, можете също да използвате команда deluser, за да премахнете потребител:

$ sudo deluser <username>

По същия начин, за да премахнете домашната директория и спула за поща, използвайте:

$ sudo deluser --remove-home <username>

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

$ man adduser
$ man useradd
$ man usermod
$ man deluser
$ man userdel

Заключение

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

Може също да ви е интересно да прочетете: Как да премахвам файлове и директории в Linux?