Марк Митчелл - Программирование для Linux. Профессиональный подход

Здесь есть возможность читать онлайн «Марк Митчелл - Программирование для Linux. Профессиональный подход» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2002, ISBN: 2002, Издательство: Вильямс, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программирование для Linux. Профессиональный подход»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Данная книга в основном посвящена программированию в среде GNU/Linux. Авторы применяют обучающий подход, последовательно излагая самые важные концепции и методики использования расширенных возможностей системы GNU/Linux в прикладных программах. Читатели научатся писать программы, к интерфейсу которых привыкли пользователи Linux; освоят такие технологии, как многозадачность, многопотоковое программирование, межзадачное взаимодействие и взаимодействие с аппаратными устройствами; смогут улучшить свои программы, сделав их быстрее, надежнее и безопаснее; поймут особенности системы GNU/Linux, ее ограничения, дополнительные возможности и специфические соглашения.
Книга предназначена для программистов, уже знакомых с языком С и имеющих базовый опыт работы в GNU/Linux.

Программирование для Linux. Профессиональный подход — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программирование для Linux. Профессиональный подход», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

У каждого файла есть лишь один пользователь-владелец и одна группа-владелец . При создании файла за ним закрепляются идентификаторы пользователя и группы того процесса, в котором происходит эта операция.

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

Linux позволяет задавать, какие действия — чтение, запись, выполнение — разрешено осуществлять над файлом его владельцу, группе и остальным пользователям. Например, можно указать, что владелец имеет все права доступа к файлу, пользователям группы разрешено читать и выполнять файл (но не записывать в него), а остальные пользователи не должны получать к нему доступ.

Совокупность прав доступа к файлу называется кодом режима . Он состоит из трех триад битов, соответствующих владельцу, группе и остальным пользователям. В каждой триаде первый бит означает право чтения, второй — право записи, третий — право выполнения. Символьное представление этих битов называется строкой режима . Просмотреть ее можно с помощью команды ls -lили системного вызова stat(). Задание прав доступа к файлу осуществляется с помощью команды chmodили одноименного системного вызова. Допустим, имеется файл helloи требуется узнать права доступа к нему. Вот как это делается:

% ls -l hello

-rwxr-x--- 1 samuel csl 11734 Jan 22 16:29 hello

Третье и четвертое поля выводных данных сообщают о том, что файл принадлежит пользователю samuelи группе csl. В первом поле отображается строка режима. Начальный дефис указывает на то, что это обычный файл. В случае каталога здесь будет стоять буква d. Специальные файлы, например файлы устройств (см. главу 6, "Устройства") или каналы (см. раздел 5.4, "Каналы"), обозначаются другими буквами. Следующие три символа соответствуют правам владельца файла. В данном случае пользователь samuelимеет право чтения, записи и выполнения файла. Далее указаны права группы, которой принадлежит файл. Пользователям группы разрешено читать и выполнять файл. Последние три символа в строке режима обозначают права остальных пользователей, которым запрещен доступ к файлу.

Давайте проверим, действительно ли все вышесказанное — правда. Для начала попробуем обратиться к файлу от имени пользователя nobody, не входящего в группу csl:

% id

uid=99(nobody) gid=99(nobody) groups=99(nobody)

% cat hello

cat: hello: Permission denied

% echo hi > hello

sh: ./hello: Permission denied

% ./hello

sh: ./hello: Permission denied

Команда catне смогла выполниться, потому что у нас нет права чтения файла. Запись в файл тоже не разрешена, поэтому потерпела неудачу команда echo. А поскольку право выполнения также отсутствует, запустить программу helloне удалось.

Посмотрим, что будет, если к файлу обратится пользователь mitchell, являющийся членом группы csl:

% id

uid=501 (mitchell) gid=501 {mitchell) groups=501 (mitchell), 503 (csl)

% cat hello

#!/bin/bash

echo "Hello, world."

% ./hello

Hello, world.

% echo hi > hello

bash: ./hello: Permission denied

В данном случае можно отобразить содержимое файла и запустить его на выполнение (файл является простейшим командным сценарием), но осуществить перезапись файла невозможно. Доступ для записи разрешен только владельцу файла (пользователь samuel):

% id

uid=502(samuel) gid=502(samuel) groups=502(samuel),503(csl)

% echo hi > hello

% cat hello

hi

Менять режим доступа к файлу может только его владелец, а также суперпользователь. Если требуется разрешить всем пользователям запускать файл на выполнение, то это делается так:

% chmod o+k hello

% ls -l hello

-rwxr-x--x 1 samuel csl 3 Jan 22 16:38 hello

Обратите внимание на появление буквы xв конце строки режима. Флаг о+xкоманды chmodозначает добавление ( +) права выполнения ( x) для остальных пользователей ( о). Если требуется, к примеру, отнять право записи у группы, следует задать такой флаг: g-w.

Функция stat()позволяет определить режим доступа к файлу программным путем. Она принимает два аргумента: имя файла и адрес структуры, заполняемой информацией о файле. Подробнее функция stat()описана в приложении Б, "Низкоуровневый ввод-вывод". Пример ее использования показан в листинге 10.2.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программирование для Linux. Профессиональный подход»

Представляем Вашему вниманию похожие книги на «Программирование для Linux. Профессиональный подход» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Программирование для Linux. Профессиональный подход»

Обсуждение, отзывы о книге «Программирование для Linux. Профессиональный подход» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x