Linux и UNIX: программирование в shell. Руководство разработчика
Linux и UNIX: программирование в shell. Руководство разработчика читать книгу онлайн
Данная книга является практическим руководством по программированию интерпретатора Bourne shell -cтандартного командного интерпретатора в UNIX, полностью совместимого с интерпретатором BASH shell в Linux. Книга предназначена для начинающих и опытных программистов и содержит множество полезных примеров, советов и подсказок. С ее помощью читатель сможет быстро научиться создавать shell–сценарии для реальных задач и ситуаций, возникающих в большинстве систем UNIX и Linux.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
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, сформированного таким образом:
право чтения и записи для владельца
-400+200=600
+
право чтения для группы
040
+
право чтения для других пользователей
004
=644
Правило формирования восьмеричного режима доступа проще всего сформулировать с помощью следующей таблицы:
Таблица 1.4. Определение режима доступа к файлу
Владелец
Группа
Другие пользователи
rwx
rwx
rwx
4 + 2 + 1
4+2+1
4+2+1
1.4.4. Дополнительные примеры использования команды chmod
Ниже приведен ряд Примеров, иллюстрирующих применение команды chmod в абсолютном режиме:
Команда
Строка режима
Результат
chmod 666
rw‑rw‑rw-
Установка разрешений на чтение и запись для владельца, группы и других пользователей
chmod 644
rw‑r--r--
Установка разрешений на чтение и запись для владельца; группа и остальные пользователи получают право чтения
chmod
rwxr--r--
Предоставление полного доступа владельцу; группа и другие пользователи имеют право чтения
744
chmod
rw‑rw‑r--
Установка разрешений на чтение и запись для владельца и группы; другим пользователям предоставляется право чтения
664
chmod
Предоставление полного доступа только владельцу; остальным пользователям доступ запрещен
700
chmod
r--r--r--
Все пользователи получают разрешение только на чтение
444