8.6. Изменение учетной записи пользователя

Проблема
Требуется внести изменения в существующую учетную запись — например,
сменить имя пользователя или UID, обновить данные GECOS или домашний ка талог.

Решение
Воспользуйтесь командами usermod и chfn.
Изменять можно любые атрибуты, включая имя пользователя и код UID. Что бы сменить имя, сначала укажите новое имя, а затем старое:
# usermod -I aborg anitab
Следующая команда изменяет UID (в следующем примере исходное значение
1050 меняется на 1200) без изменения имени пользователя. Сначала указывается
новый код UID, затем имя:
# usermod -u 1200 anitab
Принадлежность пользователя к группам не изменяется. Все файлы в домашнем
каталоге пользователя автоматически обновляются новым кодом U1D. Тем не менее
вам придется вручную найти и изменить все файлы за пределами домашнего катало га (crontab, почтовые каталоги, временные файлы /tmp и файлы в общих каталогах).
Для поиска файлов можно воспользоваться командой find с указанием исходного
кода UID, если вы хотите просмотреть список файлов перед внесением изменений:
# find / -uid 1050
/usr/src/include/lber.h
/usr/src/include/1 dap.h
/usr/src/include/ldbm.h
Смена владельца файлов осуществляется командой chown:
# chown 1200 /usr/scr/include/lber.h
Последовательная смена владельца для каждого файла — занятие довольно уто мительное. Команды chown и find могут выполнить эту работу за вас:
# find / -uid 1050 -exec chown -v 1200 {} \;
changed owner of '/usr/src/include/lber.h' to 1200
changed owner of '/usr/src/include/ldap.h' to 1200
changed owner of '/usr/src/include/ldbm.h' to 1200
Следующая команда перемещает домашний каталог пользователя со всем со держимым. Если новый каталог не существует, он автоматически создается. Сна чала указывается новый каталог, а затем имя пользователя. Обязательно исполь зуйте флаги -d и -т:
# usermod -d /serverl/home/aborg/ -m aborg
Изменение данных GECOS:
# chfn aborg
Пользователь может передать при вызове chfn данные GECOS по своему ус мотрению. Исключение составляют два поля: полное имя и «прочее». Содержи мое этих полей может редактироваться только суперпользователем.
Комментарий
Постарайтесь обойтись без изменения имени пользователя и кода UID, посколь ку такое изменение будет иметь общесистемные последствия. Если изменение все
же неизбежно, не забудьте отыскать все файлы, принадлежащие пользователю,
смените имя в домашнем каталоге пользователя и обновите данные о принадлеж ности к группам.
Если заменить ключ -exec на -ok, команда find будет запрашивать подтвержде ние каждого изменения:
# find / -uid 1050 -ok chown -v 1200 {} \:
Трудно переоценить удобство такого применения find. Ключ -exec или -ok при казывает find выполнить следующую команду. Последовательность {} заменяется
именем текущего файла. Точка с запятой указывает, где завершается команда
chown, а символ \ «экранирует» точку с запятой, чтобы она не была обработана
командным процессором.
См. также
usermod(8), chfn(l); Файл жаргона (http://www.catb.org/~esr/jargon/).