- Как пользоваться командой usermod в Linux?
- Добавить пользователя в группу
- Изменить основную группу пользователя
- Изменение информации о пользователе
- Изменение домашнего каталога пользователя
- Изменение пользовательской оболочки по умолчанию
- Изменение UID пользователя
- Изменение имени пользователя
- Установка даты истечения срока действия пользователя
- Блокировка и разблокировка учетной записи пользователя
- Заключение
- Создать домашний каталог для существующего пользователя в Linux
- 👥 Как создать домашний каталог для существующего пользователя Linux
- Создание домашнего каталога по умолчанию для существующего пользователя
- Заключение
- Как изменить домашний каталог текущего пользователя в системе
- 4 ответа
Как пользоваться командой usermod в Linux?
usermod — это утилита командной строки, позволяющая изменять данные для входа пользователя.
В этой статье рассказывается, как использовать команду usermod для добавления пользователя в группу, изменения оболочки пользователя, имени входа, домашнего каталога и т.д.
Синтаксис команды usermod имеет следующий вид:
Только root или пользователи с sudo доступом могут вызывать usermod и изменять учетную запись пользователя. В случае успеха команда не выводит никаких результатов.
Добавить пользователя в группу
Наиболее типичный вариант использования usermod — добавление пользователя в группу.
Чтобы добавить существующего пользователя во вторичную группу, используйте параметры -a -G после имени группы и имени пользователя:
Если вы хотите добавить пользователя сразу в несколько групп, укажите группы после -G параметра, разделенные, (запятыми), без пробелов.
Например, чтобы добавить пользователя linuxizeв gamesгруппу, вы должны выполнить следующую команду:
Всегда используйте опцию -a (добавить) при добавлении пользователя в новую группу. Если вы не укажете этот параметр, пользователь будет удален из групп, не перечисленных после -G параметра.
Если пользователя или группы не существует, команда предупредит вас.
Изменить основную группу пользователя
Чтобы изменить основную группу пользователя, вызовите команду usermod с помощью параметра -g , следующего за именем группы и именем пользователя:
В следующем примере мы меняем основную группу пользователя linuxize на developers:
Каждый пользователь может принадлежать ровно к одной основной группе и нулю или более вторичных групп.
Изменение информации о пользователе
Чтобы изменить информацию GECOS (полное имя пользователя), запустите команду с параметром -c , за которым следует новый комментарий и имя пользователя:
Вот пример, показывающий, как добавить дополнительную информацию пользователю linuxize:
Эта информация хранится в файле /etc/passwd.
Изменение домашнего каталога пользователя
В большинстве систем Linux домашние каталоги пользователей названы по имени пользователя и создаются в каталоге /home.
Если по какой-то причине вы хотите изменить домашний каталог пользователя, вызовите usermodкоманду, указав опцию -d , указав абсолютный путь к новому домашнему каталогу и имя пользователя:
По умолчанию команда не перемещает содержимое домашнего каталога пользователя в новый. Чтобы переместить содержимое, используйте опцию -m . Если новый каталог еще не существует, он создается:
Вот пример, показывающий, как изменить домашний каталог пользователя www-data на /var/www:
Изменение пользовательской оболочки по умолчанию
Оболочка по умолчанию — это оболочка, которая запускается после входа в систему. По умолчанию в большинстве систем Linux в качестве оболочки по умолчанию используется Bash Shell.
Чтобы изменить оболочку пользователя по умолчанию, запустите команду с параметром -s , следующим за абсолютным путем оболочки и именем пользователя:
В приведенном ниже примере мы меняем оболочку пользователя на Zsh:
Вы можете узнать, какие оболочки доступны в вашей системе, просмотрев /etc/shells содержимое файла.
Изменение UID пользователя
UID (идентификатор пользователя) — это номер, присвоенный каждому пользователю. Он используется операционной системой для обозначения пользователя.
Чтобы изменить UID пользователя, вызовите команду с -uпараметром, следующим за новым UID и именем пользователя:
В приведенном ниже примере показано, как изменить номер «UID» на «1050»:
UID файлов, принадлежащих пользователю и находящихся в домашнем каталоге пользователя, и файл почтового ящика пользователя будет изменен автоматически. Право собственности на все остальные файлы необходимо изменить вручную.
Изменение имени пользователя
Хотя не очень часто, иногда вам может потребоваться изменить имя существующего пользователя. Параметр -l используется для изменения имени пользователя:
В приведенном ниже примере мы переименование пользователя linuxizeк lisaна «1050»:
При изменении имени пользователя вы также можете изменить домашний каталог пользователя, чтобы отразить новое имя пользователя.
Установка даты истечения срока действия пользователя
Дата истечения срока — это дата, когда учетная запись пользователя будет отключена. Чтобы установить дату истечения срока действия пользователя, используйте опцию -e :
Срок годности должен быть установлен в формате YYYY-MM-DD.
Например, чтобы отключить пользователя linuxize на 2022-02-21, вы бы выполнить следующую команду:
Чтобы отключить истечение срока действия учетной записи, установите пустую дату истечения срока действия:
Используйте chage команду -l , чтобы просмотреть дату истечения срока действия пользователя:
Срок годности хранится в /etc/shadow файле.
Блокировка и разблокировка учетной записи пользователя
Опция -L позволяет заблокировать учетную запись пользователя:
Команды вставят восклицательный знак ( ! ) перед зашифрованным паролем. Если поле пароля в /etc/shadow файле содержит восклицательный знак, пользователь не сможет войти в систему, используя аутентификацию по паролю. Другие методы входа в систему, такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены. Если вы хотите заблокировать учетную запись и отключить все методы входа в систему, вам также необходимо установить дату истечения срока действия равной 1.
В следующих примерах показано, как заблокировать пользователя linuxize:
Чтобы разблокировать пользователя, запустите usermodс -Uопцией:
Заключение
Мы показали вам, как использовать команду usermod для установки информации об учетной записи пользователя.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник
Создать домашний каталог для существующего пользователя в Linux
В этом кратком руководстве объясняется, как создать домашний каталог для существующего пользователя в Linux и Unix-подобных операционных системах с помощью команды mkhomedir_helper .
Как вы уже знаете, мы можем создать нового пользователя в Linux и Unix-подобных системах с помощью команды adduser , верно? Да все верно! Когда мы добавляем нового пользователя, по умолчанию автоматически создается домашний каталог для соответствующего пользователя.
Есть еще одна команда для создания пользователей в Linux. Это так useradd . После того, как я создал несколько пользователей с помощью команды useradd в Alpine Linux, я заметил, что каталоги $HOME для пользователей не создаются. Я не знал этого раньше. Прочитав справочные страницы команды useradd , я понял, что мне следовало включить -m (или —create-home ) опцию для создания новых пользователей в каталоге $HOME , как показано ниже:
Но я забыл включить эту опцию и создал несколько новых пользователей. Если вы похожи на меня, не удаляйте существующих пользователей и создавайте их заново с помощью опции -m . Вы можете легко создать домашний каталог для существующего пользователя в Linux с помощью команды mkhomedir_helper , не удаляя и не воссоздавая пользователя.
mkhomedir_helper вспомогательная программа для модуля pam_mkhomedir . Модуль pam_mkhomedir PAM создаст домашний каталог пользователя, если он не существует в начале сеанса. Сначала этот модуль создает домашние каталоги, а затем заполняет их содержимым указанного каталога skel. Значение по умолчанию umask — это 0022, а значение по умолчанию для пути к skel — /etc/skel.
Позвольте мне показать вам пример, чтобы объяснить, как создать домашний каталог для существующего пользователя с помощью mkhomedir_helper.
Во-первых, давайте создадим нового пользователя с именем ostechnix, используя команду useradd :
Установите пароль для пользователя:
Теперь переключитесь на нового пользователя:
Вы увидите следующее сообщение об ошибке:
Как видно из вышеприведенного вывода, домашний каталог для пользователя ostechnix не существует, отсюда и эта ошибка.
Давайте проверим это, заглянув в /homeкаталог:
Что ж, это правда, что у пользователя ostechnix нет домашнего каталога.
Итак, давайте создадим домашний каталог для существующего пользователя (то есть ostechnix в нашем случае) с помощью команды mkhomedir_helper .
Для этого сначала выйдите из системы пользователя ostechnix, если вы уже вошли в систему:
И выполните следующую команду, чтобы создать домашний каталог для пользователя с именем ostechnix :
Обратите внимание, что вы должны выполнить указанную выше команду как root пользователь или другой sudo пользователь.
Теперь переключитесь на пользователя ostechnix:
На этот раз вы не получите никакого предупреждающего сообщения, потому что домашний каталог для пользователя с именем ostechnix был создан с помощью команды mkhomedir_helper .
Для получения дополнительных сведений см. справочные страницы:
Теперь вы знаете, как создавать домашние каталоги после создания пользователей. Это может быть полезно, если вы забыли включить -m параметр при создании пользователей с помощью команды useradd.
Вместо использования useradd вы можете использовать adduser команду, которая автоматически создаст домашние каталоги пользователей без каких-либо параметров.
Источник
👥 Как создать домашний каталог для существующего пользователя Linux
По умолчанию, когда вы создаете пользователя в Linux, домашний каталог создается в каталоге /home.
Возможно вы заметили, что в производных дистрибутивах Ubuntu и Debian команда useradd по умолчанию не будет создавать домашний каталог.
Давайте представим ситуацию, что вы уже создали пользователя, но домашний каталог отсутствует.
В этом руководстве я покажу вам, как создать домашний каталог по умолчанию для существующего пользователя в системах Linux.
Создание домашнего каталога по умолчанию для существующего пользователя
В примере я использую Ubuntu 20.04 и собираюсь создать пользователя с именем ‘bob’ с помощью команды useradd:
Если я попытаюсь войти в систему от этого пользователя, используя su -, система показывает logging in with Home=/
Это означает, что домашний каталог пользователя не создан.
В Linux домашним каталогом пользователя по умолчанию является /home.
Чтобы создать домашний каталог по умолчанию, используйте команду mkhomedir_helper.
Обязательно запустите команду mkhomedir_helper от имени пользователя root или пользователя с доступом sudo.
В графической среде (например, GNOME или XFCE), если вам не хватает подкаталогов в домашнем каталоге, пользователь должен выйти из системы и войти обратно.
При первом входе пользователя в систему все подкаталоги, такие как папки Pictures, Documents, Videos, и Downloads , могут быть созданы в домашнем каталоге.
Другой метод – удалить пользователя и создать нового пользователя с помощью параметра -m или –create-home.
Следующая команда создает домашнюю папку (-m) и задаст указанный домашний каталог (-d) в качестве значения для входа нового пользователя:
Заключение
В заключение, если вы являетесь поклонником Ubuntu, вы должны теперь использовать команду adduser.
Если у вас уже есть пользователь, теперь вы сможете добавить каталог по умолчанию.
Источник
Как изменить домашний каталог текущего пользователя в системе
В настоящее время я зарегистрирован на сервере CentOS, и я хотел бы изменить свой домашний каталог с /home/myuserName/ на /var/www/html/
Я попробовал следующую команду:
Но это дает мне ошибку:
4 ответа
короткий ответ : вы не можете.
длинный ответ :
HOME dir установлен в /etc/passwd , 6-е поле. Он читается на loggin, ваша оболочка начинается с этого домашнего каталога.
Правильный способ изменить домашний каталог для joe:
- отключиться.
- используйте usermod -d /new/home joe , чтобы изменить домашний каталог для последующего сеанса.
Как только сеанс запущен, вы должны сделать две вещи:
- edit $HOME изменить домашний каталог для сеанса (повторяться во всех активных сеансах).
- use sudo vipw для редактирования home dir для следующей wession
Кроме того, помните, что у вас может быть проблема с разрешениями /собственностью на /var/www/html
Команда usermod не будет работать, если вы вошли в систему с пользователем, с которым вы пытаетесь внести изменения.
На странице руководства на usermod говорится:
ПРЕДОСТЕРЕЖЕНИЯ usermod не позволит вам изменить имя пользователя, который вошел в систему. Вы должны убедиться, что именованный пользователь не выполняет любые процессы, когда эта команда выполняется, если пользователь численный Идентификатор пользователя изменяется. Вы должны вручную изменить владельца любых файлов crontab. Вы должны изменить владельца любого на рабочих местах вручную. Вы должны внести любые изменения, связанные с NIS на сервере NIS.
Попробуйте войти в систему другим пользователем и снова запустите команду.
Если это невозможно, вы можете вручную отредактировать файл /etc /passwd (на самом деле это то, что делает команда usermod). Если вы это сделаете, убедитесь, что вы вернули файл на случай, если вы случайно сделаете что-то глупое.
Пара возможных обходных решений, в зависимости от того, что вы надеетесь решить:
Вариант 1. Добавьте HOME=/var/www/html в ваш .bashrc
Вариант 2. Переименуйте /home/myusername , а затем создайте символическую ссылку в нужный каталог.
Вы можете сделать это только временно. Это означает, что каждый раз, когда вы входите в систему как пользователь, вам нужно запустить эту команду:
Таким образом, вы можете сделать большинство приложений think , что ваш домашний каталог — это любое место, которое вы используете выше.
также начнет указывать на /var/www/html
Приложения, с которыми мне приходилось работать, были NPM и Maven.
Источник