Команда chfn в Linux: настройка профиля пользователя

Введение в утилиту chfn

В операционных системах семейства Linux служебные метаданные учетных записей — полное имя сотрудника, номер кабинета и контактные телефоны — хранятся в специальном поле GECOS. Для корректного и безопасного редактирования этих параметров предназначена стандартная утилита chfn. Вместо сухого разбора справочных руководств man, мы на наглядных практических примерах в терминале разберем процесс модификации и проверки пользовательских сведений.

Создание тестовой учетной записи и инспекция начального состояния

Чтобы не затрагивать рабочие профили системы, подготовим изолированного пользователя testuser. Для этого выполним команду id -u testuser &>/dev/null || useradd -m -s /bin/bash testuser, которая создаст учетную запись с домашним каталогом и оболочкой Bash, если она еще не зарегистрирована.

Создание пользователя testuser в системе

Сразу после инициализации учетной записи проверим ее конфигурационную запись в базе /etc/passwd с помощью команды getent passwd testuser.
В выводе пятое поле (отвечающее за блок GECOS) остается пустым — это подтверждает, что никакие расширенные контактные данные для нового пользователя еще не заданы.

Проверка исходных параметров пользователя через getent

Пакетное заполнение атрибутов GECOS с помощью флагов chfn

Утилита chfn поддерживает неинтерактивный режим пакетной настройки, что крайне удобно для сценариев автоматизации. Для одновременного присвоения всех персональных реквизитов пользователю testuser запустим команду chfn -f 'Tech Writer' -r 'Lab-404' -w '02-1234-5678' -h '010-9876-5432' testuser.
Флаг -f определяет полное имя (Full Name), -r — локацию или номер комнаты (Room), -w — рабочий телефон (Work Phone), а -h — домашний телефон (Home Phone).

Пакетная передача параметров пользователя через chfn

Убедимся в успешной синхронизации внесенных изменений с системными файлами, повторно вызвав команду getent passwd testuser.
Как видно из ответа терминала, в пятой позиции строки учетной записи теперь перечислены все указанные значения, разделенные запятыми (,), строго в формате стандарта GECOS.

Отображение обновленного поля GECOS через getent

Установка пакета finger и структурированный просмотр профиля

В то время как getent выводит сырую строку, классическая системная утилита finger форматирует эти метаданные в удобную для чтения карточку. Установим данный инструмент в систему с помощью команды apt-get update -qq && apt-get install -y finger.

Инсталляция пакета finger через apt-get

После успешной инсталляции запросим карточку профиля командой finger testuser.
Инструмент скомпонует сохраненные данные в наглядный отчет, где четко структурированы реальное имя (Name), рабочее помещение с телефоном (Office) и домашний номер (Home Phone).

Чтение форматированной информации об учетной записи утилитой finger

Точечное обновление метаданных и очистка тестового окружения

Если требуется изменить лишь часть параметров, нет необходимости перезаписывать все поля заново. Чтобы обновить имя и рабочий кабинет, сохранив прежние телефонные контакты, выполним команду chfn -f 'DevOps Lead' -r 'HQ-701' testuser.
Неуказанные аргументы останутся нетронутыми, а модификации подвергнутся исключительно переданные значения.

Выборочная корректировка полей через chfn

Проконтролируем результат частичного обновления непосредственно в системном файле через команду grep '^testuser:' /etc/passwd.
Вывод подтверждает: должность/имя и комната обновились до новых значений, тогда как телефонные номера остались в целости и сохранности.

Фильтрация записи учетной записи в файле /etc/passwd

Завершив практическую работу, наведем порядок в операционной системе. Удалим созданного пользователя вместе с его домашней директорией и почтовым ящиком с помощью команды userdel -r testuser.

Полное удаление тестового пользователя через userdel

Мы подробно рассмотрели практическое применение команды chfn для администрирования полей GECOS в Linux.
Гибкое комбинирование ее ключей позволяет системным инженерам и администраторам быстро поддерживать актуальность контактных сведений пользователей как вручную, так и в рамках автоматизированных скриптов.