Linux: создание группы и добавление пользователя в систему. Как в Linux добавить пользователя в группу (или вторичную группу) Убрать пользователя из группы linux

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

Linux - это многопользовательская операционная система. Каждый пользователь в Linux принадлежит одной основной группе и одной или нескольким дополнительным группам . В Linux, как и в большинстве других операционных системах работа с пользователями заключается в наборе следующих манипуляций: добавление пользователя/группы, удаление пользователя/группы, модификация настроек пользователя/группы . Данные манипуляции производятся с помощью команд: useradd, groupadd, userdel, groupdel, usermod, groupmod , а так же passwd, gpasswd, id . Более подробно: Существуют так же и графические средства администрирования пользователями, обычно они расположены в оболочке X в разделе Администрирование - Пользователи и группы .

Особенности управления пользователями в Linux

Пример добавления пользователя с помощью шелла:

User-add-server:~# groupadd test user-add-server:~# useradd -c "Test Test" -g test -m test user-add-server:~# passwd test Введите новый пароль UNIX: Повторите ввод нового пароля UNIX: passwd: пароль успешно обновлён user-add-server:~# id test uid=1001(test) gid=1001(test) группы=1001(test) user-add-server:~# ls -ld /home/test/ drwxr-xr-x 2 test test 4096 Дек 16 10:24 /home/test/ user-add-server:~#

В примере мы добавляем группу для нового пользователя (groupadd), далее создаем нового пользователя с полным именем Test Test, имеющего основную группу test и логин test, далее задаем пароль для пользователя test (passwd test) и проверяем параметры созданного пользователя (id и созданный каталог пользователя /home/test/). В листинге видно, что UID и GID - более 1000. Данная особенность является признаком обычного пользователя . Значения ниже (меньше) 1000 (а в некоторых дистрибутивах - меньше 500) указывают на то, что пользователь является системным пользователем .

В соответствии с соглашением, системные пользователи обычно имеют id меньше, чем 100, а пользователь root имеет id, равный 0. Автоматическая нумерация обычных пользователей начинается со значения UID_MIN , установленного в файле /etc/login.defs , это значение обычно установлено в 500 или 1000.

Помимо учетных записей обычных пользователей и учетной записи пользователя root , обычно в системе бывает несколько учетных записей специального назначения для демонов, таких как FTP, SSH, mail, news и т.д. Такие учетные записи часто управляют файлами, но к ним невозможно получить доступ путем обычной регистрации в системе. Поэтому обычно они имеют login shell , определенный как /sbin/nologin или /bin/false , чтобы попытки зарегистрироваться в системе терпели неудачу.

В некоторых системах, команда(ы) добавления пользователей имеют расширенный функционал. То есть, для примера, команда useradd в дистрибутивах Fedora и Red Hat по умолчанию, для нового пользователя создает новую группу и для отмены данной функции, необходимо использовать опцию -n. Для уточнения таких вопросов, необходимо обратиться к документации дистрибутива.

При удалении пользователя, его каталог не удаляется. В результате можно получить интересную ситуацию:

User-add-server:~# userdel test user-add-server:~# groupdel test user-add-server:~# ls -ld /home/test/ drwxr-xr-x 2 1001 1001 4096 Дек 16 10:24 /home/test/ user-add-server:~# groupadd test123 user-add-server:~# useradd -c "Test Test" -g test123 -m test123 user-add-server:~# ls -ldn /home/test* drwxr-xr-x 2 1001 1001 4096 Дек 16 14:30 /home/test drwxr-xr-x 2 1001 1001 4096 Дек 16 14:29 /home/test123 user-add-server:~# ls -ld /home/test* user-add-server:~# ls -ld /home/test* drwxr-xr-x 2 test123 test123 4096 Дек 16 10:24 /home/test drwxr-xr-x 2 test123 test123 4096 Дек 16 14:25 /home/test123 user-add-server:~# passwd test123 Введите новый пароль UNIX: Повторите ввод нового пароля UNIX: passwd: пароль успешно обновлён user-add-server:~# su -l test123 test123@user-add-server:~$ pwd /home/test123 test123@user-add-server:/home/mc-sim$ ls /home/ mc-sim test test123 test123@user-add-server:~$ cd /home/mc-sim/ test123@user-add-server:/home/mc-sim$ ls -la итого 24 drwxr-xr-x 2 mc-sim mc-sim 4096 Ноя 15 12:31 . drwxr-xr-x 6 root root 4096 Дек 16 14:25 .. -rw------- 1 mc-sim mc-sim 99 Ноя 15 13:45 .bash_history -rw-r--r-- 1 mc-sim mc-sim 220 Окт 1 17:42 .bash_logout -rw-r--r-- 1 mc-sim mc-sim 3116 Окт 1 17:42 .bashrc -rw-r--r-- 1 mc-sim mc-sim 675 Окт 1 17:42 .profile test123@user-add-server:/home/mc-sim$ rm /home/mc-sim/.bash_logout rm: удалить защищенный от записи обычный файл `/home/mc-sim/.bash_logout"? y rm: невозможно удалить `/home/mc-sim/.bash_logout": Отказано в доступе test123@user-add-server:/home/mc-sim$ rm /home/test/.bashrc test123@user-add-server:/home/mc-sim$

