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

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

Синтаксис команды очень простой:

$ shutdown

Опции задают параметры отключения, их мы рассмотрим ниже. Время можно задавать в виде чч:мм в 24 часовом формате. Также можно использовать запись +минуты, указывающую через сколько минут от текущего момента нужно выключить компьютер с Linux. Также доступна константа now, указывающая, что выключать нужно прямо сейчас. Параметр сообщение позволяет задать сообщение, которое будет выведено в терминал перед выключением.

Вот основные опции утилиты:

  • —help — вывести справку по программе
  • -H, —halt — отключить питание, не завершая процессы и не перемонтируя файловые системы
  • -P, —poweroff — нормальное выключение
  • -r, —reboot — перезагрузка
  • -k — не выполнять реальных действий, а только вывести сообщение
  • —no-wall — выключить компьютер, но не выводить сообщение
  • -c — отменить запланированное выключение linux из командной строки

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

Overview

A user is anyone who uses a computer. In this case, we are describing the names which represent those users. It may be Mary or Bill, and they may use the names Dragonlady or Pirate in place of their real name. All that matters is that the computer has a name for each account it creates, and it is this name by which a person gains access to use the computer. Some system services also run using restricted or privileged user accounts.

Managing users is done for the purpose of security by limiting access in certain specific ways. The superuser (root) has complete access to the operating system and its configuration; it is intended for administrative use only. Unprivileged users can use the su and sudo programs for controlled privilege escalation.

Any individual may have more than one account as long as they use a different name for each account they create. Further, there are some reserved names which may not be used such as «root».

Users may be grouped together into a «group», and users may be added to an existing group to utilize the privileged access it grants.

Note: The beginner should use these tools carefully and stay away from having anything to do with any other existing user account, other than their own.

Как ограничить доступ с помощью /etc/passwd

Один из способов ограничения возможности входа – это задать регистрационной оболочке учетной записи специальное значение.

Примером этому является пользователь «messagebus» в файле «/etc/passwd»:

последнее значение – это оболочка или команда, которая запускается в случае успешного входа. Сейчас это «binfalse».

Если войти в учетную запись messagebus как root-пользователь, ничего не произойдет, так как переключиться на этого пользователя не получится:

Попробуйте переключиться на пользователя sshd:

Это уведомление появилось потому, что оболочка пользователя sshd помещена в «usrsbinnologin.

Итак, как же ограничить вход пользователей с помощью этих методов?

Нужно использовать инструмент «usermod», изменяющий легитимное значение оболочки фиктивным:

Permissions and ownership

The UNIX operating system crystallizes a couple of unifying ideas and concepts that shaped its design, user interface, culture and evolution. One of the most important of these is probably the mantra: «everything is a file,» widely regarded as one of the defining points of UNIX.
This key design principle consists of providing a unified paradigm for accessing a wide range of input/output resources: documents, directories, hard-drives, CD-ROMs, modems, keyboards, printers, monitors, terminals and even some inter-process and network communications. The trick is to provide a common abstraction for all of these resources, each of which the UNIX fathers called a «file.» Since every «file» is exposed through the same API, you can use the same set of basic commands to read/write to a disk, keyboard, document or network device.
A fundamental and very powerful, consistent abstraction provided in UNIX and compatible operating systems is the file abstraction. Many OS services and device interfaces are implemented to provide a file or file system metaphor to applications. This enables new uses for, and greatly increases the power of, existing applications — simple tools designed with specific uses in mind can, with UNIX file abstractions, be used in novel ways. A simple tool, such as cat, designed to read one or more files and output the contents to standard output, can be used to read from I/O devices through special device files, typically found under the directory. On many systems, audio recording and playback can be done simply with the commands, «» and «,» respectively.

Every file on a GNU/Linux system is owned by a user and a group. In addition, there are three types of access permissions: read, write, and execute. Different access permissions can be applied to a file’s owning user, owning group, and others (those without ownership). One can determine a file’s owners and permissions by viewing the long listing format of the ls command:

$ ls -l /boot/
total 13740
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 initramfs-linux.img
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz-linux

The first column displays the file’s permissions (for example, the file has permissions ). The third and fourth columns display the file’s owning user and group, respectively. In this example, all files are owned by the root user and the root group.

$ ls -l /media/
total 16
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared

In this example, the directory is owned by the root user and the vboxsf group. It is also possible to determine a file’s owners and permissions using the stat command:

Owning user:

