8 хитростей управления пользователями Linux с помощью команды usermod
Команда usermod — это инструмент для обновления информации о существующей учетной записи пользователя в вашей системе. Она похожа на редактирование «профиля» пользователя Linux. С ее помощью вы можете изменить все что угодно, от имени пользователя до оболочки входа в систему, без необходимости удалять и создавать учетную запись заново.
8. Обновить информацию пользователя
Если вы просто хотите изменить общие сведения о пользователе, такие как описание учетной записи (также называемое «полем комментария»), вы можете использовать опцию -c. Это поле часто используется для таких данных, как полное имя пользователя, отдел или любое другое краткое описание. Вот пример:
sudo usermod -c "HTG Test User" htg
Флаг -c предназначен для поля комментария. Все, что вы поместите в кавычки, появится в файле «/etc/passwd». После выполнения этой команды вы можете проверить, сработало ли обновление, заглянув в файл «/etc/passwd».
grep htg /etc/passwd
Обратите внимание на «HTG Test User» в пятом поле. Это описание, которое мы только что добавили. Это поле иногда используется дисплей-менеджерами или утилитами, такими как finger. Оно помогает на многопользовательских серверах, когда вы можете не помнить, кто является конкретным пользователем.
7. Изменить имя пользователя
Иногда необходимо изменить имя пользователя для входа. Возможно, имя пользователя было временным, или вы просто хотите стандартизировать соглашения об именах. Команда usermod позволяет сделать это без необходимости удалять и создавать учетную запись заново. Вот как вы можете изменить имя пользователя нашего примера ‘htg’ на ‘howtogeek’:
sudo usermod -l howtogeek htg
Флаг -l (строчная буква L) обозначает имя пользователя для входа. Он сообщает команде usermod, что вы хотите изменить имя учетной записи. Обратите внимание на синтаксис. Сначала нужно указать новое имя пользователя, а затем текущее имя пользователя, для которого вы хотите изменить имя.
После выполнения этого действия аккаунт теперь использует ‘howtogeek’ в качестве имени для входа. Вы можете проверить изменение, вновь проверив файл «/etc/passwd».
grep howtogeek /etc/passwd
Вы также должны знать, что изменение имени для входа не автоматически переименовывает домашний каталог пользователя. Итак, в этом примере у пользователя по-прежнему будет «/home/htg» в качестве домашнего каталога, если вы явно его не измените (это будет рассмотрено в следующем разделе). Перед выполнением команды убедитесь, что пользователь вышел из системы, чтобы избежать ошибок или непредвиденного поведения.
6. Изменить идентификаторы пользователей
Каждый пользователь в системе Linux идентифицируется не только своим именем пользователя. У него также есть UID (идентификационный номер пользователя). Именно UID действительно имеет значение для системы при проверке владения файлами и прав доступа. Обычно вам не нужно трогать UID, но бывают ситуации, когда это может понадобиться, например, при переносе пользователей между системами с сохранением владения файлами или при исправлении конфликтов, когда у двух пользователей случайно одинаковый UID.
Вот как вы можете изменить UID нашего примерного пользователя ‘htg’ с текущего на 1500:
sudo usermod -u 1500 htg
Параметр -u устанавливает новый UID для пользователя. Затем мы передаем ему новый номер идентификатора пользователя. Убедитесь, что он уникален в системе. После изменения UID подтвердите это, выполнив:
id htg
Вы должны увидеть новый UID в выводе. Одним из положительных моментов является то, что файлы, которые принадлежат пользователю и находятся в его домашнем каталоге, автоматически получат новый UID.
После изменения UID пользователя ‘htg’, файл в его домашнем каталоге также был обновлен до нового UID.
5. Установить или сбросить пароль пользователя
Смена пароля пользователя — одна из самых распространённых административных задач. Обычно для этого используется команда passwd, но, что интересно, команда usermod также может выполнять изменения, связанные с паролем.
Теперь есть нюанс. Команда usermod не шифрует пароль за вас. Это означает, что пароль будет сохранен в открытом виде в файле «/etc/shadow». Вот общая синтаксис:
sudo usermod -p password htg
Вы можете посмотреть файл «/etc/shadow», чтобы убедиться, что пароль был изменён.
sudo grep htg /etc/shadow
Как видите, пароль был изменён, но отображается открытым текстом. Поэтому это немного рискованно. Это может быть полезно в некоторых специфических ситуациях, когда вы пишете скрипт и вам нужно использовать заранее определённые пароли. В большинстве других случаев команда passwd является лучшим вариантом для изменения пароля пользователя.
4. Переопределение домашнего каталога пользователя
По умолчанию, когда вы создаёте пользователя, у него создаётся домашний каталог в «/home/username». Но что если вы хотите переместить этот каталог в другое место, возможно на другой диск? Или, может быть, вы переименовали пользователя и хотите, чтобы домашний каталог соответствовал новому имени? Здесь на помощь приходит опция -d команды usermod.
sudo usermod -d /home/howtogeek htg
Опция -d задает новый путь к домашнему каталогу пользователя. После выполнения этой команды Linux будет воспринимать «/home/howtogeek» как домашний каталог пользователя. Но вот важный момент: это не перемещает файлы. Она просто изменяет ссылку. Если «/home/howtogeek» не существует, пользователь получит пустой (или даже несуществующий) домашний каталог.
Если вы хотите, чтобы файлы из старого домашнего каталога были перемещены в новый, добавьте опцию -m:
sudo usermod -d /home/howtogeek -m htg
Теперь команда usermod фактически переместит всё из «/home/htg» в «/home/howtogeek». Это особенно полезно при переименовании пользователей, чтобы их домашний каталог соответствовал новому имени входа. После перемещения рекомендуется просмотреть каталог и убедиться, что всё перенесено:
ls -la /home/howtogeek
Если вы можете видеть файлы пользователя, операция прошла успешно.
3. Настроить группы пользователя
В Linux группы используются для организации пользователей и контроля их доступа к файлам, каталогам и сервисам. Каждый пользователь принадлежит как минимум к одной основной группе, а также может входить в несколько дополнительных (или второстепенных) групп. Команда usermod позволяет изменять как основную, так и дополнительные группы, а также добавлять или удалять пользователей из существующих групп.
Основная группа обычно создается одновременно с учетной записью пользователя и имеет то же имя, что и пользователь. Вы можете изменить её с помощью опции -g.
sudo usermod -g developers htg
Теперь, всякий раз когда ‘htg’ создаёт файл, он будет принадлежать группе разработчиков (вместо их старой основной группы). Большую часть времени вам нужно будет добавлять пользователей в дополнительные группы, чтобы они могли получить доступ к определённым ресурсам (например, sudo).
sudo usermod -aG sudo htg
Опция -a означает «добавить». Без неё вы рискуете заменить существующие членства в группах. Опция -G добавляет пользователя в указанную группу. Если вы используете -G без -a, вы сообщаете Linux заменить все дополнительные группы на указанные вами.
sudo usermod -G sudo htg
Теперь «htg» находится только в группе sudo (помимо их основной группы). Поэтому будьте осторожны при его использовании, так как вы можете случайно лишить кого-то важных прав.
Невозможно удалить пользователя из группы с помощью команды usermod. Однако вы можете указать группы, членом которых должен быть пользователь. Например, допустим, что ‘htg’ является членом групп employee, admin и IT. Вы хотите удалить пользователя из группы admin. Для этого выполните:
sudo usermod -G employee,IT htg
Теперь 'htg' исключён из группы администраторов, но всё ещё состоит в группах сотрудников и ИТ.
2. Настроить оболочку пользователя
Каждый раз, когда пользователь входит в систему, Linux запускает оболочку — командную среду, через которую они взаимодействуют с системой. По умолчанию обычно используется «/bin/bash», но существует множество других оболочек, таких как «/bin/zsh», «/bin/sh» или даже специализированные ограниченные оболочки.
С помощью команды usermod вы можете изменить оболочку, которая запускается при входе пользователя в систему. Вот пример, где мы меняем оболочку пользователя ‘htg’ на Zsh:
sudo usermod -s /bin/zsh htg
Опция -s задаёт входную оболочку пользователя. Затем мы указываем путь к оболочке, которую хотим установить для пользователя. Теперь, когда ‘htg’ войдёт в систему, его встретит Zsh вместо Bash. Если вы не уверены в путях к различным оболочкам в вашей системе, попробуйте выполнить:
cat /etc/shells
Здесь перечислены доступные оболочки с их путями. После изменения оболочки по умолчанию вы можете проверить, успешно ли это прошло, выполнив:
getent passwd htg
Как вы видите, оболочка по умолчанию для ‘htg’ была изменена с Bash на Zsh. Это полезно, если вы хотите ограничить действия пользователя, предоставив менее мощную оболочку.
1. Блокировка и разблокировка учетных записей пользователей
Иногда вы не хотите удалять пользователя, но при этом хотите предотвратить его вход в систему. Возможно, он находится в отпуске, возможно, покинул компанию, но вам нужно сохранить его файлы, или вы занимаетесь устранением неполадок. Вот тут и приходит на помощь блокировка учетной записи. С помощью usermod вы можете быстро заблокировать или разблокировать пароль учетной записи.
Чтобы заблокировать учетную запись пользователя ‘htg’, я просто выполню:
sudo usermod -L htg
Опция -L блокирует учетную запись. Это работает путем добавления восклицательного знака (!) перед зашифрованным паролем в файле «/etc/shadow.» После этого ‘htg’ не сможет войти в систему с помощью своего пароля. Когда вы будете готовы вернуть доступ, просто выполните:
sudo usermod -U htg
Опция -U разблокирует учетную запись, удаляя ! перед хэшем пароля.
Блокировка влияет только на вход по паролю. Если у пользователя настроены SSH-ключи, он всё равно сможет войти с их помощью, если не предпринять дополнительных мер. Для временных приостановок можно сочетать команду usermod с датами истечения срока действия учётной записи. Например:
sudo usermod -e 2025-09-30 htg
После 30 сентября 2025 года учетная запись будет автоматически отключена.
Будь вы системным администратором или просто интересуетесь управлением пользователями в Linux, эти хитрости окажутся полезными. Существует множество других приёмов для экономии времени в Linux, которым стоит научиться. Вы также можете изучить другие команды, такие как команда nc.










Добавить комментарий