Смена домашней директории пользователя linux

Как пользоваться командой usermod в Linux?

usermod — это утилита командной строки, позволяющая изменять данные для входа пользователя.

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

Синтаксис команды usermod имеет следующий вид:

Только root или пользователи с sudo доступом могут вызывать usermod и изменять учетную запись пользователя. В случае успеха команда не выводит никаких результатов.

Добавить пользователя в группу

Наиболее типичный вариант использования usermod — добавление пользователя в группу.

Чтобы добавить существующего пользователя во вторичную группу, используйте параметры -a -G после имени группы и имени пользователя:

Если вы хотите добавить пользователя сразу в несколько групп, укажите группы после -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 , указав абсолютный путь к новому домашнему каталогу и имя пользователя:

Читайте также:  Firefox русский язык linux

По умолчанию команда не перемещает содержимое домашнего каталога пользователя в новый. Чтобы переместить содержимое, используйте опцию -m . Если новый каталог еще не существует, он создается:

usermod -d HOME_DIR -m USER

Вот пример, показывающий, как изменить домашний каталог пользователя www-data на /var/www:

Изменение пользовательской оболочки по умолчанию

Оболочка по умолчанию — это оболочка, которая запускается после входа в систему. По умолчанию в большинстве систем Linux в качестве оболочки по умолчанию используется Bash Shell.

Чтобы изменить оболочку пользователя по умолчанию, запустите команду с параметром -s , следующим за абсолютным путем оболочки и именем пользователя:

В приведенном ниже примере мы меняем оболочку пользователя на Zsh:

sudo usermod -s /usr/bin/zsh linuxize

Вы можете узнать, какие оболочки доступны в вашей системе, просмотрев /etc/shells содержимое файла.

Изменение UID пользователя

UID (идентификатор пользователя) — это номер, присвоенный каждому пользователю. Он используется операционной системой для обозначения пользователя.

Чтобы изменить UID пользователя, вызовите команду с -uпараметром, следующим за новым UID и именем пользователя:

В приведенном ниже примере показано, как изменить номер «UID» на «1050»:

sudo usermod -u 1050 linuxize

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

Изменение имени пользователя

Хотя не очень часто, иногда вам может потребоваться изменить имя существующего пользователя. Параметр -l используется для изменения имени пользователя:

В приведенном ниже примере мы переименование пользователя linuxizeк lisaна «1050»:

sudo usermod -l linuxize lisa

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

Установка даты истечения срока действия пользователя

Дата истечения срока — это дата, когда учетная запись пользователя будет отключена. Чтобы установить дату истечения срока действия пользователя, используйте опцию -e :

Срок годности должен быть установлен в формате YYYY-MM-DD.

Например, чтобы отключить пользователя linuxize на 2022-02-21, вы бы выполнить следующую команду:

sudo usermod -e "2022-02-21" linuxize

Чтобы отключить истечение срока действия учетной записи, установите пустую дату истечения срока действия:

Используйте chage команду -l , чтобы просмотреть дату истечения срока действия пользователя:

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 позволяет заблокировать учетную запись пользователя:

Команды вставят восклицательный знак ( ! ) перед зашифрованным паролем. Если поле пароля в /etc/shadow файле содержит восклицательный знак, пользователь не сможет войти в систему, используя аутентификацию по паролю. Другие методы входа в систему, такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены. Если вы хотите заблокировать учетную запись и отключить все методы входа в систему, вам также необходимо установить дату истечения срока действия равной 1.

Читайте также:  Linux web host server

В следующих примерах показано, как заблокировать пользователя linuxize:

sudo usermod -L linuxize sudo usermod -L -e 1 linuxize

Чтобы разблокировать пользователя, запустите usermodс -Uопцией:

Заключение

Мы показали вам, как использовать команду usermod для установки информации об учетной записи пользователя.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка / 5. Количество оценок:

Оценок пока нет. Поставьте оценку первым.

Источник

Как поменять домашнюю директорию для пользователя linux командой usermod

У каждого пользователя в Unix есть своя домашняя папка, предназначенная для хранения данных пользователя в месте, доступном только для него. О том, как узнать домашнюю директорию любого пользователя можно прочитать по → этой ссылке. О том, где и как создаются записи о домашнем каталоге пользователя написано в → этой статье. О том, как поменять домашнюю папку пользователя по умолчанию в Linux → по этой ссылке. Все перечисленные сведения полезны и могут помочь ручками поправить путь до домашнего каталога пользователя, однако для его смены есть удобная команда linux — usermod . То, как с её помощью быстро поменять домашнюю директорию для пользователя и рассмотрим ниже.

Помощь по команде usermod в linux

Зная название команды, лично я лезу в подсказки операционной системе по ней. Чего и всем советую. =) Данный случай не является исключением. Сперва посмотрим на те опции, которые описаны в хэлпе:

[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 . Её и рассмотрим более подробно.

Читайте также:  Перенос пакетов из linux

Как с помощью опции -d команды usermod в линукс поменять домашнюю директорию пользователя

Рассмотрим на живом примере. Создадим нового пользователя (как это сделать → подробно тут):

Посмотрим на запись об этом пользователе в файле /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 . 
  1. Командой usermod -d /var/www/newuser2 newuser прописали папку /var/www/newuser2 в качестве домашней для пользователя newuser
  2. Но директория при этом не была создана. Это видно при попытке её прочитать: ls -l /var/www/newuser2
  3. Однако, запись в файле /etc/passwd была изменена.

Можно конечно создать эту папку вручную командой mkdir (читать тут), а потом прописать ей владельца и группу командой chown (читать тут), но проще и безболезненнее воспользоваться дополнительной опцией -m команды usermod . Важно, чтобы папка пользователя содержала хоть что-нибудь в себе. Даже просто пустой файл. Тогда и только тогда, новая папка будет создана и в неё будет перенесено содержимое старой папки.

Поэтому для того, чтобы поменять домашнюю директорию для пользователя linux, нужно воспользоваться командой usermod с опцией -md. При этом в папке пользователя должны храниться какие-нибудь данные.

usermod -md /путь_до_новой_домашней_папки username

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉

Источник

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