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

Какво има в едно име?

Ако използвате компютър, подобен на Linux или Unix, ще имате потребителски акаунт. Името, дадено на акаунта, е името на вашия потребителски акаунт. Това е името, с което влизате. Това е също (по подразбиране) името на вашата група за вход и името на вашата домашна директория. Всички те използват един и същ идентификатор.

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

На практика това ще бъде по-полезно за системните администратори, които се грижат за компютри, които имат много конфигурирани потребителски акаунти. Но дори и за еднопотребителския Linux компютър винаги е интересно да се знае какво се случва под капака.

Полето GECOS

Едно време пионерите на Unix нямаха собствен принтер. Те трябваше да пренасочат заданията си за печат до a General Electric мейнфрейм, който работеше Изчерпателна операционна система General Electric (GECOS). За да постигнат това, потребителите на Unix системите трябваше да съхраняват и използват идентификационните данни на акаунт в системата GECOS.

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

Полето се съхранява във файла /etc/passwd, заедно с друга информация относно потребителския акаунт:

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

Това е мястото, където пръст на ръката команда и мизичко команда извлича информацията, която те показват.

  Как да надстроите Fedora Linux

Командата chfn

chfn (промяна на информацията за пръста) ви позволява задайте и промените информацията, съхранявана в полето GECOS. Информацията се съхранява като разделен със запетая списък в полето.

Командата chfn вече присъстваше в Ubuntu 18.04.1 и Manjaro 18.1.0. Трябваше да бъде инсталиран на Fedora 31. Използвайте тази команда, за да го инсталирате:

sudo dnf install util-linux-user

Нека видим какъв пръст може да разбере за собственика на потребителския акаунт „dave“. За да получим максимална информация, ще използваме опцията -l (дълъг формат):

finger dave -l

Ето какво може да намери:

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

chfn dave

Използването на chfn по този начин стартира кратък интерактивен процес. Ще бъдете подканени да въведете стойност на данни за всяка част от информацията, която полето GECOS може да съдържа. Текущата стойност за всяка стойност на данните се показва в скоби []. Ако искате да запазите текущите данни, можете да натиснете клавиша “Enter” и стойността в скобите ще бъде запазена.

Информацията, която въведохме беше:

Номер на стая: 512
Работен телефон: 555-4567
Домашен телефон: 555-5432

Нека проверим дали пръстът улавя тази нова информация:

finger dave -l

Да, така е. Но може би сте забелязали, че не е подканвало да промените пълното име. Това ще стане само ако използвате sudo. Но не е нужно да преминаваме през цялата chfn сесия отново, само защото сме забравили да използваме sudo. Можем да променим всяка от стойностите на данните поотделно.

Промяна на индивидуалните стойности на данните

Можем да зададем пълното име за собственика на потребителския акаунт, като използваме опцията -f (пълно име), заедно с sudo.

sudo chfn -f "Dave McKay" dave

sudo chfn -f

И ако проверим още веднъж с пръст:

Виждаме, че пълното име е добавено.

Има и други опции за промяна на номера на стаята, домашния телефонен номер и служебния телефонен номер. За да промените номера на стая (офис), използвайте опцията -r (номер на стая):

sudo chfn -r 633 dave

Имайте предвид, че в някои дистрибуции може да използвате опцията -o (номер на офис стая) вместо опцията -r. Повече за това скоро. Засега, за да видите опциите за вашата версия на chfn, използвайте:

man chfn

За да промените служебния телефонен номер, използвайте опцията -w (служебен телефон):

sudo chfn -w 555-1122 dave

И накрая, за да промените домашния телефонен номер, използвайте опцията -h (домашен телефонен номер):

sudo chfn -h 555-6576 dave

Нека отново използваме пръст, за да видим дали всички тези промени са приети:

finger dave -l

успех. Всички тези команди са работили и стойностите на данните са актуализирани.

  Как да инсталирате Lightworks на Linux

Използване на chfn за други потребителски акаунти

Толкова за промяната на нашата собствена информация, какво ще кажете за промяната на информацията на GECOS за други потребители? Това е също толкова лесно. Трябва да използвате sudo, когато го правите, но това е единствената разлика. Нека проверим какви данни са зададени за потребителския акаунт mary:

finger mary -l

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

sudo chfn mary

