Комбинации прав доступа к файлу



Комбинация

Права доступа Восьмиричный формат представления
0 0 0 Нет доступа 0
0 0 1 Выполнение 1
0 1 0 Запись 2
0 1 1 Запись и выполнение 3
1 0 0 Чтение 4
1 0 1 Чтение и выполнение 5
1 1 0 Чтение и запись 6
1 1 1 Чтение, запись и выполнение 7

 

Таким образом, атрибуты доступа для любого файла могут быть представлены в виде трехразрядного восьмиричного числа, где каждому разряду соответсвует одна из категорий пользователей (user, group, other), а значение разряда находится в диапазоне от 0 до 7 и соответствует представленной в таблице 1.2 комбинации прав доступа.

Например, если файл имеет полные права доступа для владельца файла, а для остальных только чтение, то такой комбинации прав будет соответствовать код 744 (рисунок 1.3).

 

user

group

other

1 1 1 1 0 0 1 0 0

7

4

4

                 

Рис. 1.3. Пример задания арибутов прав доступа к файлу

По умолчанию при создании файлов им устанавливаются права доступа 644, каталогов – 755.

 

Запись аргумента в символьном формате. В данном случае используется следующий формат записи прав доступа:

< группа пользователей > <действие> <права доступа>

В качестве групп пользователей и вида прав доступа используются однобуквенные обозначения сообветствующих категорий: r/w/x и u/g/o соответственно. В качестве действий могут быть использованы знаки:

+   включить права доступа;

отключить права доступа;

= установить заданные права доступа.

Так, запись вида

U-x

запрещает доступ на выполнение для владельца файла.

Для обеспечения (установки) всех прав доступа для всех категорий пользователей используется запись вида:

ugo+rwx

Некоторые опции команды chmod представлены в таблице 1.5.

Таблица 1.5

Опции команды chmod

Опция Значение
-R рекурсивное изменение прав доступа для каталогов и их содержимого
-f не выдавать сообщения об ошибке для файлов, чьи права не могут быть изменены
-v описывать действие (или отсутствие действия) для указанного файла или файлов

 

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

$ chmod u=rwx,g=rw,o=r filename

$ chmod ugo=rwx,g-x,o-wx filename

$ chmod 764 filename

 

Команды ввода-вывода. Перенаправление потоков ввода-вывода  

Многие команды OС Linux используют стандартные информационные потоки для ввода данных, вывода результатов и протокола диагностики. Эти стандартные потоки обозначают дискрипторы 0 (stdin), 1 (stdout) и 2 (stderr). По умолчанию они связаны с управляющим терминалом, откуда вызвана команда. Так, стандартный входной поток stdin по умолчанию связан с клавиатурой, выходной поток stdout и поток сообщений об ошибках srderr с экраном компьютера. Командный процессор позволяет перенаправить стандартные потоки команд в файлы и программные каналы. Для этого в командной строке предусмотрено использование следующей символики перенаправления стандартных потоков:

< file – переключение стандартного ввода на ввод из файла

> file – переключение стандартного вывода на вывод в файл

2> file – переключение протокола стандартной диагностики в файл

>> file – добавление стандартного вывода в конец файла

2>> file – добавление протокола стандартной диагностики в конец файла

<< word – ограничение стандартного ввода заданным словом

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

Например:

$ cat > file.txt << end

Ø Aaa

Ø bbb

Ø end       = завершение ввода (аналогично Ctrl+d)

Содержимое файла file.txt можно проверить командой

$ cat file . txt

 Его содержимое будет следующим:

Aaa

bbb

Такой же результат даст команда

$ cat << end > file . txt

Следующая команда добавит в конец файла текущую дату:

$ date >> file.txt

file.txt:

Aaa

bbb

Fri Sep 25 12:00:00 GMT+3 2015

 

Команда echo

Предназначена для вывода в поток стандартного вывода (stdout) выражение или содержимое переменной. Так, команда

$ echo HELLO

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

 

Команда printf

Команда форматного вывода printf является расширенным вариантом команды echo. Команда имеет следующий формат:

$ printf <format> [ < arg1>, <arg2>, …]

В результате работы на стандартный вывод stdout будут выведены аргументы arg1, arg2, … в виде, заданном параметром format. Синтаксис команды практически идентичен синтаксису команды printf языка Си.

Format  вывода пишется в командной строке сразу после имени команды и заключается в двойные или одинарные кавычки. Некоторые версии команды позволяют указывать формат без кавычек. Команда имеет следующие спецификаторы вывода информации (таблица 1.6)

Таблица 1.6

Спецификаторы форматирования

Спецификатор Интерпретация
%c вывод первого символа строки
%d, %i вывод целого числа
%e, %E вывод числа с плавающей точкой в формате [-]dddddde[+-]dd или [-]ddddddЕ[+-]dd соответственно
%f вывод числа с плавающей точкой в формате [-]ddd.dddddd
%g, %G вывод числа с плавающей точкой в формате %e (или %E) или %f в зависимости от того, какой результат компактнее, вывод незначащих нулей подавляется
%o вывод восьмеричного числа без знака
%s вывод символьной строки
%х, %Х вывод шестнадцатеричного числа без знака с использованием цифр abcdef и ABCDEF соответственно
%% вывод знака %

 

Команда tail

Команда выводит в поток стандартного вывода stdin несколько (по умолчанию 10) последних строк. Если имя файла не указано (команда может работать без аргументов), tail читает поток стандартного ввода stdin. Команда имеет следующий синтаксис:

$ tail [ < опции>] [<файл>]

Запуск команды с опцией -n, за которым следует число, позволяет выводить нужное число последних строк.

Также опции могут быть указаны в формате –num или +num, где num – число. В первом случае будет выведено num последних строк, во втором будут выведены все последние строки файла, за исключением первых num.

Например, команда

$ tail + 3 < file

выведет в поток стандартного вывода 10 последних строк файла file, за исключением последних 3 (то есть с 4 по 13 строки при отсчете с конца файла).


Дата добавления: 2020-01-07; просмотров: 174; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!