В приведенном примере мы удаляем пользователя и группу test , созданную ранее. При этом каталог данного пользователя остался не тронутым. Как видно из листинга, права у каталога остались для id 1001 . Далее мы создаем нового пользователя и группу , но уже с другим именем - test123 . Данному пользователю присваивается UID и GID - ранее существующего пользователя test . Посмотрев список каталогов, начинающиеся на /home/test * с ключом -n и без него, видим, что получилось - каталог пользователя test стал принадлежать пользователю test123 , о чем нам говорят права доступа -rw-r--r-- test123 test123 . Входим в систему под пользователем test123 и для проверки прав доступа, в каталоге /home/test пробуем удалить файл, а так же пробуем удалить файл из каталога третьего пользователя - mc-sim. Данный пример хорошо иллюстрирует, что в Linux все привязано к идентификаторам.

Управление базами данных пользователей и групп в Linux

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

/etc/passwd

файл паролей, содержащий основную информацию о пользователях

/etc/shadow

файл теневых шифрованных паролей, содержащий зашифрованные пароли

/etc/group

файл групп, содержащий основную информацию о группах и принадлежащих этим группам пользователях

/etc/gshadow

файл теневых групп, содержащий шифрованные пароли групп

Данные файлы редактировать обычным текстовым редактором крайне не рекомендуется. Они (файлы), обновляются при выполнении вышеуказанных команд, при этом при изменении - блокируются и синхронизируются.

Если все же есть острая необходимость в редактировании указанный файлов, то при помощи команды vipw можно безопасно редактировать файл /etc/passwd , а при помощи команды vigr безопасно редактировать файл /etc/group . Эти команды заблокируют необходимые файлы на то время, пока при помощи будут производиться изменения. Если вы вносите изменения в файл /etc/passwd , команда vipw подскажет, что необходимо проверить, не нужно ли обновить и файл /etc/shadow . Подобным образом, если вы обновляете файл /etc/group при помощи команды vigr, вы получите подсказку, что необходимо обновить и файл /etc/gshadow . Если необходимо удалить администраторов группы, необходимо использовать команду vigr , поскольку команда gpasswd позволяет только добавлять администраторов.

Обращаю внимание, что в современных системах, файлы passwd и group не хранят пароли в открытом виде. Это сделано из соображений безопасности. Сами файлы passwd и group должны быть доступными для чтения для всех, а зашифрованные пароли - недоступными для чтения для всех. Поэтому зашифрованные пароли хранятся в теневых файлах , и эти файлы доступны для чтения только пользователю root. Необходимый доступ для изменения аутентификационных данных обеспечивается при помощи suid-программы, которая имеет полномочия пользователя root, но может быть запущена любым пользователем.

Файл /etc/passwd

user-add-server:~# cat /etc/passwd root:x:0:0:root:/root:/bin/bash lp:x:7:7:lp:/var/spool/lpd:/bin/sh sshd:x:101:65534::/var/run/sshd:/usr/sbin/nologin test123:x:1001:1001:Test Test:/home/test123:/bin/sh

Файл /etc/passwd содержит одну строку для каждого пользователя системы. Каждая строка содержит семь полей, разделенных двоеточиями (:), описание полей на примере пользователя root:

поле значение описание
Имя пользователя root имя, используемое для входа в систему (логин)
Пароль x пароль пользователя (если зашифрован, используется символ - x)
id пользователя (UID) 0 Идентификатор пользователя
id группы (GID) 0 Идентификатор группы

Создадим пользователя vivek и добавим его в группу developers. Залогиньтесь как пользователь root:

Например добавим пользователя vivek :