Ще преминем през същата сесия, както направихме преди, като ще бъдем подканени за стойност на данни за всяка информация, която може да бъде съхранена. И тъй като използвахме sudo , от нас се иска стойността на данните за пълното име.

Чакайте малко, кой е последният елемент, наречен „Други?“

той не се поддържа от всички версии на chfn и го виждате само ако използвате sudo, поради което не го видяхме по-рано, когато (нарочно) не използвахме sudo с:

chfn dave

Стойността на данните „Други“ може да съдържа всичко, което желаете. Няма никаква предписана или очаквана употреба.

Версиите на chfn, които поддържат полето „Други“, също предоставят опцията -o (друго) за директно промяна на тази стойност. Поради конфликта между -o за „номер на офис“ и -o за „други“, някои системи използват -r за „номер на стая“.

Можем да видим данните, съхранени за потребителския акаунт mary във файла /etc/paswd, като използваме по-малко:

less /etc/passwd

На системи, които го поддържат (проверете man страницата за вашата версия на chfn ) можете да зададете полето „друго“ директно с помощта на опцията -o (друго):

sudo chfn -o "HTG Freelancer" dave

sudo chfn -o

И можем да проверим данните за потребителския акаунт dave, като използваме командата less:

less /etc/passwd

[asswdвпрозорецнатерминала”ширина=”646″височина=”382″/>[asswdinaterminalwindow”width=”646″height=”382″/>

Това повдига очевиден въпрос. Ако вашата версия на chfn не поддържа полето „Друго“, как да го промените? Можем да направим това с командата usermod.

  Как да стартирате програма за Linux при стартиране със systemd

Командата usermod

Командата usermod ви позволява да промяна на аспекти на потребителски акаунт чрез такива действия като добавяне или премахване на потребителския акаунт от групи и промяна на тяхната обвивка по подразбиране. Може да се използва и за директно манипулиране на полето GECOS.

Нека разгледаме по-отблизо реда във файла /etc/passwd за потребителски акаунт mary. Ще използваме grep, за да изолира тази линия за нас. Това ще работи, защото потребителските имена трябва да са уникални. Може да има само един потребителски акаунт, наречен mary.

grep mary /etc/passwd

Показват се полетата във файла etc/passwd. Двоеточие “:” се използва като разделител на полето. отляво надясно, полетата са:

Потребителското име на акаунта.
„x“, което показва паролата за този потребителски акаунт, се съхранява криптирано във файла /etc/shadow.
Потребителският идентификатор за потребителския акаунт на mary.
Идентификаторът на групата за потребителския акаунт на mary.
Полето GECOS.
Пътят към началната директория за потребителския акаунт на mary.
Обвивката, която се стартира, когато собственикът на акаунта на mary влезе.

Запетая “,” се използва като разделител за стойностите на данните в полето GECOS. Стойностите в полето GECOS са отляво надясно:

Пълно име.
Номер на стая (или офис).
Работен телефонен номер.
Домашен телефонен номер.
Друга информация.

Имайте предвид, че командата usermod задава цялото поле GECOS на новата стойност, която предоставяте. Ако всичко, което предоставяте, е пълното име на лицето, тогава единственото нещо в полето GECOS ще бъде пълното име. Това означава, че трябва да предоставите всички съществуващи стойности на данни, които искате да запазите.

Ето един пример. Потребителят Мери е повишен и тя ще се премести на четвъртия етаж. Тя получава нов служебен номер, нов служебен телефонен номер и ще добавим второто й име. Стойността на нейното поле „Други“ също ще се промени. Въпреки че домашният й телефонен номер няма да се промени, трябва да го предоставим в низа на usermod.

Трябва да използваме опцията -c (коментар) и трябва да изпълним командата с sudo.

sudo usermod -c "Mary Carol Quinn,405,5559654,555-7704,Linux Advocate" mary

sudo usermod -c

Използването на grep за докладване на съдържанието на файла /etc/passwd за mary ни показва, че са добавени новите стойности.

grep mary /etc/passwd

Всичко е поток, нищо не остава

Неточните данни са безполезни. Когато информацията за хората се промени – преместване на офис, промени в имената, заглавия на роли – можете лесно да актуализирате техните метаданни, за да отразяват текущата позиция.

By admin