3.3. Идентификаторы пользователя и группы

3.3. Идентификаторы пользователя и группы

Система Linux чем-то похожа на монархическое государство: в нем существует один суперпользователь — root, которому все подчиняется, и определенное число обыкновенных пользователей. Это значит, что если вы попробуете удалить один из жизненно важных файлов Linux под учетной записью пользователя, то система не позволит вам этого сделать. Под учетной записью root вы имеете право делать все, что вам заблагорассудится. Поэтому в целях безопасности, даже если вы используете систему в гордом одиночестве, рекомендуется создавать в системе хотя бы одного пользователя, под которым вы будете работать. Если вы работаете с системой на правах пользователя, а вам вдруг потребовались права суперпользователя, то в этой ситуации вы можете воспользоваться командой su, которая в большинстве случаях вам поможет. Эта команда разрешит вам использовать привилегии суперпользователя без завершения текущего сеанса работы.

Для создания учетной записи используется команда adduser <имя_пользователя>. Естественно, добавлять новых пользователей может только root. После создания новой учетной записи не забудьте изменить пароль пользователя командой passwd <имя_пользователя>.

При добавлении новых пользователей используются параметры по умолчанию. Естественно, они вас не будут устраивать (например, только потому, что для каждого нового пользователя создается новая группа с именем пользователя). Изменить эти параметры можно с помощью опций программы passwd. Более подробно об этих опциях вы можете прочитать в справочной системе (man passwd). Для автоматизации процесса создания учетных записей я предлагаю использовать небольшой сценарий, который вы найдете в конце этой главы.

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

В общем случае система хранит следующую информацию о пользователе: Имя пользователя (username)— регистрационное имя пользователя, то есть логин. Желательно, хотя и не обязательно, создавать пароли, каким-то образом ассоциирующиеся с определенными пользователями (с их реальными именами). Это упрощает работу администратора, позволяя ему быстро по паролю распознавать пользователя.

Идентификатор пользователя (User ID) — индивидуальный числовой идентификатор пользователя (UID). Система обычно работает с UID, а не с именами пользователей. Идентификатор задается из диапазона 0…65534 и должен быть уникальным. Число 0 соответствует пользователю root. Желательно идентификаторы назначать не произвольным образом, а системно. Например, выделить определенный интервал (1000…1100) под одну группу пользователей, а еще один (2000…2100) — под другую группу. В каждом диапазоне назначать идентификаторы последовательно. Это опять же упростит администрирование и позволит, бегло взглянув на список процессов, сразу же определить кто чем занимается.

Идентификатор группы (Group ID) — числовой идентификатор первичной группы пользователя (GID). Помимо первичной группы пользователь может входить или не входить в состав разных групп, но в первичную группу (native group) он входит всегда. В различных дистрибутивах это выглядит по-разному. Идентификатор группы 0 соответствует группе root.

Пароль (password) — пароль.

Реальное имя пользователя (full name) — обычно представляет собой реальное (фактическое) имя пользователя, например, ivan ivanov. Может содержать и другие данные: номер телефона и т.п. Эти сведения используются в информационных целях.

Домашний каталог пользователя (home dir) — вкачестве домашнего каталога обычно используется каталог /home/<имя_пользователя> (например, /home/den). Без особых причин не рекомендуется изменять такую организацию домашних каталогов.

Оболочка пользователя (login shell) — командный интерпретатор пользователя, который используется им по умолчанию. Программа-оболочка (командный интерпретатор) запускается при входе пользователя в систему. Примеры командных интерпретаторов: ash, bash, csh, fcsh, ksh.

Вся эта информация хранится в файле /etc/passwd в следующем виде:

username:password:UID:GID:full_name:home_dir:login_shell

Пример фрагмента файла /etc/passwd:

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

den:x:500:500:den:/home/den:/bin/bash

evg:x:501:501::/home/evg:/bin/bash

На практике обычно используются теневые пароли, и вместо пароля в файле /etc/passwd стоит *, а сам пароль хранится в файле /etc/shadow, естественно в зашифрованном виде. Применение теневых паролей оправдывает себя с точки зрения безопасности. Обычно к файлу /etc/passwd разрешен доступ в режиме «только чтение» всем пользователям. К файлу /etc/shadow обычный пользователь не имеет даже такого доступа.

В качестве основного алгоритма шифрования используется MD5. Этот алгоритм является самым надежным. Раньше использовались алгоритмы DES и 3DES, но здесь я не буду подробно останавливаться ни на одном из них. При установке системы обычно спрашивается, хотите ли вы использовать теневые пароли (Shadow Passwords) и MD5. Я очень рекомендую вам использовать обе эти возможности.