useradd -g users -G admins,ftp,www,developers -s /bin/bash -p xxxx -d /home/ghost -m vivek

  • -d домашний каталог
  • -s задать стартовую оболочку (/bin/sh) - после можно изменить в файле /etc/passwd
  • -p пароль
  • -g основная группа, к которой приписывается пользователь (Группа должна существовать)
  • -G другие группы к которой приписывается пользователь
  • -m создать для пользователя домашний каталог
  • xxxx символьный пароль пользователя

Убедимся что группа developers существует:

# grep developers /etc/group

Если группы нет, используйте команду groupadd для создания новой группы developers:

Теперь с помощью команды usermod добавим пользователя vivek в группу developers:

# adduser vivek developers && newgrp developers

Убедимся что пользователь добавлен в группу developers:

# id vivek
Output:
uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(developers)

Установим/изменим пароль пользователю vivek:

Поиграемся с группами

Укажим пользователю vivek участие только в группе developers

usermod -G developers vivek

Укажим пользователю vivek участие только в группах admins, ftp, www, developers, введя:

# usermod -G admins,ftp,www,developers vivek

Удалим пользователя vivek из некоторых групп (переназначим ему группы):

# usermod -G ftp,www vivek

теперь vivek не входит в группы admins и developers.

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

userdel — удалить пользователя

Например удалим пользователя vivek:

  • -r удалить пользователя вместе с домашним каталогом

Подробный СИНТАКСИС

useradd [-u идентификатор [-o] [-i]] [-g группа ] [-G группа [[,группа ] . . .]] [-d каталог ] [-s shell ] [-c комментарий ] [-m [-k skel_dir ]] [-f inactive ] [-e expire ] [-p passgen ] [-a событие [, . . .]] рег_имя

Подробное ОПИСАНИЕ

Вызов useradd обычно добавляет новую запись о пользователе в файлы данных системы идентификации и проверки идентичности (Identification and Authentication - I&A). Исключением являются пользователи сетевой информационной службы (Network Information Service или, сокращенно, NIS). Она также позволяет задать принадлежность к дополнительным группам для пользователя (опция -G ) и создать для него начальный каталог (опция -m ). Новое регистрационное имя блокируется до тех пор, пока не будет выполнена команда passwd .

Сразу после установки стандартные значения для различных параметров указаны в файле /etc/default/useradd . Стандартные значения для тех из перечисленных ниже опций, которые предполагают использование стандартных значений, можно изменить с помощью команды defadm .

Записи системного файла, создаваемые с помощью этой команды, имеют ограничение длины - 512 символов в строке. Если для нескольких опций заданы длинные аргументы, это ограничение может быть нарушено.

Поддерживаются следующие опции:

