usermod — это утилита командной строки, позволяющая изменять данные для входа пользователя.
В этой статье рассказывается, как использовать команду usermod для добавления пользователя в группу, изменения оболочки пользователя, имени входа, домашнего каталога и т.д.
Синтаксис команды usermod имеет следующий вид:
usermod [options] USER
Только root или пользователи с sudo доступом могут вызывать usermod и изменять учетную запись пользователя. В случае успеха команда не выводит никаких результатов.
Добавить пользователя в группу
Наиболее типичный вариант использования usermod — добавление пользователя в группу.
Чтобы добавить существующего пользователя во вторичную группу, используйте параметры -a -G после имени группы и имени пользователя:
usermod -a -G GROUP USER
Если вы хотите добавить пользователя сразу в несколько групп, укажите группы после -G параметра, разделенные, (запятыми), без пробелов.
Например, чтобы добавить пользователя linuxizeв gamesгруппу, вы должны выполнить следующую команду:
sudo usermod -a -G games linuxize
Всегда используйте опцию -a (добавить) при добавлении пользователя в новую группу. Если вы не укажете этот параметр, пользователь будет удален из групп, не перечисленных после -G параметра.
Если пользователя или группы не существует, команда предупредит вас.
Изменить основную группу пользователя
Чтобы изменить основную группу пользователя, вызовите команду usermod с помощью параметра -g, следующего за именем группы и именем пользователя:
sudo usermod -g GROUP USER
В следующем примере мы меняем основную группу пользователя linuxize на developers:
usermod -g developers linuxize
Каждый пользователь может принадлежать ровно к одной основной группе и нулю или более вторичных групп.
Изменение информации о пользователе
Чтобы изменить информацию GECOS (полное имя пользователя), запустите команду с параметром -c, за которым следует новый комментарий и имя пользователя:
usermod -c "GECOS Comment" USER
Вот пример, показывающий, как добавить дополнительную информацию пользователю linuxize:
usermod -c "Test User" linuxize
Эта информация хранится в файле /etc/passwd.
Изменение домашнего каталога пользователя
В большинстве систем Linux домашние каталоги пользователей названы по имени пользователя и создаются в каталоге /home.
Если по какой-то причине вы хотите изменить домашний каталог пользователя, вызовите usermodкоманду, указав опцию -d, указав абсолютный путь к новому домашнему каталогу и имя пользователя:
usermod -d HOME_DIR USER
По умолчанию команда не перемещает содержимое домашнего каталога пользователя в новый. Чтобы переместить содержимое, используйте опцию -m. Если новый каталог еще не существует, он создается:
usermod -d HOME_DIR -m USER
Вот пример, показывающий, как изменить домашний каталог пользователя www-data на /var/www:
usermod -d /var/www www-data
Изменение пользовательской оболочки по умолчанию
Оболочка по умолчанию — это оболочка, которая запускается после входа в систему. По умолчанию в большинстве систем Linux в качестве оболочки по умолчанию используется Bash Shell.
Чтобы изменить оболочку пользователя по умолчанию, запустите команду с параметром -s, следующим за абсолютным путем оболочки и именем пользователя:
usermod -s SHELL USER
В приведенном ниже примере мы меняем оболочку пользователя на Zsh:
sudo usermod -s /usr/bin/zsh linuxize
Вы можете узнать, какие оболочки доступны в вашей системе, просмотрев /etc/shells содержимое файла.
Изменение UID пользователя
UID (идентификатор пользователя) — это номер, присвоенный каждому пользователю. Он используется операционной системой для обозначения пользователя.
Чтобы изменить UID пользователя, вызовите команду с -uпараметром, следующим за новым UID и именем пользователя:
usermod -u UID USER
В приведенном ниже примере показано, как изменить номер «UID» на «1050»:
sudo usermod -u 1050 linuxize
UID файлов, принадлежащих пользователю и находящихся в домашнем каталоге пользователя, и файл почтового ящика пользователя будет изменен автоматически. Право собственности на все остальные файлы необходимо изменить вручную.
Изменение имени пользователя
Хотя не очень часто, иногда вам может потребоваться изменить имя существующего пользователя. Параметр -l используется для изменения имени пользователя:
usermod -l NEW_USER USER
В приведенном ниже примере мы переименование пользователя linuxizeк lisaна «1050»:
sudo usermod -l linuxize lisa
При изменении имени пользователя вы также можете изменить домашний каталог пользователя, чтобы отразить новое имя пользователя.
Установка даты истечения срока действия пользователя
Дата истечения срока — это дата, когда учетная запись пользователя будет отключена. Чтобы установить дату истечения срока действия пользователя, используйте опцию -e:
sudo usermod -e DATE USER
Срок годности должен быть установлен в формате YYYY-MM-DD.
Например, чтобы отключить пользователя linuxize на 2022-02-21, вы бы выполнить следующую команду:
sudo usermod -e "2022-02-21" linuxize
Чтобы отключить истечение срока действия учетной записи, установите пустую дату истечения срока действия:
sudo usermod -e "" linuxize
Используйте chage команду -l, чтобы просмотреть дату истечения срока действия пользователя:
sudo chage -l linuxize
Last password change : Jul 24, 2018 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
Срок годности хранится в /etc/shadow файле.
Блокировка и разблокировка учетной записи пользователя
Опция -L позволяет заблокировать учетную запись пользователя:
usermod -L USER
Команды вставят восклицательный знак (!) перед зашифрованным паролем. Если поле пароля в /etc/shadow файле содержит восклицательный знак, пользователь не сможет войти в систему, используя аутентификацию по паролю. Другие методы входа в систему, такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены. Если вы хотите заблокировать учетную запись и отключить все методы входа в систему, вам также необходимо установить дату истечения срока действия равной 1.
В следующих примерах показано, как заблокировать пользователя linuxize:
sudo usermod -L linuxize sudo usermod -L -e 1 linuxize
Чтобы разблокировать пользователя, запустите usermodс -Uопцией:
usermod -U USER
Заключение
Мы показали вам, как использовать команду usermod для установки информации об учетной записи пользователя.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Управление пользователями системы и их основными и дополнительными группами – одна из важных задач при администрировании Linux. С ней отлично справляется встроенная команда usermod.
В этой статье будет рассмотрена команда usermod Linux. Сначала мы разберем её синтаксис и опции, а затем перейдем к конкретным примерам её использования, которые могут оказаться для вас полезными.
Утилита usermod нужна для управления пользователями Linux, их основными и дополнительными группами. При ее выполнении в терминале нужно указать опции и конкретного пользователя, к которому применяются изменения. Синтаксис здесь следующий:
$ usermod опции имя_пользователя
Рассмотрим опции, которые будут использоваться в этой статье:
- —a, —append – добавить пользователя в одну или несколько дополнительных групп. Опция будет работать только вместе с опцией -G.
- —b, —badnames – разрешить использование имен, которые не соответствуют стандартам.
- —d, —home – указать новое местоположение домашнего каталога пользователя. При использовании опции -m содержимое текущего домашнего каталога будет перемещено на новое место.
- —e, —expiredate – указать дату, при наступлении которой учетная запись будет отключена. Дата вводится в формате ГГГГ-ММ-ДД. Если использовать эту опцию без указания даты, то отключение пользователя будет отменено.
- —f, —inactive – установить количество дней для блокировки пользователя, которое должно пройти после устаревания пароля. При значении -1 опция блокировки отключается, а при значении 0 блокировка случится сразу же после устаревания.
- —g, —gid – выбрать новую основную группу для пользователя и для файлов в его домашнем каталоге. Нужно задать имя или номер новой группы.
- —G, —groups – указать список дополнительных групп, в которые должен входить пользователь. Между собой группы разделяются запятой. Если пользователь входит в дополнительную группу, которая не была указана в списке, то он будет из нее удалён. Но при использовании опции -a можно добавлять новые дополнительные группы, не удаляя старые.
- —l, —login – изменить имя пользователя на новое. Данная опция не затрагивает никакие другие данные. А значит, название домашнего каталога и почты придется изменять вручную, чтобы они совпадали с новым именем пользователя.
- —L, —lock – заблокировать пароль пользователя. Эта опция помещает символ ! (восклицательный знак) перед паролем в зашифрованном виде, отключая его. Данную опцию нельзя использовать с -p и -U.
- —m, —move-home – изменить местоположение домашнего каталога пользователя. Опция будет работать только вместе с -d. Утилита попытается обновить права собственности на файлы и скопировать режимы, ACL и расширенные атрибуты.
- —o, —non-unique – разрешить заменить идентификационный номер пользователя на не уникальное значение. Работает в паре с опцией -u.
- —p, —password – изменить пароль в зашифрованном виде.
- —R, —root – выполнить chroot в указанный каталог и использовать его вместо корневого каталога / с хранящимися в нем конфигурационными файлами.
- —s, —shell – указать новую командную оболочку shell для пользователя. При использовании опции -s с пустым значением будет выбрана оболочка по умолчанию.
- —u, —uid – изменить параметр UID (числовой идентификатор пользователя). Данные изменения автоматически применятся к почтовому ящику и содержимому домашнего каталога. Для остальных файлов UID придется изменять вручную.
- —U, —unlock – разблокировать пароль пользователя. Данная опция убирает символ ! (восклицательный знак) перед паролем в зашифрованном виде, разрешая использовать его для входа. Не сработает с -p и -L.
Все доступные опции с исходным описанием для данной утилиты вы можете просмотреть в терминале, выполнив следующую команду:
man usermod
На этом вводная часть статьи завершена. Теперь самое время рассмотреть конкретные примеры использования данной утилиты для администрирования группами в Linux.
Примеры использования usermod
Разберем типовые задачи, которые могут пригодиться вам для управления учетными записями на компьютере или ноутбуке.
1. Изменить основную группу
Посмотреть список всех групп, доступных в системе, можно в файле /etc/group, например, с помощью редактора vi в терминале:
vi /etc/group
Для смены основной группы нужна опция -g. Синтаксис здесь следующий:
$ usermod -g имя_основной_группы имя_пользователя
Задача – изменить основную группу для пользователя test_user на test_group (GID – 1001). Так будет выглядеть команда в нашем случае:
sudo usermod -g test_group test_user
Затем можно проверить что изменения применились с помощью команды id. В результатах вывода команды id нам интересен пункт GID. А еще вместо названия группы можно использовать ее идентификатор GID (1001 в нашем случае):
sudo usermod -g 1001 test_user
2. Добавить в группу
Допустим пользователь gregory2 обладает ограниченными правами, ведь используется в редких случаях для удаленного управления системой. Его нужно включить в группу plugdev, чтобы иметь полный доступ ко внешним устройствам, например, подключенным по USB жестким дискам. Сначала проверим его текущие группы командой:
groups gregory2
С этой задачей поможет параметр —G. Но его обязательно нужно использовать вместе с -a, чтобы добавить новую группу, не удаляя старые:
sudo usermod -a -G plugdev gregory2
Более подробная инструкция по добавлению пользователя в группу с помощью команды usermod описана в отдельной статье. Теперь вы знаете как добавить пользователя в группу usermod.
3. Удалить из группы
Дальше давайте рассмотрим как удалить пользователя из группы usermod. Эта утилита не слишком хорошо справляется с удалением пользователя из групп, ведь нужной опции в ней просто нет. Но с помощью -G можно указать, в каких дополнительных группах пользователь останется, чтобы удалить все остальные.
В качестве примера возьмем уже упомянутую учетную запись gregory2. Задача – оставить ее только в группе disk, убрав cdrom и plugdev. В таком случае нужно для usermod задать опцию -G и ту группу, которая останется:
sudo usermod -G disk gregory2
А если вы хотите удалить все дополнительные группы для конкретного пользователя, передайте опции -G пустое значение:
sudo usermod -G "" gregory2
В подробностях удаление пользователя из группы мы рассказывали в отдельной статье. Помимо утилиты usermod, в ней разобрана работа с gpasswd и deluser.
4. Изменить домашнюю папку
Чтобы увидеть текущий адрес домашней папки конкретно пользователя, посмотрите содержимое файла /etc/passwd, например, с помощью утилиты grep:
grep gregory2 /etc/passwd
Конкретный каталог выводится с первым символом / (косая черта).
Здесь стоит отдельно рассмотреть два сценария: выбор другого местоположения для домашнего каталога и перемещение текущего домашнего каталога со всем его содержимым на новое место.
Если вы хотите просто изменить домашнюю папку, то воспользуйтесь опцией -d, указав новый адрес. Утилита автоматически создаст папку, если ее нет. В качестве примера возьмем путь /home/new-dir:
sudo usermod -d /home/new-dir gregory2
Проверим изменения с помощью уже упомянутой утилиты grep:
grep gregory2 /etc/passwd
А если вы хотите переместить домашнюю папку, сохранив все содержимое, то дополните опцию -d опцией -m, опять же, указав новый путь. В качестве примера возьмем путь /home/gregory-new:
sudo usermod -m -d /home/gregory-new gregory2
Проверить местоположение новой папки можно с помощью grep, а убедиться в копировании содержимого – через файловый менеджер Linux.
5. Изменить оболочку
Просмотреть весь список доступных в системе оболочек получится в файле /etc/shells. Откройте его в редакторе vi:
vi /etc/shells
Просмотреть оболочку конкретного пользователя можно в уже упомянутом файле /etc/passwd:
grep gregory2 /etc/passwd
Нужная информация идет после домашнего каталога.
Для того чтобы поменять оболочку shell используйте опцию -s. В качестве примера возьмем оболочку /usr/bin/dash:
sudo usermod -s /usr/bin/dash gregory2
6. Изменить UID
UID – числовой идентификатор пользователя. Для его просмотра воспользуйтесь утилитой id:
id gregory2
Для изменения этого значения нужна опция -u. При этом новый номер должен быть неотрицательным (число 0 допустимо) и уникальным. В качестве примера возьмем 9138:
sudo usermod -u 9138 gregory2
Вы можете задать неуникальный номер UID, добавив к исходной команде опцию —o. В качестве примера возьмем идентификатор 0, который по умолчанию закреплен за группой root:
sudo usermod -o -u 0 gregory2
Не забывайте, что данные изменения автоматически применяются только к домашнему каталогу с его содержимым и к почтовому ящику.
7. Изменить логин
Для изменения логина (имени) пользователя предназначена опция -l. Но при этом она не затрагивает название домашнего каталога. Если вас это устраивает, то можете воспользоваться ей. Синтаксис:
$ sudo usermod -l новое_имя старое_имя
Вот как это выглядит с пользователем gregory2, который нужно переименовать в gregory3:
sudo usermod -l gregory3 gregory2
Ну а еще вы можете использовать эту команду вместе с перенесением домашней папки, например, в /home/gregory3:
sudo usermod -l gregory3 -m -d /home/gregory3 gregory2
8. Изменить пароль
Опция —password предназначена для изменения пароля в зашифрованном виде. А значит, так просто ей воспользоваться не получится. Необходимо добавить к ней команду openssl passwd для шифрования пароля. Для того чтобы изменить пароль на xz3 выполните:
sudo usermod --password $(openssl passwd -6 'xz3') gregory
В результате пароль изменится сразу же после ее выполнения.
9. Заблокировать пользователя
Для блокировки пользователя пригодится опция -L, которая блокирует вход по паролю:
sudo usermod -L gregory2
При использовании этой опции перед паролем пользователя в файле /etc/shadow добавляется восклицательный знак и пользователь не сможет больше войти в систему по паролю. Однако, другие способы входа ещё доступны. Для полной блокировки учетной записи к команде нужно добавить опцию —expiredate со значением 1:
sudo usermod --expiredate 1 -L gregory2
Для отмены блокировки в таком случае сработает команда с опциями -U и -e с пустым значением:
sudo usermod --expiredate "" -U gregory2
А еще с помощью —expiredate можно указать точную дату для блокировки в формате ГГГГ-ММ-ДД. Вот как будет выглядеть команда для 28 января 2023 года:
sudo usermod --expiredate 2023-01-28 gregory2
Посмотреть срок действия учетной записи получится через утилиту chage с опцией -l:
sudo chage -l gregory2
Выводы
Команда usermod linux позволяет достаточно удобно управлять группами пользователей, а также менять информацию о нём. Ну а если вы хотите более подробно разобраться с самими группами и их устройством в различных дистрибутивах Linux, ознакомьтесь с этим материалом. В нем детально рассмотрена эта тема, место хранения файла с группами и другая полезная информация.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
У каждого пользователя в Unix есть своя домашняя папка, предназначенная для хранения данных пользователя в месте, доступном только для него. О том, как узнать домашнюю директорию любого пользователя можно прочитать по → этой ссылке. О том, где и как создаются записи о домашнем каталоге пользователя написано в → этой статье. О том, как поменять домашнюю папку пользователя по умолчанию в Linux → по этой ссылке. Все перечисленные сведения полезны и могут помочь ручками поправить путь до домашнего каталога пользователя, однако для его смены есть удобная команда linux — usermod. То, как с её помощью быстро поменять домашнюю директорию для пользователя и рассмотрим ниже.
Зная название команды, лично я лезу в подсказки операционной системе по ней. Чего и всем советую. =) Данный случай не является исключением. Сперва посмотрим на те опции, которые описаны в хэлпе:
[email protected]:~# usermod -h
Usage: usermod [options] LOGIN
Options:
-c, --comment COMMENT new value of the GECOS field
-d, --home HOME_DIR new home directory for the user account
-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-g, --gid GROUP force use GROUP as new primary group
-G, --groups GROUPS new list of supplementary GROUPS
-a, --append append the user to the supplemental GROUPS
mentioned by the -G option without removing
him/her from other groups
-h, --help display this help message and exit
-l, --login NEW_LOGIN new value of the login name
-L, --lock lock the user account
-m, --move-home move contents of the home directory to the
new location (use only with -d)
-o, --non-unique allow using duplicate (non-unique) UID
-p, --password PASSWORD use encrypted password for the new password
-R, --root CHROOT_DIR directory to chroot into
-s, --shell SHELL new login shell for the user account
-u, --uid UID new UID for the user account
-U, --unlock unlock the user account
-v, --add-subuids FIRST-LAST add range of subordinate uids
-V, --del-subuids FIRST-LAST remove range of subordinate uids
-w, --add-subgids FIRST-LAST add range of subordinate gids
-W, --del-subgids FIRST-LAST remove range of subordinate gids
-Z, --selinux-user SEUSER new SELinux user mapping for the user account
Как видно, опций у команды usermod более, чем достаточно, но для текущей цели (смены домашнего каталога пользователя) понадобится опция -d. Её и рассмотрим более подробно.
Как с помощью опции -d команды usermod в линукс поменять домашнюю директорию пользователя
Рассмотрим на живом примере. Создадим нового пользователя (как это сделать → подробно тут):
[email protected]:~# adduser newuser
Посмотрим на запись об этом пользователе в файле /etc/passwd. Она имеет следующий вид:
[email protected]:~# cat /etc/passwd
...
newuser:x:1000:1000:,,,:/var/www/newuser:/bin/bash
...
Посмотрим содержимое этой домашней папки (она пустая):
[email protected]:~# ls -l /var/www/newuser
total 0
[email protected]:~# tree /var/www/newuser
/var/www/newuser
0 directories, 0 files
И теперь сменим домашнюю папку этому пользователю:
[email protected]:~# usermod -d /var/www/newuser2 newuser
[email protected]:~# ls -l /var/www/newuser2
ls: cannot access '/var/www/newuser2': No such file or directory
[email protected]:~# cat /etc/passwd
...
newuser:x:1000:1000:,,,:/var/www/newuser2:/bin/bash
...
- Командой
usermod -d /var/www/newuser2 newuserпрописали папку/var/www/newuser2в качестве домашней для пользователяnewuser - Но директория при этом не была создана. Это видно при попытке её прочитать:
ls -l /var/www/newuser2 - Однако, запись в файле
/etc/passwdбыла изменена.
Можно конечно создать эту папку вручную командой mkdir (читать тут), а потом прописать ей владельца и группу командой chown (читать тут), но проще и безболезненнее воспользоваться дополнительной опцией -m команды usermod. Важно, чтобы папка пользователя содержала хоть что-нибудь в себе. Даже просто пустой файл. Тогда и только тогда, новая папка будет создана и в неё будет перенесено содержимое старой папки.
Поэтому для того, чтобы поменять домашнюю директорию для пользователя linux, нужно воспользоваться командой usermod с опцией -md. При этом в папке пользователя должны храниться какие-нибудь данные.
Формат команды переноса:
usermod -md /путь_до_новой_домашней_папки username
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Выберите, то, чем пользуетесь чаще всего:
I will explain the full steps for modifying the home directory defined as $HOME for let us say user elise. The default directory of this admin user was set by the System install of Ubuntu and is /home/elise as seen from the Terminal cmd. line:
$ echo $HOME
/home/elise
Now I want it to be /home/ubuntu-xenial/elise. I use this in order to properly upgrade to a newer release of Ubuntu, as you can perform this way, a fresh install and later move the hidden files from your previous home directory following an automatic install of all packages installed in the previous Ubuntu release.
To check the user modification use:
$ sudo grep -E --color 'elise' /etc/passwd
elise:x:1000:1000:Elise,,,:/home/elise:/bin/bash
First you cannot modify a logged user. So if you don’t have another admin user you will have to create one. We will create here a tempuser with a home directory to properly login, using useradd, so we will use the -m, --create-home option. As seen in the manpage there is a long and abbreviated command name, here are both (Use only one):
$ sudo useradd --home-dir /home/tempuser --create-home --shell /bin/bash --groups sudo tempuser
$ sudo useradd -d /home/tempuser -m -s /bin/bash -G sudo tempuser
Then we create a password for tempuser:
$ sudo passwd tempuser
Type in a new password for the temporary user when prompted. Reboot and log in as tempuser. Then, open up a Terminal.
We first create the new path for home directory, not the new home directory as it will be created automatically by usermod if it is does not already exist:
$ sudo mkdir -p /home/ubuntu-xenial
Then we create the new home directory and move all the content of the previous one (long and abbreviated command — Use only one):
$ sudo usermod --home /home/ubuntu-xenial/elise --move-home elise
$ sudo usermod -d /home/ubuntu-xenial/elise -m elise
Check the update:
$ sudo grep -E --color 'elise' /etc/passwd
elise:x:1000:1000:Elise,,,:/home/ubuntu-xenial/elise:/bin/bash
Success, the files and folders have been moved with the appropriate ownership. Then reboot as your regular login here elise and remove the tempuser, as you no longer need it.
$ sudo userdel tempuser
As a home folder was created:
$ sudo rm -r /home/tempuser
That’s it.
Вы можете создать нового пользователя с помощью команды useradd, но если вы неправильно настроили учетную запись, вам не обязательно удалять пользователя. Вы можете изменить настройки учетной записи пользователя с помощью команды usermod в Linux.
Usermod (short for user modification) позволяет вам изменять различные аспекты учетной записи пользователя. Вы можете изменить домашний каталог и оболочку пользователя. Вы можете добавить пользователя в разные группы или заблокировать аккаунт.
Поскольку вы имеете дело с управлением учетными записями пользователей, вы должны иметь права root или sudo для запуска команды usermod.
sudo usermod [options] username
Позвольте нам показать вам несколько примеров.
1. Измените имя пользователя
Вы можете изменить имя пользователя с помощью опции -l команды usermod:
sudo usermod -l new_username old_username
Имейте в виду, что кроме имени пользователя, ничего не меняется само по себе. Вам придется вручную изменить домашний каталог и почтовую папку.
2. Измените домашний каталог пользователя
Вы можете изменить домашний каталог пользователя на другой каталог.
sudo usermod -d new_home_dir user_name
Имейте в виду, что он изменит домашний каталог, даже если каталог не существует, но он не будет создавать его самостоятельно.
Лучший способ изменить домашний каталог пользователя – использовать опцию -m с -d. Таким образом, он создаст новый домашний каталог, если он не существует. Кроме того, он также будет перемещать содержимое старого домашнего каталога в новый домашний каталог с правильными правами доступа к файлам и владельцем.
sudo usermod -md new_home_dir user_name
Вот пример:
destroyer@andreyex:~$ sudo usermod -md /home/mynewhome myuser destroyer@andreyex:~$ ls -l /home/mynewhome/ total 12 -rw-r--r-- 1 myuser myuser 8980 Apr 16 2018 examples.desktop -rw-rw-r-- 1 myuser myuser 0 Jan 17 11:15 morefile.txt -rw-rw-r-- 1 myuser myuser 0 Jan 17 11:15 myfile.txt
Порядок m и d также важен здесь.
3. Измените логин оболочки пользователя
Вы также можете изменить оболочку пользователя по умолчанию с помощью команды usermod. Допустим, вы хотите изменить оболочку по умолчанию на zsh, вот что вы можете сделать:
sudo usermod -s /bin/zsh username
4. Измените группу пользователей по умолчанию
Вы также можете изменить группу пользователя по умолчанию. Это особенно полезно, когда вы изменили имя пользователя. Было бы неплохо изменить группу пользователей по умолчанию.
sudo usermod -g new_default_group_name username
5. Добавьте пользователя в другие группы
Это, пожалуй, наиболее распространенное использование команды usermod. Если вы хотите добавить пользователя в список sudoer, все, что вам нужно сделать, это добавить пользователя в группу sudo.
sudo usermod -aG group_name username
Вы заметили, что мы использовали здесь опцию -aG, а не только -G. Это потому, что если вы используете только опцию -G, она заменит пользовательские группы новой группой, которую вы указали.
Вот почему вы должны использовать опцию добавления -a, чтобы пользователь был добавлен в новую группу дополнительно, а не удален из ее предыдущих групп.
6. Блокировка и разблокировка учетной записи пользователя
Вы можете заблокировать учетную запись пользователя в Linux с помощью опции команды usermod -L. Заблокированный пользователь не может войти в систему.
sudo usermod -L username
Вы также можете разблокировать пользователя с помощью опции -U:
sudo usermod -U username
7. Установите срок действия учетной записи пользователя.
Предположим, стажер присоединится к вашей организации на два месяца. Вам придется удалить учетную запись пользователя, как только стажер уходит. Вы можете играть в «умного» здесь и установить дату истечения срока действия для учетной записи стажера, чтобы автоматически отключилась учетная запись.
Чтобы установить срок действия для учетной записи пользователя, вы можете использовать опцию -e с датой в формате YYYY-MM-DD.
sudo usermod -e 2020-04-01 username
8. Измените UID пользователя
Вы можете изменить UID (идентификатор пользователя) пользователя с помощью опции -u:
sudo usermod -u UID username
В конце концов…
Есть еще несколько вариантов, которые вы можете изучить .
На наш взгляд, то, что вы только что видели, является наиболее распространенными примерами команды usermod. Если у вас есть какие-либо вопросы или предложения, дайте мне знать.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Содержание
Эта статья не закончена. Вы можете помочь проекту добавив:
-
вступление
-
скриншоты
-
ссылки
Управление пользователями
Добавление пользователя
Добавление пользователя осуществляется при помощи команды useradd. Пример использоания:
sudo useradd vasyapupkin
Эта команда создаст в системе нового пользователя vasyapupkin. Чтобы изменить настройки создаваемого пользователя, вы можете использовать следующие ключи:
| Ключ | Описание |
|---|---|
| -b | Базовый каталог. Это каталог, в котором будет создана домашняя папка пользователя. По умолчанию /home |
| -с | Комментарий. В нем вы можете напечатать любой текст. |
| -d | Название домашнего каталога. По умолчанию название совпадает с именем создаваемого пользователя. |
| -e | Дата, после которой пользователь будет отключен. Задается в формате ГГГГ-ММ-ДД. По умолчанию отключено. |
| -f | Количество дней, которые должны пройти после устаревания пароля до блокировки пользователя, если пароль не будет изменен (период неактивности). Если значение равно 0, то запись блокируется сразу после устаревания пароля, при -1 — не блокируется. По умолчанию -1. |
| -g | Первичная группа пользователя. Можно указывать как GID, так и имя группы. Если параметр не задан будет создана новая группа название которой совпадает с именем пользователя. |
| -G | Список вторичных групп в которых будет находится создаваемый пользователь |
| -k | Каталог шаблонов. Файлы и папки из этого каталога будут помещены в домашнюю папку пользователя. По умолчанию /etc/skel. |
| -m | Ключ, указывающий, что необходимо создать домашнюю папку. По умолчанию домашняя папка не создается. |
| -p | Зашифрованный пароль пользователя. По умолчанию пароль не задается, но учетная пользователь будет заблокирован до установки пароля |
| -s | Оболочка, используемая пользователем. По умолчанию /bin/sh. |
| -u | Вручную задать UID пользователю. |
Параметры создания пользователя по умолчанию
Если при создании пользователя не указываются дополнительные ключи, то берутся настройки по умолчанию. Эти настройки вы можете посмотреть выполнив
useradd -D
Результат будет примерно следующий:
GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no
Если вас не устраивают такие настройки, вы можете поменять их выполнив
sudo useradd -D -s /bin/bash
где -s это ключ из таблицы выше.
Таким образом могут быть заданы параметры, определяемые только ключами: -b -e -f -g -s
Изменение пользователя
Изменение параметров пользователя происходит с помощью утилиты usermod. Пример использования:
sudo usermod -c "Эта команда поменяет комментарий пользователю" vasyapupkin
usermod использует те же опции, что и useradd.
Изменение пароля
Изменить пароль пользователю можно при помощи утилиты passwd.
sudo passwd vasyapupkin
passwd может использоваться и обычным пользователем для смены пароля. Для этого пользователю надо ввести
passwd
и ввести старый и новый пароли.
Основные ключи passwd:
| Ключ | Описание |
|---|---|
| -d | Удалить пароль пользователю. После этого пароль будет пустым, и пользователь сможет входить в систему без предъявления пароля. |
| -e | Сделать пароль устаревшим. Это заставит пользователя изменить пароль при следующем входе в систему. |
| -i | Заблокировать учетную запись пользователя по прошествии указанного количества дней после устаревания пароля. |
| -n | Минимальное количество дней между сменами пароля. |
| -x | Максимальное количество дней, после которого необходимо обязательно сменить пароль. |
| -l | Заблокировать учетную запись пользователя. |
| -u | Разблокировать учетную запись пользователя. |
Установка пустого пароля пользователя
Супер пользователь с помощью утилит командной строки passwd и usermod или путем редактирования файла /etc/shadow может удалить пароль пользователь, дав возможность входить в систему без указания пароля.
sudo passwd -d vasyapupkin
или
sudo usermod -p "" vasyapupkin
Если учетная запись пользователя в этот момент была заблокирована командой passwd -l, то указанные выше команды так же снимут эту блокировку
Установка пустого пароля может быть полезна как временное решение проблемы в ситуации, когда пользователь забыл свой пароль или не может его ввести из-за проблем с раскладкой клавиатуры.
После этого имеет смысл принудить пользователя установить себе новый пароль при следующем входе в систему
sudo passwd -e vasyapupkin
Получение информации о пользователях
-
w– вывод информации (имя пользователя, рабочий терминал, время входа в систему, информацию о потребленных ресурсах CPU и имя запущенной программы) о всех вошедших в систему пользователях. -
who– вывод информации (имя пользователя, рабочий терминал, время входа в систему) о всех вошедших в систему пользователях. -
who am iилиwhoamiилиid– вывод вашего имени пользователя. -
users– вывод имен пользователей, работающих в системе. -
id имя_пользователя– вывод о идентификаторах пользователя: его uid, имя_пользователя, gid и имя первичной группы и список групп в которых состоит пользователь -
groups имя_пользователя– вывод списка групп в которых состоит пользователь.
Удаление пользователя
Для того, чтобы удалить пользователя воспользуйтесь утилитой userdel. Пример использования:
sudo userdel vasyapupkin
userdel имеет всего два основных ключа:
| Ключ | Описание |
|---|---|
| -f | Принудительно удалить пользователя, даже если он сейчас работает в системе. |
| -r | Удалить домашний каталог пользователя. |
Управление группами
Создание группы
Программа groupadd создаёт новую группу согласно указанным значениям командной строки и системным значениям по умолчанию. Пример использования:
sudo groupadd testgroup
Основные ключи:
| Ключ | Описание |
|---|---|
| -g | Установить собственный GID. |
| -p | Пароль группы. |
| -r | Создать системную группу. |
Изменение группы
Сменить название группы, ее GID или пароль можно при помощи groupmod. Пример:
sudo groupmod -n newtestgroup testgroup #Имя группы изменено с testgroup на newtestgroup
Опции groupmod:
| Ключ | Описание |
|---|---|
| -g | Установить другой GID. |
| -n | Новое имя группы. |
| -p | Изменить пароль группы. |
Удаление группы
Удаление группы происходит так:
sudo groupdel testgroup
groupdel не имеет никаких дополнительных параметров.
Файлы конфигурации
Изменять параметры пользователей и групп можно не только при помощи специальных утилит, но и вручную. Все настройки хранятся в текстовых файлах. Описание каждого из них приведено ниже.
/etc/passwd
В файле /etc/passwd хранится вся информация о пользователях кроме пароля. Одна строка из этого файла соответствует описанию одного пользователя. Примерное содержание строки таково:
vasyapupkin:x:1000:1000:Vasya Pupkin:/home/vpupkin:/bin/bash
Строка состоит из нескольких полей, каждое из которых отделено от другого двоеточием. Значение каждого поля приведено в таблице.
| № | Поле | Описание |
|---|---|---|
| 1 | vasyapupkin | Имя пользователя для входа в систему. |
| 2 | x | Необязательный зашифрованный пароль. |
| 3 | 1000 | Числовой идентификатор пользователя (UID). |
| 4 | 1000 | Числовой идентификатор группы (GID). |
| 5 | Vasya Pupkin | Поле комментария |
| 6 | /home/vpupkin | Домашний каталог пользователя. |
| 7 | /bin/bash | Оболочка пользователя. |
Второе и последнее поля необязательные и могут не иметь значения.
/etc/group
В /etc/group, как очевидно из названия хранится информация о группах. Она записана в аналогичном /etc/passwd виде:
vasyapupkin:x:1000:vasyapupkin,petya
| № | Поле | Описание |
|---|---|---|
| 1 | vasyapupkin | Название группы |
| 2 | x | Необязательный зашифрованный пароль. |
| 3 | 1000 | Числовой идентификатор группы (GID). |
| 4 | vasyapupkin,petya | Список пользователей, находящихся в группе. |
В этом файле второе и четвертое поля могут быть пустыми.
/etc/shadow
Файл /etc/shadow хранит в себе пароли, по этому права, установленные на этот файл, не дают считать его простому пользователю. Пример одной из записей из этого файла:
vasyapupkin:$6$Yvp9VO2s$VfI0t.o754QB3HcvVbz5hlOafmO.LaHXwfavJHniHNzq/bCI3AEo562hhiWLoBSqxLy7RJJNm3fwz.sdhEhHL0:15803:0:99999:7:::
Здесь:
| № | Поле | Описание |
|---|---|---|
| 1 | vasyapupkin | Имя пользователя для входа в систему. |
| 2 | $6$Yvp9VO2s$VfI0t.o754QB3HcvVbz5hlOafmO.LaHXwfavJHniHNzq/bCI3AEo562hhiWLoBSqxLy7RJJNm3fwz.sdhEhHL0 | Необязательный зашифрованный пароль. |
| 3 | 15803 | Дата последней смены пароля. |
| 4 | 0 | Минимальный срок действия пароля. |
| 5 | 99999 | Максимальный срок действия пароля. |
| 6 | 7 | Период предупреждения о пароле. |
| 7 | Период неактивности пароля. | |
| 9 | Дата истечения срока действия учётной записи. |
Управление пользователями и группами через GUI
В текущей версии Ubuntu отсутствует штатная утилита управления группами пользователей системы, поэтому по умолчанию все действия с группами необходимо выполнять в консоли. Однако для этих целей существует специальная утилита «Пользователи и группы».
Установка
Пакет gnome-system-tools находится в репозитории Ubuntu, поэтому ставится одной командой:
sudo apt-get install gnome-system-tools

