Читаем Linux API. Исчерпывающее руководство полностью

Идентификатор группы (GID). Это числовой идентификатор первой из групп, в которую входит пользователь. Дальнейшая принадлежность к группам этого пользователя определена в системном файле групп.

Комментарий. Это поле содержит текст, описывающий пользователя. Такой текст выводится различными программами, например finger(1).

Домашний каталог. Исходный каталог, в который пользователь попадает после входа в систему. Содержимое этого поля становится значением переменной среды HOME.

• Оболочка входа в систему. Это программа, которой передается управление после входа пользователя в систему. Обычно это одна из оболочек, например bash, но может быть и любая другая программа. Если это поле остается пустым, то в качестве исходной применяется оболочка /bin/sh, Bourne shell. Содержимое поля становится значением переменной среды SHELL.

В автономной системе вся информация, касающаяся паролей, находится в файле /etc/passwd. Но если для хранения паролей в сетевой среде используется такая система, как Network Information System (NIS) или Lightweight Directory Access Protocol (LDAP), часть этой информации или же вся она целиком находится в удаленной системе. Поскольку программы, обращающиеся за информацией о паролях, используют рассматриваемые далее функции (getpwnam(), getpwuid() и т. д.), приложениям безразлично, что именно применяется: NIS или LDAP. То же самое можно сказать и о теневых файлах паролей и групп, рассматриваемых в следующих разделах.

8.2. Теневой файл паролей: /etc/shadow

Исторически сложилось так, что в системах UNIX вся информация о пользователях, включая зашифрованные пароли, хранится в файле /etc/passwd. В связи с этим возникают проблемы безопасности. Поскольку различным непривилегированным системным утилитам требуется доступ для чтения к другой информации, содержащейся в файле паролей, ее нужно делать доступной для чтения для всех пользователей. Тем самым открывается лазейка для программ по взлому паролей, пытающихся их расшифровать с помощью длинных списков наиболее вероятных вариантов (например, стандартных записей из словарей или имен людей), чтобы определить, соответствуют ли они зашифрованному паролю пользователя. Теневой файл паролей, /etc/shadow, был разработан как средство противостояния таким атакам. Замысел заключается в том, что вся неконфиденциальная информация о пользователе находится в открытом, доступном для чтения файле паролей, а зашифрованные пароли хранятся в теневом файле паролей, доступном для чтения только программам с особыми привилегиями.

Вдобавок к имени для входа в систему, обеспечивающему совпадение с соответствующей записью в файле паролей, и зашифрованному паролю теневой файл паролей также содержит ряд других полей, связанных с обеспечением мер безопасности. Дополнительные подробности, касающиеся этих полей, можно найти на странице руководства shadow(5). Нас же главным образом интересует поле зашифрованного пароля, которое более подробно мы рассмотрим при изучении библиотечной функции crypt() в разделе 8.5.

Теневые пароли в SUSv3 не определены. Кроме того, они предоставляются не всеми реализациями UNIX.

8.3. Файл групп: /etc/group

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

Набор групп, к которым принадлежит пользователь, определен в виде сочетания поля идентификатора группы в записи пользователя в файле паролей и групп, под которыми этот пользователь перечисляется в файле групп. Это странное разбиение информации на два файла сложилось исторически. В ранних реализациях UNIX можно было одновременно входить только в одну группу. Исходная группа, в которую входил пользователь при входе в систему, определялась полем GID файла паролей и могла быть в нем изменена после использования команды newgrp(1). Эта команда требовала от пользователя предоставить пароль группы (если вход в группу был защищен паролем). В 4.2BSD было введено понятие одновременной принадлежности к нескольким группам, позже ставшее стандартом в POSIX.1-1990. Согласно этой схеме в файле групп имелся список принадлежности каждого пользователя к дополнительным группам. (Команда groups(1) выводит либо те группы, в которые входит данный процесс оболочки, либо, если были переданы (одно или несколько) имена пользователей, — те группы, в которые входят эти пользователи.)

Файл групп /etc/group содержит по одной строке для каждой группы в системе. Каждая строка, как показано в следующем примере, состоит из четырех полей, отделенных друг от друга двоеточиями:

users: x:100:

jambit: x:106:claus,felli,frank,harti,markus,martin,mtk,paul

Рассмотрим эти поля в порядке следования.

• Имя группы. Как и имя для входа в систему в файле паролей, имя группы можно рассматривать как легко читаемый символьный идентификатор, соответствующий числовому идентификатору группы.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
C++ Primer Plus
C++ Primer Plus

C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:• A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard• Complete, integrated discussion of both basic C language and additional C++ features• Clear guidance about when and why to use a feature• Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time• Hundreds of practical sample programs• Review questions and programming exercises at the end of each chapter to test your understanding• Coverage of generic C++ gives you the greatest possible flexibility• Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Стивен Прата

Программирование, программы, базы данных