Як змінити дані користувача за допомогою chfn і usermod в Linux

Обліковий запис користувача не лише ім’я користувача. Дізнайтеся, як налаштувати та змінити всі метадані, пов’язані з обліковим записом користувача Linux, за допомогою командного рядка.

Що в імені?

Якщо ви використовуєте комп’ютер, подібний до Linux або Unix, у вас буде обліковий запис користувача. Ім’я, надане обліковому запису, є ім’ям вашого облікового запису користувача. Це ім’я, яке ви використовуєте для входу. Це також (за замовчуванням) назва вашої групи входу та назва вашого домашнього каталогу. Усі вони використовують один і той же ідентифікатор.

Для кожного облікового запису користувача можна зберігати інший набір інформації. Реальні дані, наприклад, повне ім’я людини, номер її офісу та робочий номер телефону, можуть бути визначені та додані до них. Дійсно, до облікових записів користувачів можна позначати абсолютно довільні фрагменти інформації.

На практиці це буде корисніше для системних адміністраторів, які доглядають за комп’ютерами, на яких налаштовано багато облікових записів користувачів. Але навіть для однокористувацького комп’ютера Linux завжди цікаво знати, що відбувається під капотом.

Поле GECOS

У свій час у піонерів Unix не було власного принтера. Їм довелося згорнути свої завдання друку до a Дженерал Електрик мейнфрейм, на якому запущено Комплексна операційна система General Electric (GECOS). Для цього користувачам систем Unix потрібно було зберігати та використовувати облікові дані облікового запису в системі GECOS.

Поле GECOS було створено для зберігання цих облікових даних. Ця сама вимога ніші давно увійшла в історію, і поле GECOS було повторно призначено для зберігання інших даних, пов’язаних з власником облікового запису користувача. Він може мати нову роботу, але він зберігає свою стару назву. Його ще називають полем GECOS.

Поле зберігається у файлі /etc/passwd разом з іншою інформацією про обліковий запис користувача:

Ім’я користувача облікового запису.
Ідентифікатор користувача.
Ідентифікатор групи.
Шлях до домашнього каталогу облікового запису користувача.
Оболонка, яка запускається під час входу користувача.

Ось де пальцем команда та мізинець команда отримати інформацію, яку вони відображають.

Команда chfn

chfn (зміна інформації пальця) дозволяє вам встановити та змінити інформацію, що зберігається в полі GECOS. Інформація зберігається у вигляді списку, розділеного комами в полі.

  Як додати елементи до файлу Fstab в Linux

Команда chfn вже була присутня в Ubuntu 18.04.1 і Manjaro 18.1.0. Його потрібно було встановити на Fedora 31. Використовуйте цю команду, щоб встановити його:

sudo dnf install util-linux-user

Давайте подивимося, який палець може дізнатися про власника облікового запису «Дейв». Щоб отримати максимальну інформацію, ми будемо використовувати параметр -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

Успіх. Усі ці команди спрацювали, а значення даних оновлено.

  Як запустити Skyrim на Linux за допомогою Wine

Використання 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

У системах, які його підтримують (перевірте сторінку керівництва щодо вашої версії chfn ), ви можете встановити поле «інше» безпосередньо за допомогою параметра -o (інше):

sudo chfn -o "HTG Freelancer" dave

судо chfn -o

І ми можемо перевірити дані облікового запису користувача dave за допомогою команди less:

less /etc/passwd

[asswdувікнітерміналу”width=”646″height=”382″/>[asswdinaterminalwindow”width=”646″height=”382″/>

Це викликає очевидне запитання. Якщо ваша версія chfn не підтримує поле «Інше», як його змінити? Ми можемо зробити це за допомогою команди usermod.

Команда usermod

Команда usermod дозволяє змінити аспекти облікового запису користувача за допомогою таких дій, як додавання або видалення облікового запису користувача з груп, а також зміна оболонки за замовчуванням. Його також можна використовувати для безпосереднього маніпулювання полем GECOS.

Давайте детальніше розглянемо рядок у файлі /etc/passwd для облікового запису користувача mary. Ми скористаємося grep, щоб виділити цей рядок для нас. Це спрацює, оскільки імена користувачів мають бути унікальними. Може бути лише один обліковий запис користувача з назвою mary.

grep mary /etc/passwd

Відображаються поля у файлі etc/passwd. Двокрапка «:» використовується як роздільник полів. зліва направо, поля такі:

  Як створити резервну копію та відновити профіль Firefox на Linux

Ім’я користувача облікового запису.
Знак «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

Все є потоком, нічого не залишається

Неточні дані нічого не варті. Коли інформація про людей змінюється — переїзд офісів, зміна імен, посад — ви можете легко оновити їхні метадані, щоб відображати поточну посаду.