Переименовать пользователя в Linux достаточно простая задача. Основная идея заключается в том, что в самой системе используется соответствующий пользователю UID - уникальный идентификатор пользователя. Единственное место, в идеале, где указано текущее имя пользователя - это файл /etc/passwd. Можно конечно заняться и напрямую редактированием файла, но гораздо проще воспользоваться стандартными системными утилитами usermod и groupmod. Единственная проблема заключается в том, что если пользователь основной и через него вы пытаетесь получить права пользователя root в системе, да и вообще если есть хотя бы один запущенный от имени основного пользователя процесс, то вы получите сообщение user_name is corrently logged in.
Поэтому добавим в систему нового пользователя:
Замечание: в случае когда когда требуются права пользователя root, в начале строки указан #, если обычного пользователя %. Для получения прав пользователя root в Ubuntu достаточно добавить sudo перед командой или выполнить:
%sudo -i
Необходимо будет ввести пароль пользователя, на запросы о полном имени и прочую информацию GECOS можно не заполнять.
Далее необходимо дать новому пользователю дополнительные разрешения:
В открывшимся окне текстового редактора ввести строку:
Ctrl-X, затем исправить имя файла на /etc/sudoers и подтвердить перезапись файла Y.
Завершаем сеан текущего пользователя, лучше всего перезагрузиться. Послк, в GDM в окне ввода имени пользователя и пароля нажать Alt-Ctrl-F1. В появившейся текстовой консоли вводим имя пользователя testuser и пароль. Затем для того, чтобы получить права пользователя root:
и вводим пароль пользователя testuser.
Так как в Ubuntu по умолчанию не установлены пакеты с поддержкой кириллицы в консоли, то необходимо:
Для того, чтобы можно было прочитать вывод после ввода команд и сообщения о ошибках. Далее вводим:
Поменяем имя пользователя. NEWLOGIN, OLDLOGIN - новое и старое имя основного пользователя, соответственно.
Изменим имя первичной группы пользователя:
#groupmod -n NEWGROUPNAME OLDGROUPNAME
Имя OLDGROUPNAME по умолчанию совпадает с именем пользователя, NEWGROUPNAME тоже что и NEWLOGIN
Затем перенесем содержание директории пользователя /home/OLDLOGIN в новую директорию /home/NEWLOGIN:
Исправим данный GECOS нового имени пользователя, в большинстве случаев подойдет команда:
#usermod -c NEWLOGIN,,, NEWLOGIN
На данный момент GDM использует старые данные GECOS, поэтому переключаться на него по Alt-Ctrl-F8 бесполезно, только ради интереса. Перезапуск X по Alt-Ctrl-Backspace в Ubuntu по умолчанию не доступно, поэтому переключаемся обратно на консоль Alt-Ctrl-F1 и даем команду (хотя конечно можно обойтись и без перезагрузки всей системы и перезапустить соответствующую службу):
После перезагрузки в GDM будет доступен логин под новым именем учетной записи. Единственной сложность может возникнуть если в файле /etc/fstab монтировались какие-либо разделы с использованием путей /home/OLDLOGIN/*, для решения проблемы достаточно будет их исправить.
Поэтому добавим в систему нового пользователя:
#adduser testuser
Замечание: в случае когда когда требуются права пользователя root, в начале строки указан #, если обычного пользователя %. Для получения прав пользователя root в Ubuntu достаточно добавить sudo перед командой или выполнить:
%sudo -i
Необходимо будет ввести пароль пользователя, на запросы о полном имени и прочую информацию GECOS можно не заполнять.
Далее необходимо дать новому пользователю дополнительные разрешения:
#visudo
В открывшимся окне текстового редактора ввести строку:
testuser ALL=(ALL) ALL
Ctrl-X, затем исправить имя файла на /etc/sudoers и подтвердить перезапись файла Y.
Завершаем сеан текущего пользователя, лучше всего перезагрузиться. Послк, в GDM в окне ввода имени пользователя и пароля нажать Alt-Ctrl-F1. В появившейся текстовой консоли вводим имя пользователя testuser и пароль. Затем для того, чтобы получить права пользователя root:
sudo -i
и вводим пароль пользователя testuser.
Так как в Ubuntu по умолчанию не установлены пакеты с поддержкой кириллицы в консоли, то необходимо:
%export LANG=en
Для того, чтобы можно было прочитать вывод после ввода команд и сообщения о ошибках. Далее вводим:
#usermod -l NEWLOGIN OLDLOGIN
Поменяем имя пользователя. NEWLOGIN, OLDLOGIN - новое и старое имя основного пользователя, соответственно.
Изменим имя первичной группы пользователя:
Имя OLDGROUPNAME по умолчанию совпадает с именем пользователя, NEWGROUPNAME тоже что и NEWLOGIN
Затем перенесем содержание директории пользователя /home/OLDLOGIN в новую директорию /home/NEWLOGIN:
#usermod -md /home/NEWLOGIN NEWLOGIN
Исправим данный GECOS нового имени пользователя, в большинстве случаев подойдет команда:
#usermod -c NEWLOGIN,,, NEWLOGIN
На данный момент GDM использует старые данные GECOS, поэтому переключаться на него по Alt-Ctrl-F8 бесполезно, только ради интереса. Перезапуск X по Alt-Ctrl-Backspace в Ubuntu по умолчанию не доступно, поэтому переключаемся обратно на консоль Alt-Ctrl-F1 и даем команду (хотя конечно можно обойтись и без перезагрузки всей системы и перезапустить соответствующую службу):
#shutdown -r now
После перезагрузки в GDM будет доступен логин под новым именем учетной записи. Единственной сложность может возникнуть если в файле /etc/fstab монтировались какие-либо разделы с использованием путей /home/OLDLOGIN/*, для решения проблемы достаточно будет их исправить.
Затем перенесем содержание директории пользователя /home/OLDLOGIN в новую директорию /home/NEWLOGIN:
ОтветитьУдалить#usermod -md /home/NEWLOGIN NEWLOGIN
Исправим данный GECOS нового имени пользователя, в большинстве случаев подойдет команда:
#usermod -c NEWLOGIN,,,, NEWLOGIN
этот момент не совсем понятен..можно ли подробнее? нет ли тут опечатки в NEWLOGIN?
Действительно опечатка. Надо три запятых после NEWLOGIN:
Удалить#usermod -c NEWLOGIN,,, NEWLOGIN
Формат GECOS следующий:
{Имя пользователя},{Адрес},{Рабочий тел},{Домашний тел}
Последние три поля можно опустить, поэтому:
{Имя пользователя},,,
Подробней про формат поля GECOS https://ru.wikipedia.org/wiki//etc/passwd#GECOS
Почему не исправил в основной статье?
УдалитьВиноват, точно не исправил :) Теперь вроде исправлено. Рад что статья интересна до сих пор. По мерках IT прошла целая эпоха. Я рад что консоль и Linux это разумное, доброе и вечное
Удалить2021-й, а статья до сих пор актуальна)))
УдалитьПрикол)) 10 лет прошло. Надо что-нибудь про Lisp, Emacs или Vim написать, пройдет 50 лет и я успею посадить дерево, построить дом и вырастить дерево))
Удалить