-u идентификатор Идентификационный номер пользователя (UID). Этот номер должен быть неотрицательным целым числом, не превосходящим MAXUID , определенный в sys/param.h . По умолчанию используется следующий доступный (уникальный) не устаревший UID, больший 99. Эта опция игнорируется, если новое регистрационное имя будет администрироваться сетевой информационной службой (NIS). Подробнее об этом см. ниже в разделе "Регистрационные имена сетевой информационной службы".
-o Эта опция позволяет сдублировать UID (сделать его не уникальным). Поскольку защита системы в целом, а также целостность контрольного журнала (audit trail) и учетной информации (accounting information) в частности, зависит от однозначного соответствия каждого UID определенному лицу, использовать эту опцию не рекомендуется (чтобы обеспечить учет действий пользователей).
-i Позволяет использовать устаревший идентификатор UID.
-g группа Целочисленный идентификатор или символьное имя существующей группы. Эта опция задает основную группу (primary group) для нового пользователя. По умолчанию используется стандартная группа, указанная в файле /etc/default/useradd
-G группа[[,группа] . . .] Один или несколько элементов в списке через запятую, каждый из которых представляет собой целочисленный идентификатор или символьное имя существующей группы. Этот список определяет принадлежность к дополнительным группам (supplementary group membership) для пользователя. Повторения игнорируются. Количество элементов в списке не должно превосходить NGROUPS_MAX- 1 , поскольку общее количество дополнительных групп для пользователя плюс основная группа не должно превосходить NGROUPS_MAX . Эта опция игнорируется, если новое регистрационное имя будет администрироваться сетевой информационной службой (NIS). См. раздел "Регистрационные имена сетевой информационной службы" ниже.
-d каталог Начальный каталог (home directory) нового пользователя. Длина этого поля не должна превосходить 256 символов. По умолчанию используется HOMEDIR/рег_имя , где HOMEDIR - базовый каталог для начальных каталогов новых пользователей, а рег_имя - регистрационное имя нового пользователя.
-s shell Полный путь к программе, используемой в качестве начального командного интерпретатора для пользователя сразу после регистрации. Длина этого поля не должна превосходить 256 символов. По умолчанию это поле - пустое, что заставляет систему использовать стандартный командный интерпретатор /usr/bin/sh . В качестве значения shell должен быть указан существующий выполняемый файл.
-c комментарий Любая текстовая строка. Обычно, это краткое описание регистрационного имени и используется сейчас для указания фамилии и имени реального пользователя. Эта информация хранится в записи пользователя в файле /etc/passwd . Длина этого поля не должна превосходить 128 символов.
-m Создает начальный каталог нового пользователя, если он еще не существует. Если каталог уже существует, добавляемый пользователь должен иметь права на доступ к указанному каталогу.
-k skel_dir Копирует содержимое каталога skel_dir в начальный каталог нового пользователя, вместо содержимого стандартного "скелетного" каталога, /etc/skel . Каталог skel_dir должен существовать. Стандартный "скелетный" каталог содержит стандартные файлы, определяющие среду работы пользователя. Заданный администратором каталог skel_dir может содержать аналогичные файлы и каталоги, созданные для определенной цели.
-f inactive Максимально допустимое количество дней между использованиями регистрационного имени, когда это имя еще не объявляется недействительным. Обычно в качестве значений используются положительные целые числа.
-e expire Дата, начиная с которой регистрационное имя больше нельзя будет использовать; после этой даты никакой пользователь не сможет получить доступ под этим регистрационным именем. (Эта опция удобна при создании временных регистрационных имен.) Вводить значение аргумента expire (представляющего собой дату) можно в любом формате (кроме Julian date). Например, можно ввести 10/6/99 или October 6, 1999 .
-p passgen Указывает, что поле FLAG в файле /etc/shadow должно быть установлено в указанное значение. К этому полю обращается команда passwd , чтобы определить, действует ли для данного пользователя генератор паролей. Если опция -p явно не задана, проверяется запись FORCED_PASS в файле /etc/default/useradd , чтобы определить значение для соответствующего поля в /etc/shadow . Если записи FORCED_PASS нет в /etc/default/useradd , в соответствующем поле записи в /etc/shadow значения не будет. Если значение FORCED_PASS равно 1, запись в /etc/shadow получает значение 1. Если значение passgen не пустое и не является печатным символом ASCII, выдается диагностическое сообщение.
-a событие Список типов или классов событий через запятую, образующих маску аудита (audit mask) для пользователя. Сразу после установки системы стандартной маски аудита для пользователя нет, но ее можно задать в файле /etc/default/useradd с помощью команды defadm . Эту опцию можно использовать, только если установлены утилиты аудита (Auditing Utilities). (Чтобы узнать, какие пакеты установлены в системе, выполните команду pkginfo .)
рег_имя Строка печатных символов, задающая регистрационное имя для нового пользователя. В ней не должно быть двоеточий (: ) и символов перевода строки (\n ). Она также не должна начинаться с прописной буквы.

Учтите, что многие из стандартных значений для рассмотренных выше параметров можно изменить с помощью команды defadm , предназначенной для работы с файлом /etc/default/useradd . Эти стандартные значения применяются только для локальных пользователей. Для пользователей NIS стандартные значения задаются в базе данных сетевой информационной службы. Чтобы изменить стандартные значения NIS, необходимо задать опции в командной строке.

Регистрационные имена сетевой информационной службы

Если регистрационное имя начинается с символа + , (например, +chris ), определением пользователя будет управлять сетевая информационная служба (NIS). Значения по умолчанию будут определяться на основе базы данных NIS, а не файла /etc/defaults/useradd . Значения аргументов для опций -u , -g и -G будут молча проигнорированы, если эти опции заданы. Вместо этого, значения идентификатора пользователя и идентификатора группы будут взяты из базы данных NIS. Подробнее см. страницу справочного руководства passwd . Учтите, что при добавлении пользователя NIS регистрационное имя должно уже существовать в базе данных NIS. Например, чтобы добавить регистрационное имя chris как имя пользователя NIS, chris уже должен существовать в базе данных NIS. Затем необходимо вызвать useradd с регистрационным именем +chris , чтобы указать, что необходимо добавить пользователя chris как пользователя NIS, а не как локального пользователя.

ФАЙЛЫ

/etc/default/useradd
/etc/group
/etc/passwd
/etc/security/ia/ageduid
/etc/security/ia/audit (если установлены утилиты аудита - Auditing Utilties)
/etc/security/ia/index
/etc/security/ia/master
/etc/shadow
/etc/skel

