Linux назначить директорию пользователя

Команда usermod в Linux

Управление пользователями системы и их основными и дополнительными группами – одна из важных задач при администрировании Linux. С ней отлично справляется встроенная команда usermod.

В этой статье будет рассмотрена команда usermod Linux. Сначала мы разберем её синтаксис и опции, а затем перейдем к конкретным примерам её использования, которые могут оказаться для вас полезными.

Синтаксис и опции usermod

Утилита 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.
Читайте также:  Run linux commands on window

Все доступные опции с исходным описанием для данной утилиты вы можете просмотреть в терминале, выполнив следующую команду:

На этом вводная часть статьи завершена. Теперь самое время рассмотреть конкретные примеры использования данной утилиты для администрирования группами в Linux.

Примеры использования usermod

Разберем типовые задачи, которые могут пригодиться вам для управления учетными записями на компьютере или ноутбуке.

1. Изменить основную группу

Посмотреть список всех групп, доступных в системе, можно в файле /etc/group, например, с помощью редактора vi в терминале:

4GoNNU0yuQqGqFVGHDANsgB1l2Iwg7dGjiNPxubdRySJv4f2u+QxdzT3bwAAAAASUVORK5CYII=

Для смены основной группы нужна опция -g. Синтаксис здесь следующий:

$ usermod -g имя_основной_группы имя_пользователя

Задача – изменить основную группу для пользователя test_user на test_group (GID – 1001). Так будет выглядеть команда в нашем случае:

sudo usermod -g test_group test_user

H4hKU02jTK6iEVqFAQdsgxxg3YUo7NCtgdP4s7FZxyFp4v8BscBkSSzdx5UAAAAASUVORK5CYII=

Затем можно проверить что изменения применились с помощью команды id. В результатах вывода команды id нам интересен пункт GID. А еще вместо названия группы можно использовать ее идентификатор GID (1001 в нашем случае):

sudo usermod -g 1001 test_user

2. Добавить в группу

Допустим пользователь gregory2 обладает ограниченными правами, ведь используется в редких случаях для удаленного управления системой. Его нужно включить в группу plugdev, чтобы иметь полный доступ ко внешним устройствам, например, подключенным по USB жестким дискам. Сначала проверим его текущие группы командой:

wdKYcFWIGzA8gAAAABJRU5ErkJggg==

С этой задачей поможет параметр —G. Но его обязательно нужно использовать вместе с -a, чтобы добавить новую группу, не удаляя старые:

sudo usermod -a -G plugdev gregory2

B6LSVNMok6tohFZhwAHbIAdYdyEKO3Rr4DT+bGzWcUia+H8hovOAwqigzQAAAABJRU5ErkJggg==

Более подробная инструкция по добавлению пользователя в группу с помощью команды usermod описана в отдельной статье. Теперь вы знаете как добавить пользователя в группу usermod.

3. Удалить из группы

Дальше давайте рассмотрим как удалить пользователя из группы usermod. Эта утилита не слишком хорошо справляется с удалением пользователя из групп, ведь нужной опции в ней просто нет. Но с помощью -G можно указать, в каких дополнительных группах пользователь останется, чтобы удалить все остальные.

В качестве примера возьмем уже упомянутую учетную запись gregory2. Задача – оставить ее только в группе disk, убрав cdrom и plugdev. В таком случае нужно для usermod задать опцию -G и ту группу, которая останется:

sudo usermod -G disk gregory2

B7uvyGWtrOI5AAAAAElFTkSuQmCC

А если вы хотите удалить все дополнительные группы для конкретного пользователя, передайте опции -G пустое значение:

H4hKU02jTK6iEVqFAQdsgxxg3YUo7NCtgdP4s7FZxyFp4v8HnuCgSRoATqQAAAAASUVORK5CYII=

В подробностях удаление пользователя из группы мы рассказывали в отдельной статье. Помимо утилиты usermod, в ней разобрана работа с gpasswd и deluser.

Читайте также:  Epson l210 драйвер линукс

4. Изменить домашнюю папку

Чтобы увидеть текущий адрес домашней папки конкретно пользователя, посмотрите содержимое файла /etc/passwd, например, с помощью утилиты grep:

Конкретный каталог выводится с первым символом / (косая черта).

H4hKU02jTK6iEVqFAQdsgxxg3YUo7NCtgdP4s7FZxyFp4v8B4nMtmlyj3noAAAAASUVORK5CYII=

Здесь стоит отдельно рассмотреть два сценария: выбор другого местоположения для домашнего каталога и перемещение текущего домашнего каталога со всем его содержимым на новое место.

Если вы хотите просто изменить домашнюю папку, то воспользуйтесь опцией -d, указав новый адрес. Утилита автоматически создаст папку, если ее нет. В качестве примера возьмем путь /home/new-dir:

sudo usermod -d /home/new-dir gregory2

dfHwAAAABJRU5ErkJggg==

Проверим изменения с помощью уже упомянутой утилиты grep:

OkXAUAAAAASUVORK5CYII=

А если вы хотите переместить домашнюю папку, сохранив все содержимое, то дополните опцию -d опцией -m, опять же, указав новый путь. В качестве примера возьмем путь /home/gregory-new:

sudo usermod -m -d /home/gregory-new gregory2

wAd9tIxalhdDgAAAABJRU5ErkJggg==

Проверить местоположение новой папки можно с помощью grep, а убедиться в копировании содержимого – через файловый менеджер Linux.

5. Изменить оболочку

Просмотреть весь список доступных в системе оболочек получится в файле /etc/shells. Откройте его в редакторе vi:

ARmzRxu5ehshAAAAAElFTkSuQmCC

Просмотреть оболочку конкретного пользователя можно в уже упомянутом файле /etc/passwd:

