Комбинации прав доступа к файлу
Комбинация | Права доступа | Восьмиричный формат представления | ||
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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!