ДИАГНОСТИКА

Команда useradd завершается с кодом возврата 0 в случае успеха. При возникновении ошибок могут быть выданы следующие сообщения:


Неверный синтаксис командной строки.
The command line syntax was invalid.
В опции задан недопустимый аргумент.
An invalid argument was provided with an option.
Указанный в опции -u идентификатор уже используется, а опция -o не указана.
The uid specified with the -u option is already in use and the -o option was not specified.
Указанная в опции -g группа не существует.
The group specified with the -g option does not exist.
Указанное регистрационное имя не уникально.
The specified login is not unique.
Не удалось изменить /etc/group. Регистрационное имя добавлено в файл /etc/passwd, но не в файл /etc/group.
Cannot update /etc/group. The login was added to the /etc/passwd file but not to the /etc/group file.
Не удалось создать начальный каталог (в опции -m) или не удалось выполнить копирование skel_dir в начальный каталог.
Unable to create the home directory (with the -m option) or unable to complete the copy of skel_dir to the home directory.
Идентификатор недостаточно устарел. Выберите другой.
uid not aged sufficiently. Choose another.
Была указана недопустимая опция -a; системная служба не установлена.
An invalid option -a was specified; system service not installed.
Указан недопустимый тип или класс события аудита.
An invalid audit event type or class event was specified.

Оригинал: Linux Fundamentals
Автор: Paul Cobbaut
Дата публикации: 16 октября 2014 г.
Перевод: А.Панин
Дата перевода: 23 декабря 2014 г.

Глава 29. Группы пользователей

Учетные записи пользователей системы могут объединяться в рамках групп. Концепция групп пользователей позволяет устанавливать права доступа на уровне групп пользователей вместо установки аналогичных прав доступа для каждого отдельного пользователя.

В каждом дистрибутиве Unix или Linux имеется инструмент с графическим интерфейсом для управления группами пользователей. Пользователям, не имеющим опыта работы с данными системами, рекомендуется использовать именно эти инструменты. Более опытные пользователи могут использовать инструменты с интерфейсом командной строки для управления учетными записями пользователей, проявляя при этом осторожность: некоторые дистрибутивы не позволяют работать одновременно с инструментами для управления группами пользователей с графическим интерфейсом и интерфейсом командной строки (примером может служить инструмент YaST из состава дистрибутива Novell Suse). Опытные системные администраторы могут осуществлять непосредственное редактирование соответствующих файлов с помощью текстового редактора vi или утилиты vigr .

Утилита groupadd

Группы пользователей могут создаваться с помощью утилиты groupadd . В примере ниже показана методика создания пяти групп (без добавления в них пользователей). root@laika:~# groupadd tennis root@laika:~# groupadd football root@laika:~# groupadd snooker root@laika:~# groupadd formula1 root@laika:~# groupadd salsa

Файл group

Пользователи могут состоять в нескольких группах. Членство пользователей в группах описывается в файле /etc/group . root@laika:~# tail -5 /etc/group tennis:x:1006: football:x:1007: snooker:x:1008: formula1:x:1009: salsa:x:1010: root@laika:~#

Первым полем в строке с описанием группы пользователей является имя группы. Во втором поле размещается (зашифрованный) пароль группы (это поле может быть пустым). В третьем поле размещается идентификатор группы или значение GID . Четвертое поле является списком членов группы, который в данном случае является пустым, так как в группах нет пользователей.

Команда groups

Пользователь может выполнить команду groups для ознакомления со списком групп, в которых он состоит. $ groups harry sports $

Утилита usermod

Членство пользователя в группах может быть изменено с помощью утилиты useradd или usermod . root@laika:~# usermod -a -G tennis inge root@laika:~# usermod -a -G tennis katrien root@laika:~# usermod -a -G salsa katrien root@laika:~# usermod -a -G snooker sandra root@laika:~# usermod -a -G formula1 annelies root@laika:~# tail -5 /etc/group tennis:x:1006:inge,katrien football:x:1007: snooker:x:1008:sandra formula1:x:1009:annelies salsa:x:1010:katrien root@laika:~#

Проявляйте осторожность при использовании утилиты usermod для добавления пользователей в группы. По умолчанию утилита usermod будет удалять пользователя из всех групп, в которых он состоял, если имена данных групп не были переданы в составе команды! Использование параметра -a (append - дополнение) позволяет избежать данного поведения.

Утилита groupmod