Нужная информация идет после домашнего каталога.

AMl1XT+kdYSCAAAAAElFTkSuQmCC

Для того чтобы поменять оболочку shell используйте опцию -s. В качестве примера возьмем оболочку /usr/bin/dash:

sudo usermod -s /usr/bin/dash gregory2

4GoNNU0yuQqGqFVGHDANsgB1l2Iwg7dGjiNPxubdRySJv4Paj2jffvg4sMAAAAASUVORK5CYII=

6. Изменить UID

UID – числовой идентификатор пользователя. Для его просмотра воспользуйтесь утилитой id:

FnUAAAAASUVORK5CYII=

Для изменения этого значения нужна опция -u. При этом новый номер должен быть неотрицательным (число 0 допустимо) и уникальным. В качестве примера возьмем 9138:

sudo usermod -u 9138 gregory2

D0SlqaZRJlfRCK3CgAO2QQ6w7kIUdujWwGn82dis45A08T8AVz093PVasZ4AAAAASUVORK5CYII=

Вы можете задать неуникальный номер UID, добавив к исходной команде опцию —o. В качестве примера возьмем идентификатор 0, который по умолчанию закреплен за группой root:

sudo usermod -o -u 0 gregory2

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

7. Изменить логин

Для изменения логина (имени) пользователя предназначена опция -l. Но при этом она не затрагивает название домашнего каталога. Если вас это устраивает, то можете воспользоваться ей. Синтаксис:

$ sudo usermod -l новое_имя старое_имя

Вот как это выглядит с пользователем gregory2, который нужно переименовать в gregory3:

sudo usermod -l gregory3 gregory2

z+KPXIIfiygmAAAAABJRU5ErkJggg==

Ну а еще вы можете использовать эту команду вместе с перенесением домашней папки, например, в /home/gregory3:

sudo usermod -l gregory3 -m -d /home/gregory3 gregory2

+4gDCrZi5p0AAAAASUVORK5CYII=

8. Изменить пароль

Опция —password предназначена для изменения пароля в зашифрованном виде. А значит, так просто ей воспользоваться не получится. Необходимо добавить к ней команду openssl passwd для шифрования пароля. Для того чтобы изменить пароль на xz3 выполните:

sudo usermod —password $(openssl passwd -6 ‘xz3’) gregory

В результате пароль изменится сразу же после ее выполнения.

9. Заблокировать пользователя

Для блокировки пользователя пригодится опция -L, которая блокирует вход по паролю:

При использовании этой опции перед паролем пользователя в файле /etc/shadow добавляется восклицательный знак и пользователь не сможет больше войти в систему по паролю. Однако, другие способы входа ещё доступны. Для полной блокировки учетной записи к команде нужно добавить опцию —expiredate со значением 1:

Читайте также:  Линукс открыть файл zip

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:

Выводы

Команда usermod linux позволяет достаточно удобно управлять группами пользователей, а также менять информацию о нём. Ну а если вы хотите более подробно разобраться с самими группами и их устройством в различных дистрибутивах Linux, ознакомьтесь с этим материалом. В нем детально рассмотрена эта тема, место хранения файла с группами и другая полезная информация.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

👥 Как создать домашний каталог для существующего пользователя Linux

По умолчанию, когда вы создаете пользователя в Linux, домашний каталог создается в каталоге /home.

Возможно вы заметили, что в производных дистрибутивах Ubuntu и Debian команда useradd по умолчанию не будет создавать домашний каталог.

Давайте представим ситуацию, что вы уже создали пользователя, но домашний каталог отсутствует.

В этом руководстве я покажу вам, как создать домашний каталог по умолчанию для существующего пользователя в системах Linux.

Создание домашнего каталога по умолчанию для существующего пользователя

В примере я использую Ubuntu 20.04 и собираюсь создать пользователя с именем ‘bob’ с помощью команды useradd:

$ grep bob /etc/passwd bob:x:1003:1003::/home/bob:/bin/sh $

Если я попытаюсь войти в систему от этого пользователя, используя su -, система показывает logging in with Home=/

Это означает, что домашний каталог пользователя не создан.

$ su - bob Password: No directory, logging in with HOME=/ $

В Linux домашним каталогом пользователя по умолчанию является /home.

Чтобы создать домашний каталог по умолчанию, используйте команду mkhomedir_helper.

Обязательно запустите команду mkhomedir_helper от имени пользователя root или пользователя с доступом sudo.

$ sudo mkhomedir_helper bob
$ ls -al /home/bob total 20 drwxr-xr-x 2 bob bob 4096 Jun 1 02:26 . drwxr-xr-x 5 root root 4096 Jun 1 02:26 .. -rw-r--r-- 1 bob bob 220 Jun 1 02:26 .bash_logout -rw-r--r-- 1 bob bob 3771 Jun 1 02:26 .bashrc -rw-r--r-- 1 bob bob 807 Jun 1 02:26 .profile

В графической среде (например, GNOME или XFCE), если вам не хватает подкаталогов в домашнем каталоге, пользователь должен выйти из системы и войти обратно.

При первом входе пользователя в систему все подкаталоги, такие как папки Pictures, Documents, Videos, и Downloads , могут быть созданы в домашнем каталоге.

Другой метод – удалить пользователя и создать нового пользователя с помощью параметра -m или –create-home.

Следующая команда создает домашнюю папку (-m) и задаст указанный домашний каталог (-d) в качестве значения для входа нового пользователя:

$ sudo useradd -m -d /home/bob01 bob01

Заключение

В заключение, если вы являетесь поклонником Ubuntu, вы должны теперь использовать команду adduser.

Если у вас уже есть пользователь, теперь вы сможете добавить каталог по умолчанию.

Источник

Оцените статью
Adblock
detector