Основы программирования в Linux
Шрифт:
Когда пользователь регистрируется в системе Linux, у него или у нее есть имя пользователя и пароль. После того как эти данные проверены, пользователю предоставляется командная оболочка. В системе у пользователя также есть уникальный идентификатор пользователя, называемый UID (user identifier). Каждая программа, выполняемая Linux, запускается от имени пользователя и имеет связанный с ней UID.
Вы можете настроить выполнение программ так, как будто они запускаются другим пользователем. Если у программы есть свой набор прав доступа для UID, она будет выполняться от имени владельца исполняемого файла. Когда выполнена команда su, программа действует так, как будто она запущена суперпользователем. Затем она проверяет право доступа пользователя, изменяет UID на идентификатор назначенной учетной записи и запускает регистрационную командную оболочку данной учетной записи. Этот прием позволяет программе выполняться от имени другого пользователя и часто используется системными администраторами для выполнения задач технического обслуживания системы.
Поскольку UID — это ключевой параметр для идентификации пользователя, начнем с него.
У UID есть свои тип
Функция
Функция
Системный файл /etc/passwd содержит базу данных, имеющую дело с учетными записями пользователей. Он состоит из строк по одной на каждого пользователя, в каждую строку включены имя пользователя, зашифрованный пароль, идентификатор пользователя (UID), идентификатор группы (GID), полное имя, исходный каталог и командная оболочка, запускаемая по умолчанию. Далее приведен пример такой строки:
Если вы пишете программу, которая определяет UID пользователя, запустившего ее, то можете расширить ее возможности и заглянуть в файл passwd для выяснения регистрационного имени пользователя и его полного имени. Мы не рекомендуем делать это, потому что современные UNIX-подобные системы уходят от применения файлов учетных записей пользователей для повышения безопасности системы. Многие системы, включая Linux, имеют возможность использовать файлы теневых паролей (shadow password), совсем не содержащие пригодной информации о зашифрованных паролях (она часто хранится в файле /etc/shadow, которые обычные пользователи не могут читать). По этой причине определен ряд функций для предоставления эффективного программного интерфейса, позволяющего получать эту пользовательскую информацию.
Структура базы данных учетных записей пользователей
Таблица 4.4
| Элемент passwd | Описание |
|---|---|
| char *pw_name | Регистрационное имя пользователя |
| uid_t pw_uid | Номер UID |
| gid_t pw_gid | Номер GID |
| char *pw_dir | Исходный каталог пользователя |
| char *pw_gecos | Полное имя пользователя |
| char *pw_shell | Командная оболочка пользователя, запускаемая по умолчанию |
В некоторых системах UNIX может использоваться другое имя для поля с полным именем пользователя: в одних системах это
Выполните упражнение 4.11.
В этом упражнении показана программа user.c, извлекающая некоторую информацию о пользователе из базы данных учетных записей.
Программа предоставит следующий вывод, который может слегка отличаться в разных версиях Linux и UNIX:
Барон Бранд Берс. Том 1
1. Бранд Берс
Проза:
магический реализм
рейтинг книги
Шайтан Иван 5
5. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
рейтинг книги
Святая Русь
7. Государи московские
Научно-образовательная:
история
рейтинг книги
Неучтенный элемент. Том 10
10. Антимаг. Вне системы
Фантастика:
фэнтези
рейтинг книги
Избранное
Старинная литература:
европейская старинная литература
рейтинг книги
Ермак. Регент
10. Ермак
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Я снова князь. Книга XXIII
23. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Я уже царь. Книга XXIX
29. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Умри завтра
5. Рой Грейс
Детективы:
триллеры
рейтинг книги
Избранное
Фантастика:
альтернативная история
рейтинг книги
Газлайтер. Том 26
26. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Посольство
Детективы:
политические детективы
рейтинг книги
Воин-Врач
1. Воин-Врач
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
рейтинг книги
Туманы Авалона
Шедевры фантастики
Фантастика:
фэнтези
альтернативная история
рейтинг книги