$ stat -c %U /media/sf_Shared/
root

Owning group:

$ stat -c %G /media/sf_Shared/
vboxsf

Access rights:

$ stat -c %A /media/sf_Shared/
drwxrwx---

Access permissions are displayed in three groups of characters, representing the permissions of the owning user, owning group, and others, respectively. For example, the characters indicate that the file’s owner has read and write permission, but not execute (), whilst users belonging to the owning group and other users have only read permission ( and ). Meanwhile, the characters indicate that the file’s owner and users belonging to the owning group all have read, write, and execute permissions ( and ), whilst other users are denied access (). The first character represents the file’s type.

List files owned by a user or group with the find utility:

# find / -group groupname
# find / -group groupnumber
# find / -user user

A file’s owning user and group can be changed with the chown (change owner) command. A file’s access permissions can be changed with the chmod (change mode) command.

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

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

  • Отредактируйте файл паролей /etc/passwd
    редактором vipw и добавьте строку для нового
    пользователя. Будьте внимательным с синтаксисом. Не
    редактируйте каким попало редактором!
    vipw
    блокирует файл, так, чтобы другие команды не пробовали модифицировать его в
    то же самое время. Вы должны записать в поле пароля `*
    ‘ так, чтобы было невозможно войти.

  • Точно так же редактируйте /etc/group
    редактором vigr, если надо создать новую группу

  • Создайте основной каталог пользователя командой
    mkdir
    .

  • Скопируйте файлы из /etc/skel в домашний
    каталог нового пользователя.

  • Смените владельца и права доступа для свежесозданных файлов и
    каталогов командами chown и chmod
    . Опция -R весьма полезна. Правильные разрешения
    немного разные для разных систем, но обычно следующие команды делают то, что
    надо:

    
    
    cd /home/newusername
    chown -R username.group .
    chmod -R go=u,go-w .
    chmod go= .
    
    
  • Установите пароль командой passwd.

После того, как Вы устанавливаете пароль в последнем шаге, пользователь
сможет работать

Вы не должны устанавливать пароль, пока все остальное не
сделано, иначе пользователь может неосторожно войти, в то время как вы
еще копируете файлы

Иногда необходимо создать псевдопользователя. Такой пользователь никогда
не используется как обычный. Например, чтобы установить анонимный сервер
FTP станция (так, чтобы любой мог сгружать и загружать файлы без
необходимости иметь логин в системе), Вы должны создать пользователя ftp.
В таких случаях, пароль задавать не надо. Значит, файл пароля имеет всю
информацию относительно пользователя за исключением его пароля.

Changing New User Default Values

When invoked with only the -D option, useradd displays the current default values. When invoked with -D plus other options, useradd will update the default values for the specified options.

Valid default-changing options are:

-b, —base-dir BASE_DIR The path prefix for a new user’s home directory. The user’s name will be affixed to the end of BASE_DIR to form the new user’s home directory name, if the -d option is not used when creating a new account. This option sets the HOME variable in /etc/default/useradd.
-e, —expiredate EXPIRE_DATE The date on which the user account is disabled. This option sets the EXPIRE variable in /etc/default/useradd.
-f, —inactive INACTIVE The number of days after a password has expired before the account will be disabled. This option sets the INACTIVE variable in /etc/default/useradd.
-g, —gid GROUP The group name or ID for a new user’s initial group (when the -N/—no-user-group is used or when the USERGROUPS_ENAB variable is set to no in /etc/login.defs). The named group must exist, and a numerical group ID must have an existing entry. This option sets the GROUP variable in /etc/default/useradd.
-s, —shell SHELL The name of a new user’s login shell. This option sets the SHELL variable in /etc/default/useradd.

Description

useradd is a low-level utility for adding users to a system. In general, the more friendly adduser should be used instead.

Your operating system may come with a slightly different version of useradd; check your documentation before using it to create new accounts. This documentation refers to some options frequently used on Debian-based variants of Linux, but is representative of useradd‘s general use.

When invoked without the -D option, the useradd command creates a new user account using the values specified on the command line plus the default values from the system. Depending on command line options, the useradd command will update system files and may also create the new user’s home directory and copy initial files.

By default, a group will also be created for the new user (see the -g, -N, -U options, and the USERGROUPS_ENAB variable, below).

Выключение компьютера в Linux

1. shutdown

Самая простая и самая часто используемая команда выключения компьютера linux, отключит компьютер немедленно:

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

Теперь попробуем запланировать выключение компьютера linux через пять минут:

Мы запланировали вывод сообщения перед выключением.

Теперь давайте отменим выключение компьютера Linux:

Точно так же мы можем указать точное время выключения, например в девять вечера:

Как я уже говорил, не только команда shutdown linux умеет выключать компьютер, есть еще несколько утилит способных на это. Рассмотрим их тоже.

2. reboot

Команда reboot обычно используется для перезагрузки системы, но она также умеет выключать компьютер. Мы не будем ее подробно рассматривать, потому, что она еще проще команды shutdown. Для выключения нужно задать опцию -p:

3. halt

Эта команда тоже выключает компьютер. Только делает она это очень по-своему. Она не выполняет никаких подготовительных действий перед выключением, а просто отключает питание:

Использование halt может повредить систему

5. SysRq

Помните, в начале статьи, я говорил о сочетании клавиш для включения компьютера? Рассмотрим этот вопрос подробнее.

SysRq — это подсистема, реализованная на уровне ядра. Ядро обрабатывает все нажатия клавиш, а с помощью этой подсистемы, оно может принимать от пользователя команды, даже когда система полностью зависла. Основное предназначение этой подсистемы — работа с компьютером в проблемных ситуациях, например, если вы думаете что ваш компьютер заразил вирус, или компьютер завис и его нужно выключить. Для доступа к SysRq используются сочетания клавиш Alt+PrtScr+номер

Самое интересное, что мы можем выполнить безопасное выключение компьютера linux. Для этого зажмите клавиши Alt + PrtScr и поочередно нажимайте:

  • R — разблокировать клавиатуру
  • E — послать всем процессам сигнал SIGTERM
  • I — послать всем процессам сигнал SIGKILL
  • S — перенести все данные из кеша файловых систем на диск
  • U — перемонтировать файловые системы только для чтения
  • B — перезагрузить

Также вместо всего этого можно воспользоваться сочетанием клавиш Alt+PrtScr+O, в таком случае, вся процедура будет выполнена автоматически, эта команда поддерживается не всеми ядрами.

Как повысить привилегии пользователя в sudo

Чтобы новый пользователь имел возможность выполнять команды с привилегиями администратора (root-привилегиями), нужно дать ему доступ к sudo.

Для этого нужно выполнить команду visudo, которая открывает в текстовом редакторе соответствующий конфигурационный файл. Это самый безопасный способ внести нужные изменения. Если текущим пользователем является root, выполните команду:

Если текущим пользователем является пользователь с привилегиями sudo, наберите:

Найдите строку, которая выглядит так:

Скопируйте эту строку и вставьте ее ниже, заменив root именем нового пользователя, привилегии которого нужно расширить:

Внесите такую строку для каждого пользователя, чьи привилегии нужно расширить. Завершив, сохраните и закройте файл, нажав CTRL-X, Y и Enter для подтверждения. Теперь новый пользователь может выполнять команды с привилегиями администратора.

Теперь, войдя в сеть как новый пользователь, можно выполнять команды без привилегий, набирая их в формате:

а также выполнять те же команды с привилегиями root, внеся sudo в начало команды:

При этом нужно будет ввести пароль текущего пользователя.

Типы групп в Linux

Выделим группы пользователей:

  1. Первичная (основная группа). После регистрации в системе пользователь автоматически попадает в эту группу. Зачастую название основной группы является идентичным имени юзера в Линукс. Пользователь может состоять только в одной первичной группе, без каких-либо исключений из правила.
  2. Вторичные группы. В процессе работы с устройством на базе ядра Linux пользователь может попасть в дополнительные группы. Количество вторичных групп для юзеров системы ограничено. Верхний лимит – 32 шт.

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

Как будет выглядеть синтаксическая структура нужной команды:

Основные опции:

  • -G – вторичные (дополнительные) группы для юзера системы;
  • -a – добавление юзера системы во вторичные группы из параметра, который был указан ранее (-G), вместо замены текущего значения;
  • -g – создание новой первичной группы для юзера системы. В неё попадут все файлы, которые хранятся в домашнем каталоге.

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

В целом, команда usermod способна предложить пользователю целое множество опций, но мы не станем рассматривать их целиком, ведь для решения актуальной проблемы можно ограничиться тремя опциями, указанными выше. Вместо этого рассмотрим процесс добавления пользователя в группу Линукс на примере. Допустим, нужно добавить пользователя «ya» в группу root.

Здесь:

  • root — имя группы, в которую нужно добавить пользователя;
  • ya — имя пользователя.

Наличие опции «-a» в данной комбинации – это своего рода защита системы от удаления ранее созданных групп. Эта опция должна стоять перед опцией «-G» в обязательном порядке, иначе программа наделает немало бед.

Где найти данные о пользователе Linux?

Чтобы найти нужную информацию о юзере системы, потребуется еще раз обратиться к терминалу. Ввести команду id и название пользователя.

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

Как добавить несколько вторичных групп? Введите комбинацию:

Первичная группа пользователя соответствует его имени, указанному при регистрации в системе. Однако в некоторых случаях может возникнуть необходимость изменить одну группу на другую, например users. Как это должно выглядеть на практике:

Готово! Первичная группа пользователя изменена.

Как добавить пользователя в группу через GUI

Рассмотрим альтернативный метод решения данного вопроса для тех, кто не испытывает положительных эмоций во время работы с терминалом. На этот раз вам потребуется иметь дело с графическим интерфейсом. В данном случае для добавления пользователя в группу Линукс понадобится специальный инструмент – системная утилита system-config-users.

Чтобы установить её в CentOS, задайте такую комбинацию:

Установка завершена! Запустите инструмент через системное меню или при помощи терминала – выберите для себя наиболее удобный способ. Окно программы не перегружено информацией, поэтому вам не составит труда найти здесь нужное имя пользователя. Кликните по нему дважды, перепрыгните на вкладку под названием «Группы». В новом окне вы можете выполнить следующие действия:

  1. Изменить первичную группу;
  2. Выбрать галочками вторичные группы.

Заключение

Данная статья пригодится всем, кто не умеет работать с терминалом для добавления пользователя в группу Линукс, а также тем, кто хочет практиковать управление многопользовательской системой через графический интерфейс.

Caveats

You may not add a user to a NIS or LDAP group. This must be performed on the corresponding server.

Similarly, if the username already exists in an external user database such as NIS or LDAP, useradd will deny the user account creation request.

It is usually recommended to only use usernames that begin with a lower case letter or an underscore, followed by lower case letters, digits, underscores, or dashes. They can end with a dollar sign. The regular expression which describes a valid username is:

*?

The only constraints are that usernames must neither start with a dash (‘‘) nor plus (‘+‘) nor tilde (‘~‘) nor contain a colon (»), a comma (‘,‘), or a whitespace (space: ‘ ‘, end of line: ‘\n‘, tab: ‘\t‘, etc.). Note that using a slash (») may break the default algorithm for the definition of the user’s home directory.

Usernames may only be up to 32 characters long.

Команда useradd

Синтаксис команды useradd

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

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

useradd опции имяпользователя

Создание нового пользователя

Чтобы просто создать пользователя используется команда useradd без каких-либо опций. Указывается только имя пользователя.

Данная команда создает нового пользователя с системными параметрами по умолчанию, которые прописаны в файле /etc/default/useradd

Чтобы пользователь мог войти в систему, необходимо задать для него пароль. Для этого используем команду:

Создание нового пользователя с домашней директорией в /home

Создадим пользователя и его домашнюю директорию.

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

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

Чтобы создать пользователя с домашней директорией, расположенной в произвольном месте, используется опция -d, после которой указывается путь до директории. Директорию необходимо создать заранее.

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

Копируем файлы и директории, которые по умолчанию создаются в домашней директории пользователя в данной системе. Данные файлы находятся в директории /etc/skel

Создаем пользователя и указываем домашнюю директорию:

Меняем права доступа у домашней директории:

Задаем пароль для пользователя:

Можно просмотреть информацию о пользователе, которая сохранена в файле /etc/passwd

Создание нового пользователя с произвольными UID, GID

Каждый пользователь в Linux имеет свой числовой идентификатор — UID, а также идентификатор основной группы пользователя — GID.

При создании пользователя можно задать произвольные номера UID и/или GID. При указании номера группы, группа с этим номером должна быть создана заранее.

Создание пользователя с указанием оболочки (shell)

По умолчанию новые пользователи создаются с оболочкой /bin/sh Чтобы задать другую оболочку, используется опция -s /путь/до/оболочки

Создать пользователя и добавить его в группы

Обычно пользователи в Linux принадлежат нескольким группам. Чтобы при создании нового пользователя задать группы, к которым он будет принадлежать, используется опция -G список,групп

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector