Читаем Linux-сервер своими руками полностью

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

Если для файла установлено право выполнения, то его можно запускать как программу. Данная возможность используется при написании сценариев командных интерпретаторов. Право выполнения для каталога означает право доступа к каталогу, но не право на выполнение расположенных в нем файлов, как это может показаться исходя из названия режима доступа. Чтобы разобраться с правом выполнения для каталогов, проведите небольшой эксперимент, выполнив несколько описанных далее действий. Все действия нужно проводить от имени обыкновенного пользователя, а не от имени суперпользователя root.

Создайте каталог:

mkdir dir1

Затем создайте в нем файл script:

#!/bin/sh echo "Hello"

Измените права на чтение и выполнения для файла:

chmod 500 dir1/script

Попробуйте просмотреть содержимое каталога dir1:

ls –l dir1

А теперь измените права доступа к каталогу и повторите предыдущий шаг:

chmod 600 dir1

ls –l dir1

Как результат установленных прав на чтение и запись для каталога вы получите сообщение:

Permission denied

Теперь попробуйте записать что-нибудь в каталог (мы же установили право на запись):

cat >> dir1/script

Получите то же сообщение:

Permission denied

В общем случае существует три категории пользователей: владелец, группа и прочие.

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

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

Прочие — это все остальные пользователи.

Для каждой категории имеется свой набор прав доступа, просмотреть который вы можете с помощью команды ls –l:

ls –l file.txt

-rw-r----- 1 den group 300 Feb 10 12:00 file.txt

Строка –rw-r–---- характеризует набор прав доступа к файлу file.txt.

Владельцем файла является пользователь den, который входит в группу group. Первый символ — это тип файла. «-» означает файл, a «d» — каталог. Следующие три символа «rw-» задают права доступа для владельца файла. Символ «r» — это право на чтение, «w» — на запись, а «х» — на выполнение. Права задаются именно в таком порядке: чтение, запись, выполнение. Если право на какой-нибудь вид доступа отсутствует, то ставится «-». В данном случае отсутствует право на выполнение.

Второй трёхсимвольный набор задает права доступа для группы, а третий — для прочих пользователей. В нашем примере (r--) члены группы имеют право только на чтение, а другие пользователи вообще не имеют никакого доступа к файлу (---).

Для изменения прав доступа используется программа chmod. При этом права доступа можно задавать двумя способами: символьным и абсолютным. Рассмотрим сначала символьный метод, а потом — абсолютный.

В рамках символьного способа изменения прав вызов программы chmod имеет следующий вид:

chmod права <файл|каталог>

Параметры программы chmod указаны в табл. 4.10.

Права доступа (символьный метод) Таблица 4.10

Опция Описание
+ Устанавливает право доступа
- Отменяет право доступа
= Присваивает набор прав доступа
rПраво на чтение файла или каталога
wПраво на запись файла или каталога
xПраво на выполнение
uУстанавливает право доступа для пользователя, который создал файл и является его владельцем
gУстанавливает права доступа для группы
оУстанавливает права доступа для прочих пользователей
аУстанавливает права доступа для владельца, группы и прочих пользователей
sУстанавливает бит смены идентификатора пользователя или группы
tУстанавливает sticky-бит

Бит смены идентификатора пользователя или группы является вариантом права выполнения х. Право на чтение, запись и выполнение обозначается в этом случае не rwx, a rws. Так называемый sticky-бит позволяет оставить программу в памяти после ее выполнения. Устанавливать этот бит полезно для маленьких и часто используемых программ, чтобы ускорить их запуск.

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

Все книги серии Секреты мастерства

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