Вопрос или проблема
Я работаю на сервере Debian как неопытный администратор. Мне нужно изменить полное имя пользователя (не имя для входа), указанное во время adduser USERNAME
. Как я могу это сделать? Я не нашел такой опции в usermod
(http://linuxcommand.org/man_pages/usermod8.html).
Поле GECOS в /etc/password
можно изменить с помощью команды chfn(1)
.
chfn -f "Joe Blow" jblow
Вы можете сделать следующее
adduser username -c "John Snow" -s /bin/bash
изменить
usermod -c "Snow John" username
Для проверки полного имени пользователей finger username
Вы можете напрямую отредактировать /etc/passwd
, полное имя является полем в этом файле.
Если вы используете systemd-homed, вам нужно выполнить sudo homectl update myuser -c 'Full Name'
.
В моем случае меня также спросили пароль myuser (вероятно, из-за шифрования домашнего каталога), в дополнение к паролю пользователя, выполняющего команду (из-за sudo
).
Ответ или решение
В Debian, как и в большинстве систем на базе Linux, информация о пользователях хранится в файле /etc/passwd
. В этот файл записываются данные о каждом пользователе, включая его идентификатор, домашнюю директорию, shell входа в систему и так называемое поле GECOS. Поле GECOS используется для хранения дополнительных данных о пользователе, включая полное имя.
Теория
Смена полного имени пользователя — это не модификация логина или UID, а изменение комментария, который отображается рядом с именем пользователя и хранится в GECOS. Это значение, заданное при создании пользователя командой adduser
, можно изменить без необходимости изменения других параметров пользователя. В утилитах администрирования полное имя может упоминаться как «комментарий пользователя».
Пример
Для изменения полного имени пользователя в Debian существует несколько методов. Самый простой — использование команды chfn
(change finger information), которая изменяет информацию в поле GECOS. Например, чтобы изменить полное имя пользователя jblow
на «Joe Blow», используется команда:
chfn -f "Joe Blow" jblow
Другой способ — использование команды usermod
, которая позволяет изменять параметры пользователя. Для изменения комментария, который также является полным именем, можно использовать следующую команду:
usermod -c "Snow John" username
Эти команды изменяют те же параметры, что и при редактировании файла /etc/passwd
, но автоматизируют процесс и уменьшают риск ошибок при ручном редактировании.
Также возможно прямое редактирование файла /etc/passwd
, но этот метод требует большей осторожности. Всю информацию о пользователе можно наглядно увидеть через команду finger
, которая отображает хранящуюся информацию о пользователе:
finger username
В случае, если вы используете систему с systemd-homed
, которая предлагает улучшенную поддержку домашних директорий пользователей, настройка должна быть выполнена через homectl
. Изменение полного имени может потребовать дополнительной аутентификации и производится следующей командой:
sudo homectl update myuser -c 'Full Name'
Применение
Выбор метода изменения полного имени пользователя зависит от вашего уровня доступа, требований безопасности, а также от ситуативных факторов, таких как наличие systemd-homed
. Для большинства администраторов использование команд chfn
или usermod
является предпочтительным, поскольку они автоматизируют процесс и снижают риск ошибок, сопутствующих ручному редактированию системных файлов.
Тем не менее, если вы предпочитаете ручное управление или работаете в минимальной системе, где утилиты могут быть недоступны, редактирование файла /etc/passwd
остается актуальным вариантом. Следует помнить, что любое изменение в этом файле требует повышенных привилегий, то есть доступа через sudo
или под пользователем root
.
При этом стоит учитывать, что неосторожное изменение может привести к проблемам с доступом, поэтому рекомендуется делать резервные копии конфигурационных файлов перед внесением изменений.
Использование команды finger
после изменения является полезным для проверки того, что все данные обновлены правильно и все необходимые изменения были учтены.
Таким образом, смена полного имени пользователя в Debian проста и предоставляет администратору гибкость выбора подходящего метода, соответствующего его навыкам и требованиям системы.