Вы можете изменить имя группы пользователей с помощью утилиты groupmod . root@laika:~# groupmod -n darts snooker root@laika:~# tail -5 /etc/group tennis:x:1006:inge,katrien football:x:1007: formula1:x:1009:annelies salsa:x:1010:katrien darts:x:1008:sandra

Утилита groupdel

Вы можете навсегда удалить группу пользователей с помощью утилиты groupdel . root@laika:~# groupdel tennis root@laika:~#

Утилита gpasswd

Также вы можете делегировать функции контроля над членством в определенной группе пользователей другому пользователю с помощью утилиты gpasswd . В примере ниже мы делегируем права на добавление пользователей в группу sports и удаление их из нее пользователю serena. После этого мы используем команду su для добавления пользователя harry в группу sports от лица пользователя serena. # gpasswd -A serena sports # su - serena $ id harry uid=516(harry) gid=520(harry) группы=520(harry) $ gpasswd -a harry sports Добавление пользователя harry в группу sports $ id harry uid=516(harry) gid=520(harry) группы=520(harry),522(sports) $ tail -1 /etc/group sports:x:522:serena,venus,harry $

Администраторы групп пользователей не обязаны быть членами этих групп. Они могут удалить свои учетные записи из администрируемых ими групп пользователей и это никак не повлияет на их возможности добавления пользователей в эти группы или удаления пользователей из них. $ gpasswd -d serena sports Удаление пользователя serena из группы sports $ exit

Информация об администраторах групп пользователей хранится в файле /etc/gshadow . # tail -1 /etc/gshadow sports:!:serena:venus,harry #

Для удаления всех учетных записей администраторов из группы пользователей следует использовать утилиту gpasswd с параметрами для задания пустого списка администраторов. # gpasswd -A "" sports

Утилита newgrp

Вы можете запустить дочернюю командную оболочку с новой временной основной группой пользователя, воспользовавшись командой newgrp . root@rhel65:~# mkdir prigroup root@rhel65:~# cd prigroup/ root@rhel65:~/prigroup# touch standard.txt root@rhel65:~/prigroup# ls -l итого 0 -rw-r--r--. 1 root root 0 апр 13 17:49 standard.txt root@rhel65:~/prigroup# echo $SHLVL 1 root@rhel65:~/prigroup# newgrp tennis root@rhel65:~/prigroup# echo $SHLVL 2 root@rhel65:~/prigroup# touch newgrp.txt root@rhel65:~/prigroup# ls -l итого 0 -rw-r--r--. 1 root tennis 0 апр 13 17:49 newgrp.txt -rw-r--r--. 1 root root 0 апр 13 17:49 standard.txt root@rhel65:~/prigroup# exit exit root@rhel65:~/prigroup#

Утилита vigr

По аналогии с утилитой vipw, утилита vigr может использоваться для редактирования файла /etc/group в ручном режиме, так как она осуществляет корректную блокировку этого файла в процессе редактирования. Текстовый редактор vi или утилита vigr может использоваться для управления группами пользователей исключительно опытными системными администраторами.

Практическое задание: группы пользователей

Корректная процедура выполнения практического задания: группы пользователей

1. Создайте группы пользователей tennis, football и sports.

Groupadd tennis ; groupadd football ; groupadd sports

2. С помощью одной команды сделайте пользователя venus членом групп tennis и sports.

Usermod -a -G tennis,sports venus

3. Переименуйте группу пользователей fotball в foot.

Groupmod -n foot football

4. Используйте текстовый редактор vi для добавления пользователя serena в группу пользователей tennis.

5. Используйте команду id для того, чтобы убедиться, что пользователь serena состоит в группе пользователей tennis.

Id (после выхода из системы и входа в нее пользователь serena должен быть членом группы)

6. Сделайте кого-либо из пользователей ответственным за управление членством пользователей в группах foot и sports. Проверьте работоспособность использованного механизма.

Gpasswd -A (для того, чтобы сделать пользователя ответственным за управление членством в группе пользователей) gpasswd -a (для того, чтобы сделать пользователя членом группы пользователей)

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

Пользователи и Группы в Linux

Пользователи:

Business – Internet Access #1.

Пользователь – это любой кто пользуется компьютером. Пользователю назначается имя, имя должно быть уникальным в системе (linux есть зарезервированные имена, такие как «root», «hal», и «adm»). Имя может состоять из букв английского алфавита, арабских чисел и символов «_»(нижний пробел) «.» (точка).

Root (от англ root - корень; читается «рут»), суперпользователь - это аккаунт в UNIX-подобных операционных системах с идентификатором (UID) 0, владелец этого аккаунта имеет право на выполнение любой операции. В целях безопасности работать под суперпользователем root не рекомендуется.

