Управление пользователями и группами. Часть 3.
Изменение учетной записи пользователя.
пятница, июня 08, 2007
Требуется внести изменения в существующую учетную запись — например, сменить имя пользователя или UID, обновить данные GECOS или домашний каталог.
Решение
Воспользуйтесь командами usermod и chfn. Изменять можно любые атрибуты, включая имя пользователя и код UID. Чтобы сменить имя, сначала укажите новое имя, а затем старое
# usermod -I aborg anitab
Следующая команда изменяет UID (в следующем примере исходное значение 1050 меняется на 1200) без изменения имени пользователя. Сначала указывается новый код UID, затем имя:
# usermod -u 1200 anitab
Принадлежность пользователя к группам не изменяется. Все файлы в домашнем каталоге пользователя автоматически обновляются новым кодом UID. Тем не менее вам придется вручную найти и изменить все файлы за пределами домашнего каталога (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 и -m:
# usermod -d /server1/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, а символ \ «экранирует» точку с запятой, чтобы она не была обработана командным процессором.
Предыдущие части.
Часть 1. Отделение обычных пользователей от системных
Часть 2. Создание учетной записи командами useradd и adduser
Решение
Воспользуйтесь командами usermod и chfn. Изменять можно любые атрибуты, включая имя пользователя и код UID. Чтобы сменить имя, сначала укажите новое имя, а затем старое
# usermod -I aborg anitab
Следующая команда изменяет UID (в следующем примере исходное значение 1050 меняется на 1200) без изменения имени пользователя. Сначала указывается новый код UID, затем имя:
# usermod -u 1200 anitab
Принадлежность пользователя к группам не изменяется. Все файлы в домашнем каталоге пользователя автоматически обновляются новым кодом UID. Тем не менее вам придется вручную найти и изменить все файлы за пределами домашнего каталога (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 и -m:
# usermod -d /server1/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, а символ \ «экранирует» точку с запятой, чтобы она не была обработана командным процессором.
Предыдущие части.
Часть 1. Отделение обычных пользователей от системных
Часть 2. Создание учетной записи командами useradd и adduser
Ярлыки: документация, Управление пользователями, linux