Домашние каталоги пользователей обычно располагаются в каталоге /home основной файловой системы, но вы можете назначить и любой каталог в качестве домашнего. Суперпользователь использует домашний каталог /root. Для перехода в домашний каталог используется команда cd ~.

Примечание. В Linux текущий каталог обозначается точкой, родительский каталог — двумя точками, а домашний каталог пользователя — символом ~ (тильда).

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Похожие главы из других книг:

Идентификаторы

Из книги автора

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


11.2. Получение ID пользователя и группы

Из книги автора

11.2. Получение ID пользователя и группы Получение от системы сведений о UID и GID просто. Функции следующие:#include <unistd.h> /* POSIX */uid_t getuid(void); /* Действительный и эффективный UID */uid_t geteuid(void);gid_t getgid(void); /* Действительный и эффективный GID */gid_t getegid(void);int getgroups(int size, gid_t list[]); /* Список


Идентификаторы процессов

Из книги автора

Идентификаторы процессов Процесс может получить идентификатор и дескриптор нового дочернего процесса из структуры PROCESS_INFORMATION. Разумеется, закрытие дескриптора дочернего процесса не приводит к уничтожению самого процесса; становится невозможным лишь доступ к нему со


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

Из книги автора

Создание пользователя и группы на рабочей станции В сценарии AddUser.js, который приведен в листинге 11.2, для создания нового пользователя на рабочей станции выполняются следующие шаги. Во-первых, производится связывание с нужным компьютером (в нашем примере это рабочая


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

Из книги автора

Удаление пользователя и группы на рабочей станции   Для удаления созданных с помощью сценариев AddUser.js и AddGroup.js пользователя XUser и группы XGroup мы создадим сценарий DelUserAndGroup.js, который представлен в листинге 11.5. Замечание Для удаления пользователя или группы у вас в системе


Реальный (RID) и эффективный (EUID) идентификаторы пользователя

Из книги автора

Реальный (RID) и эффективный (EUID) идентификаторы пользователя Реальным идентификатором пользователя данного процесса является идентификатор пользователя, запустившего процесс. Эффективный идентификатор служит для определения прав доступа процесса к системным ресурсам


Реальный (RGID) и эффективный (EGID) идентификаторы группы

Из книги автора

Реальный (RGID) и эффективный (EGID) идентификаторы группы Реальный идентификатор группы равен идентификатору первичной или текущей группы пользователя, запустившего процесс. Эффективный идентификатор служит для определения прав доступа к системным ресурсам по классу


Идентификаторы процесса

Из книги автора

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


Идентификаторы и имена в IPC

Из книги автора

Идентификаторы и имена в IPC Как было показано, отсутствие имен у каналов делает их недоступными для независимых процессов. Этот недостаток устранен у FIFO, которые имеют имена. Другие средства межпроцессного взаимодействия, являющиеся более сложными, требуют


3.6.2. Запрет квоты для пользователя или группы

Из книги автора

3.6.2. Запрет квоты для пользователя или группы Иногда не нужно ограничивать какого-то отдельного пользователя — и в самом деле, не будете же вы ограничивать самого себя? Тогда для этого вам нужно использовать программу edquota и установить значения soft и hard равными 0. После


R.2.3 Идентификаторы

Из книги автора

R.2.3 Идентификаторы Идентификатор - это последовательность букв и цифр произвольной длины. Первый символ должен быть буквой, символ подчеркивания _ считается буквой. Прописные и строчные буквы различаются. Все символы


Идентификаторы

Из книги автора

Идентификаторы Идентификаторы – это имена констант, переменных, типов, свойств, процедур, функций, программ и программных модулей. Могут быть длиной до 255 символов, начинаться с символа или знака подчеркивания; могут содержать символы, цифры и знаки подчеркивания и не


3.1.1. Идентификаторы процессов

Из книги автора

3.1.1. Идентификаторы процессов Каждый процесс в Linux помечается уникальным идентификатором (PID, process identifier). Идентификаторы — это 16-разрядные числа, назначаемые последовательно по мере создания процессов.У всякого процесса имеется также родительский процесс (за


Идентификаторы

Из книги автора

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


Идентификаторы

Из книги автора

Идентификаторы Идентификаторы именуют переменные и функции. С каждым идентификатором ассоциируется тип, который задается при его объявлении. Значение объекта, именуемого идентификатором, зависит от типа следующим образом:1) Идентификаторы переменных целого и


Идентификаторы с разделителями в SQL-92

Из книги автора

Идентификаторы с разделителями в SQL-92 В базах данных диалекта 3 Firebird поддерживает соглашение ANSI SQL о необязательных идентификаторах с разделителями. Для использования зарезервированных слов, строк, чувствительных к регистру, или пробелов в именах объектов заключите имя