Помимо системного имени, в систему может занестись и хранится полное имя (например Ф.И.О)(full name) реального пользователя. Например, пользователю newuser в реальной жизни может соответствовать человек по имени John Smith. Эта информация позволит лучше контролировать и идентифицировать пользователей системному администратору, тем более, если пользователей в системе сотни или даже тысячи.

Под каждого пользователя, создается свой каталог (home directory). В этот каталог попадает пользователь, после того как он авторизировался и в нем храниться личные файлы и папки пользователя. Все каталоги пользователей собраны в одном месте, обычно это /home.

Также, пользователю назначается командная оболочка (командный интерпретатор, используемый в операционных системах семейства UNIX). Например: /bin/bash, /bin/zsh, /bin/sh и.т.д. У многих дистрибутивов linux, для пользователей, по умолчанию назначается командная оболочка bash.

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

Также, каждому пользователю назначается пароль для входа в систему. Пароль храниться в зашифрованном виде (encripted). Для создания и изменения пароля используется команда passwd. Системный администратор может сам назначить пароль или дать возможность пользователю ввести свой пароль при первой авторизации.

Каждый пользователь принадлежит минимум к одной или нескольким группам. (пользователи и группы в linux)

Группы:

Для разграничения прав в linux, помимо пользователей, существуют группы . Так же как и пользователь, группа обладает правам доступа к тем или иным каталогам, файлам, периферии (в системе есть зарезервированные группы). Для каждого файла определён не только пользователь, но и группа. Группы группируют пользователей для предоставления одинаковых полномочий на какие-либо действия.

Каждой группе назначается идентификационный номер (group ID ). Сокращённо GID, является уникальный идентификатором группы. Принадлежность пользователя к группе устанавливается администратором.

Просмотр пользователей

(пользователи и группы в linux) Вся вышеизложенная информация хранится в файле /etc/passwd. Чтобы посмотреть список пользователей нужно ввести команду:

# cat /etc/passwd

Каждый аккаунт занимает одну строку. Вывод может быть следующим:

Root:xD928Jhs7sH32:0:0:root:/root:/bin/bash newuser:Xv8Q981g71oKK:1000:100:John Smith:/home/newuser:/bin/bash

Эта строки имеет следующий формат:

Account:password:UID:GID:GECOS:directory:shell

Account - имя пользователя password - зашифрованный пароль пользователя UID - идентификационный номер пользователя GID - идентификационный номер основной группы пользователя GECOS - необязательное поле, используемое для указания дополнительной информации о пользователе (например, полное имя пользователя) directory - домашний каталог ($HOME) пользователя shell - командный интерпретатор пользователя (обычно /bin/sh)

Для просмотра списка пользователей которые находятся в данный момент времени в системе есть команда who.

Вывод может быть следующий:

Newuser pts/0 2013-11-13 14:19 (:0)

Создание, управление и удаление пользователей

(пользователи и группы в linux) При создании новых пользователей совершается последовательность определенных действий. Сначала заводится запись в файле/etc/passwd, где пользователю назначается уникальное имя, UID, GID и другая информация. UID должен быть больше 1000, а GID более 100, это связано с тем, что система резервирует маленькие значения под свои нужды. Также, создается каталог, устанавливаются права, помещаются файлы инициализации командной оболочки и модифицируются конфигурационные файлы.

Для того, чтобы не вводить эту информацию вручную, существует программа useradd(или adduser). Настройки этой программы хранятся в файле /etc/default/useradd.

# cat /etc/default/useradd

Вывод следующий:

GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=no

В нем можно изменить параметры по умолчанию. Например, директорию для пользователей с /home на /home/user или интерпретатор с /bin/bash на /bin/sh.

Для создания нового пользователя воспользуемся командой useradd:

# useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash newuser

Расшифровка:

# useradd -m -g [основная группа] -G [список дополнительных групп] -s [командный интерпретатор] [имя пользователя]

  • -m - создаёт домашний каталог, вида /home/[имя пользователя].
  • -g - имя или номер основной группы пользователя.
  • -G - список дополнительных групп, в которые входит пользователь.
  • -s - определяет командную оболочку пользователя.

Для более детальной информации воспользуйтесь мануалом:

# man useradd

Командой chfn можно внести или изменить информацию учетной запеси пользователя (ФИО, рабочий телефон, рабочие координаты и.т.д)(username - имя пользователя).

