Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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




Для изменения прав доступа используется команда

 chmod [-R] права файл_или_каталог [файл2 ...]

Необязательный ключ -R распространяет действие команды рекурсивно на содержимое каталогов, если таковые обнаружатся в списке файлов, переданном в командной строке.

Права указываются в одной из двух нотаций: числовой и символьной.

Числовая нотация команды chmod

Набор прав разбивается на 4 тройки:

sst rwx rwx rwx

и рассматривается в виде битового поля: бит установлен, если соответствующее право имеется. Каждая тройка бит записывается десятичным числом.

Дополнительные флаги доступа: sticky-бит (t), специфичный для директорий, и suid-бит (s), применяемый для исполняемых файлов.

Сегодня sticky bit используется в основном для директорий, чтобы защитить в них файлы. Из такой директории пользователь может удалить только те файлы, владельцем которых он является. Примером может служить директория /tmp, в которой запись открыта для всех пользователей, но нежелательно удаление чужих файлов.

Программа с установленным битом suid является «потенциально опасной».

Если установлены права доступа SUID и файл исполняемый, то при запуске на выполнение файл получает не права запустившего его, а права владельца файла.

Примеры

 

--- rwx rwx rwx 0777
--- rwx r-x r-x 0755
--- rw- r-- --- 0640
ss- rwx r-x r-x 6755
--t rwx r-x r-- 1754

Лидирующий ноль можно опускать.

 

Символьная нотация команды chmod

В отличие от числовой нотации символьная нотация указывает не права, а изменения прав. Нотация состоит из 3 элементов, указанных в следующей последовательности: чьи права изменять, каким образом, и какие именно права.

Чьи права изменять Каким образом Какие именно права

u (владельца)
g (группы)
o (всех остальных)
a (всех трех категорий)

+ (добавить) - (убрать) r w x
= (сделать такими же) u (как у владельца) g (как у группы) o (как у всех остальных)
u g + - s (SUID или SGID)
u + - t (Sticky bit)

Примеры:

Добавить группе право на запись:

 chmod g+w file

Убрать у прочих права на запись и исполнение:

 chmod o-wx file

Добавить владельцу и группе права на чтение и запись:

 chmod ug+rw file

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

 chmod o=g file

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

 chmod og=u file

Несколько изменений можно перечислять через запятую. Например, добавить владельцу право на исполнение, а у группы и прочих убрать право на запись:

 chmod u+x,go-w file




Поиск в файловой системе

Поиск по содержимому файлов (grep)

Команда

 grep [-inv] подстрока файл [файл2 ...]

производит поиск указанной подстроки в указанных файлах.

 

Вообще-то grep ищет не строку символов, а регулярное выражение. Если вы используете только алфавитно-цифровые символы, то никаких отличий нет. Однако, не используйте знаки препинания и другие особые символы, если вы не уверены, что они не будут интерпретированы особым образом - как метасимволы регулярного выражения. Регулярные выражения изучаются позже в этом курсе.

Команда выводит строки из указанного файла (файлов), в каковых строках найдена указанная подстрока. Если файлов несколько, строка предваряется именем файла с двоеточием.

Основные ключи:

-i - игнорировать отличия верхнего и нижнего регистра (на нерусифицированных системах работает только для латиницы),

-n - вместе со строками выводить и их номера,

-v - выводить строки, в которых не найдена указанная подстрока.

Полное описание ключей команды grep см. в справочнике man.

Поиск файлов (find)

Команда

 

 find каталог [выражение ... ]

проивзодит рекурсивный поиск в указанном каталоге и его подкаталогах. Для каждого файла вычисляются значения указанных в командной строке логических выражений, которые объединяются по "И". Если в итоге получается "ИСТИННО", то имя файла (точнее путь к нему, начиная от указанного в командной строке каталога, выводится в стандартный вывод).

Отсутствие выражений - всегда "ИСТИННО" (то есть в это случае find рекурсивно выводит имена всех файлов каталога и его подкаталогов).

Основные выражения find

(Примечание: ниже везде, где есть числовой параметр N, перед ним можно ставить плюс или минус, при этом справедливо следующее правило: "+N" означает "больше, чем N", "-N" означает "меньше, чем N", просто число N означает "равно N".)

-name шаблон_имени_файла

истинно, если имя файла соответствует шаблону; в шаблоне можно использовать символ '*' и т.п. - при этом шаблон надо взять в одинарные кавычки.

-perm ABCD

истинно, если права доступа к файлу точно равны указанным (ABCD); права записываются в числовой нотации команды chmod.

-perm -ABCD

истинно, если указанные права доступа (ABCD) имеются у файла; права записываются в числовой нотации команды chmod.

-type T

истинно, если тип файла равен указанному типу T, где Т - один из символов: f (обычный файл), d (каталог), l (символическая связь), b или c (блочное или символьное устройство), p (конвейер).

-user имя_пользователя

истинно, если файл принадлежит указанному пользователю.

-group имя_группы

истинно, если файл принадлежит указанной группе.

-size Nc

истинно, если размер файла равен N байт (без символа 'c' размер интерпретируется в 512-байтных блоках).

-mtime N

истинно, если содержимое файла было модифицировано N суток назад (т.е. N*24 часов назад).

-atime N

истинно, если последний доступ к файлу имел место N суток назад (т.е. N*24 часов назад).

-ctime N

истинно, если атрибуты файла были модифицировано N суток назад (т.е. N*24 часов назад).

-newer имя_файла

истинно, если файл был модифицирован позже, чем указанный.

-nouser

истинно, если владелец файла не найден в списке пользователей (например, пользователь был удален, а его файлы остались).

-nogroup

истинно, если группа-владелец файла не найдена в списке групп (например, группа была удалена, а файлы остались).

-a

операция "И" в явном виде.

-o

операция "ИЛИ".

\( \)

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










Последнее изменение этой страницы: 2018-04-12; просмотров: 234.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...