Управление группами
Для добавления, удаления групп, а также добавленияудаления пользователей виз конкретных групп, необходимо в главном окне нажать кнопку «Управление группами», после чего вы увидите окно, отображающее все присутствующие в системе группы:
в котором выбрав нужную группу и нажав «Свойства» можно отметить галочкой пользователей, которых необходимо внести в группу.
Смотрите также
Overview
In this tutorial, you will learn how to a rename a user in CentOS, Debian, Ubuntu and most other Linux distributions. More than that, you will also learn how to rename thier home directory, primary group, and change their UID.
Renaming Users in Linux
Linux provides a tool named usermod specifically for making modifications to user accounts. In this case we are using it to rename a user account, which is done using the -l flag.
sudo usermod -l <new-name> <old-name>
For example, to rename a user named student1 to johndoe, you would run the usermod command as follows.
sudo usermod -l johndoe student1
The -l flag will only change the user’s name. All other things attached to the user will remain unaffected, such as home directory. and UID.
Changing a User’s Home Directory in Linux
After renaming a user it may make sense to change their home directory, too. Otherwise, it would cause a lot of confusion trying to explain why johndoe‘s home directory is /home/student.
To change the user’s home directory we once again use the usermod command. However, this time we need to perform to actions: change the home directory to a new path, and move the contents from the old path into the new path.
We set the new home directory path using the -d or --home flag with the path to the new directory. We must also use the -m flag to copy the contents of the old home directory into the new one.
sudo usermod -d /home/joedoe -m johndoe
Renaming a User’s Group
Every user on a Linux system is created with a group of the same name. When we change the name of a user their group name is left untouched. It’s a good idea to also change the user’s primary group name as well.
To change a user’s primary group name we use the groupmod command with the -n flag. We must supply the old name and a new name.
For example, to rename the newly renamed user johndoe‘s primary group to johndoe from student1, we would run the following command.
sudo groupmod -n johndoe student1
Changing a User’s UID
A little more rare than renaming a user or changing their home directory is changing their UID. A User’s UID is their unique ID on a Linux system. When we assign permissions to file and directories, we use their UID. Processes started by a user are also executed using a user’s UID.
To change a user’s ID we use the usermod command with the -u flag, followed by a new, unique integer.
For example, to set johndoes UID to 5001, we would run the following usermod command.
sudo usermod -u 5001 johndoe






















