Литвек - электронная библиотека >> Дэвид Тейнсли >> Руководства и инструкции и др. >> Linux и UNIX: программирование в shell. Руководство разработчика. >> страница 3
группы, в которую входит владелец файла 3756 Размер файла в байтах Oct 14 04:44 Дата и время последнего изменения файла dmesg Имя файла

1.2. Типы файлов

В начале строки режима может стоять не только символ ' — " или d, ведь в каталоге насчитывается до семи различных типов записей (табл. 1.1):

Таблица 1.1. Типы файлов


d Каталог l Символическая ссылка (указатель на другой файл) s Сокет b Специальный блочный файл с Специальный символьный файл p Файл именованного канала — Обычный файл или, если выразиться точнее, ни один из файлов, перечисленных выше

1.3. Права доступа к файлам

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

$ touch myfile

Теперь выполним команду ls -1:

$ ls -1 myfile

-rw‑r--r-- 1 dave admin 0 Feb 19 22:05 myfile


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


Права владельца Права группы Права остальных пользователей rw- r-- r-- Следующие три символа в строке режима (rw-) описывают права доступа к созданному файлу со стороны его владельца (пользователь dave). За ними следуют символы r--, указывающие на права группы, в которую входит этот пользователь (в данном случае он является членом группы admin). Последние три символа (r--) представляют собой права пользователей, не принадлежащих к данной группе.

Существует три вида разрешений:


r Право чтения данного файла w Право записи/изменения данного файла x Право выполнения данного файла, если он является сценарием или программой Следовательно, строку режима для файла myfile необходимо интерпгретировать следующим образом:


- rw- r-- r-- Обычный файл Владелец может Пользователи указанной группы могут осуществлять только чтение этого файла Остальные пользователи также могут осуществлять только чтение этого файла осуществлять чтение и запись этого файла Возможно, вы обратили внимание на то, что при создании файла myfile владелец не получил право выполнять данный файл. Это связано с ограничениями, установленными по умолчанию в системе. Ситуация прояснится чуть позже, когда мы изучим команду umask.

Рассмотрим несколько дополнительных примеров (табл. 1.2).

Таблица 1.2. Примеры строк режима

Строка режима Результат


r-- --- --- Доступ к файлу разрешен только владельцу, который может читать содержимое файла, но не имеет права осуществлять запись в файл и выполнять его r--r-- --- Доступ к файлу возможен только для чтения и разрешен владельцу и всем пользователям группы, в которую он входит r--r--r-- Любой пользователь может получить доступ к файлу для чтения, остальные действия запрещены rwx --- --- Владелец имеет полный доступ к файлу, для остальных пользователей файл недоступен rwxr‑x --- Владелец имеет полный доступ к файлу; пользователи группы, в которую входит владелец, могут читать файл и запускать его на выполнение; для остальных пользователей файл недоступен rwxr‑x r‑x Владелец имеет полный доступ к файлу; остальные пользователи могут читать файл и запускать его на выполнение rw‑rw- --- Владелец и пользователи группы, в которую он входит, могут осуществлять чтение и запись файла; для остальных пользователей файл недоступен rw‑rw‑r-- Владелец и пользователи группы, в которую он входит, могут осуществлять чтение и запись файла; остальным пользователям разрешено только чтение файла rw‑rw‑rw- Все пользователи могут осуществлять чтение и запись файла

1.4. Изменение прав доступа к файлу

Вы можете изменять режим доступа к файлам, которыми владеете, с помощью команды chmod. Аргументы этой команды могут быть заданы либо в числовом виде (абсолютный режим), либо в символьном (символьный режим). Сначала рассмотрим символьный режим.

1.4.1. Символьный режим

Общий формат команды chmod для символьного режима таков:

chmod [кто] оператор [разрешения] файл

Значения параметра кто:

u Владелец

g Группа

o Другие пользователи

a Все (владелец, группа и другие пользователи)

Значения параметра оператор:

+ Добавление разрешения

— Удаление разрешения

= Установка заданного разрешения

Значения параметра разрешения:

r Право чтения

w Право записи

x Право выполнения

X Установка права выполнения только в том случае, если для какой‑либо категории пользователей уже задано право выполнения

s Установка бита SUID или SG1D для владельца или группы

t Установка sticky–бита[1]

u Установка тех же прав, что и у владельца

g Установка тех же прав, что и у группы

o Установка тех же прав, что и у других пользователей

1.4.2. Примеры использования команды chmod

Рассмотрим несколько примеров изменения режима доступа к файлу с помощью команды chmod. Предполагается, что строка режима для нашего файла имеет такой вид: rwxrwxrwx.


Команда Строка режима Результат chmod a‑x myfile rw‑rw‑rw- Отмена всех разрешений на выполнение chmod og‑w myfile rw‑r--r-- Отмена разрешений на запись для группы и других пользователей chmod g+w myfile rw‑rw‑r-- Добавление разрешения на запись для группы chmod u+x myfile rwxrw‑r-- Добавление разрешения на выполнение для владельца chmod go+x myfile rwxrwxr‑x Добавление разрешения на выполнение для группы и других пользователей chmod g=o myfile rwxr‑x r‑x Предоставление группе тех прав, которые уже установлены для других пользователей

1.4.3. Абсолютный режим

Общий формат команды chmod для абсолютного режима таков:

chmod [режим] файл

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

соответствует разрешению не чтение (1 — установлено, 0 -cнято), средний -pазрешению на запись, а младший -pазрешению на выполнение. Рассмотрим примеры:

Таблица 1.3. Восьмеричные значения Режима


Восьмеричное число Результат 400 Владелец имеет право чтения 200 Владелец имеет право записи 100 Владелец имеет право выполнения 040 Группа имеет право чтения 020 Группа имеет право записи 010 Группа имеет право выполнения 004 Другие пользователи имеют право чтения 002 Другие пользователи имеют право записи 001 Другие пользователи имеют право выполнения Чтобы получить итоговое значение режима, который вы хотите задать для. своего файла, определите требуемый набор разрешений и сложите соответствующие числа в левой колонке таблицы.

Обратимся к примеру файла, который рассматривался ранее:

-rw‑r--r-- 1 dave admin 0 Feb 19 22:05 myfile

Его строка режима эквивалентна числу 644, сформированного таким
ЛитВек: бестселлеры месяца
Бестселлер - Стив Нисон - Японские свечи: Графический анализ финансовых рынков - читать в ЛитвекБестселлер - Гэвин Кеннеди - Договориться можно обо всем! Как добиваться максимума в любых переговорах - читать в ЛитвекБестселлер - Стивен Шиффман - Золотые правила продаж: 75 техник успешных холодных звонков, убедительных презентаций и коммерческих предложений, от которых невозможно отказаться - читать в ЛитвекБестселлер - Анна Альфредовна Старобинец - Посмотри на него - читать в ЛитвекБестселлер - Карен Армстронг - История Бога: 4000 лет исканий в иудаизме, христианстве и исламе - читать в ЛитвекБестселлер - Аллан Диб - Одностраничный маркетинговый план. Как найти новых клиентов, заработать больше денег и выделиться из толпы - читать в ЛитвекБестселлер - Селеста Инг - Все, чего я не сказала - читать в ЛитвекБестселлер - Виктория Валерьевна Ледерман - Календарь ма(й)я - читать в Литвек