# chfn [-f полное-имя][-о office][-p рабочий-телефон][-h домашний-телефон][-u][-v]

Для задания пароля используется команда passwd:

Если мы хотим заставить пользователя сменить пароль на свой при первом входе в систему нужно применить команду:

# chage -d 0

Более подробно о команде chage можно почитать в мануале, введите:

# man chage

Для того, чтобы удалить пользователя существует команда userdel

# userdel -r

Параметр -r указывает на то, что следуют вмести с пользователем удалить домашнею директорию и почтовый ящик.

Управление группами

Для просмотра всех групп системы и каким пользователем они принадлежат нужно ввести следующее:

# cat /etc/group

Файл /etc/group определят группы в системе. Чтобы посмотреть в каких групах состоит пользователь нужно набрать:

# groups

Команда id показывает более подробную информацию.

# id

Для создание новой группы:

# groupadd

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

# gpasswd -a

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

# gpasswd -d

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

# groupdel

(пользователи и группы в linux) На этом в принципе все, самое основное изложено.

Создание новой группы в системе
Этой командой можно создать новую группу пользователей (далее группу) group в системе:

Добавление нового пользователя в систему
Нового пользователя user можно добавить командой :


Он автоматически будет помещен в индивидуальную группу, названную в честь его.
Чтобы добавить пользователя user в уже существующую группу group прописываем:

Этой командой пользователя можно добавить сразу в несколько групп. Для этого имена групп перечисляем через запятую.

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

useradd -g groupname user

Эта группа для пользователя будет являться основной.

Задание пароля пользователю
Пароль для пользователя user задается командой:


Эта команда попросит ввести пароль дважды. Никогда не оставляйте пользователя без пароля!
Иногда необходимо запретить пользователю вход в систему. Например если нужен доступ только к сетевому общему ресурсу. (Подробнее об этом .) Для этого следует изменить файл passwd следующей командой:

В поле пароля добавляю символ звездочки "*" перед самим паролем (подробнее этот файл описан в конце статьи). Сохраняем сделанные изменения и выходим клавишами Ctrl+X , клавишей Y подтверждаем наш выбор.Для большей безопасности этот файл можно отредактировать командой vipw . Чтобы выйти из редактора с сохранением изменений требуется выполнить :wq . Для выхода без сохранения изменений прописываем :q или :q! , если были произведены какие либо изменения.

Файлы с информацией о пользователях
Следующая информация приведена для лучшего понимания создания пользователей системы и более тонкой настройки. Для редактирования пользователей в большинстве случаев будет проще использовать команду usermod . Подробнее об этой команде можно узнать выполнив

. Обычно для добавления и редактирования пользователя достаточно выше приведенных команд.
Вся информация о пользователях системы и о группах хранится в следующих файлах:
- /etc/passwd в этом файле содержится весь список пользователей, о которых известно системе. Каждая строка этого файла описывает пользователя и содержит семь полей, в которых указана пользовательская информация. Поля разделены двоеточиями.
1.
2. Шифрованный пароль пользователя (никогда не оствляйте это поле пустым);
3. Идентификатор пользователя (UID);
4. Идентификатор группы (GID);
5. Поле GECOS, в котором можно указать полное имя пользователя, рабочий домашний телефон, место работы и прочее;
6. Путь к домашнему каталогу;
7. Регистрационная оболочка.

- /etc/shadow здесь хранятся пароли в зашифрованном виде. Этот файл доступен суперпользователю только для чтения. Каждая строка соответствует одному пользователю. В нем содержится девять полей, разделенных двоеточиями:
1. Регистрационное имя пользователя;
2. Зашифрованный пароль пользователя;
3. Дата последнего изменения пароля;
4. Минимальное число дней между изменениями пароля;
5. Максимальное число дней между изменениями пароля;
6. Количество дней до предупреждения об окончании действия пароля;
7. Количество дней до окончания действия пароля;
8. Срок действия учетной записи;
9. Зарезервированное пустое поле, которое не используется.
Поля дат в данном файле заполняются числом дней, прошедших от 1 января 1970 года. Обязательно заполнены должны быть первые два поля!

- /etc/group содержит список групп и имена пользователей, входящие в эти группы. Подобно предыдущим файлам каждая строка соответствует одной группе и имеет четыре поля, которые разделены двоеточиями:
1. Имя группы;
2. Зашифрованный пароль или символ x указывающий на использование файла gshadow (когда для подключения пользователя к группе с помощью утилиты newgrp нужно ввести пароль);
3. Идентификатор группы (GID);
4. Список членов данной группы, которые разделены запятой.