<Предыдущая | Содержание: | Следующая>
chmod - изменить режим файла
Чтобы изменить режим (разрешения) файла или каталога, CHMOD используется команда. Имейте в виду, что только владелец файла или суперпользователь может изменить режим файла или каталога. CHMOD поддерживает два различных способа указания изменений режима: представление восьмеричного числа или символьное представление. Сначала мы рассмотрим представление восьмеричных чисел.
Что такое восьмеричное?
Восьмеричная (основание 8) и ее двоюродная сестра, шестнадцатеричная (основание 16) - это системы счисления, которые часто используются для выражения чисел на компьютерах. Мы, люди, в силу того факта, что мы (или, по крайней мере, большинство из нас) родились с десятью пальцами, считаем, используя систему счисления с основанием 10. Компьютеры, с другой стороны, были рождены с одним пальцем и, таким образом, все свои счета производят в двоичном формате (основание 2). В их системе счисления всего две цифры: 0 и 1. Итак, в двоичной системе счет выглядит так:
0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011 ...
В восьмеричной системе отсчет производится цифрами от нуля до семи, например: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21 ...
Для шестнадцатеричного счета используются цифры от нуля до девяти плюс буквы от «A» до «F»:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13 ...
Хотя мы можем видеть смысл в двоичном формате (поскольку у компьютеров только один палец), для чего нужны восьмеричные и шестнадцатеричные числа? Ответ связан с удобством человека. Часто небольшие части данных представляются на компьютерах как битовые узоры. Возьмем, к примеру, цвет RGB. На большинстве компьютерных дисплеев каждый пиксель состоит из трех цветовых компонентов: восьми бит красного, восьми бит зеленого и восьми бит синего. Прекрасным средним синим цветом будет 24-значное число:
010000110110111111001101
Хотели бы вы читать и писать такие числа весь день? Я так не думал. Здесь может помочь другая система счисления. Каждая цифра в шестнадцатеричном числе представляет четыре цифры в двоичном формате. В восьмеричном формате каждая цифра представляет три двоичных цифры. Таким образом, наше 24-значное средне-синее число можно сжать до шестизначного шестнадцатеричного числа:
436FCD
Поскольку цифры шестнадцатеричного числа «выстраиваются в линию» с битами двоичного числа, мы можем видеть, что красный компонент нашего цвета равен 43, зеленый 6F и синий CD.
В наши дни шестнадцатеричная нотация (часто называемая «шестнадцатеричной») более распространена, чем восьмеричная, но, как мы скоро увидим, способность восьмеричной системы выражать три бита двоичного кода будет очень полезна ...
В восьмеричной системе счисления мы используем восьмеричные числа для установки шаблона желаемых разрешений. Поскольку каждая цифра восьмеричного числа представляет три двоичных цифры, это хорошо отображается на
схема, используемая для хранения файлового режима. В этой таблице показано, что мы имеем в виду:
Таблица 9-4: Режимы файлов в двоичном и восьмеричном формате
восьмеричный | Двоичный | Файловый режим |
0 | 000 | Напишите нам в чат или Email |
1 | 001 | --Икс |
2 | 010 | -w- |
3 | 011 | -wx |
4 | 100 | r-- |
5 | 101 | гх |
6 | 110 | RW |
7 | 111 | RWX |
Используя три восьмеричных цифры, мы можем установить режим файла для владельца, владельца группы и
Мир:
[я @ linuxbox ~] $ > foo.txt
[я @ linuxbox ~] $ лс -л foo.txt
-rw-rw-r-- 1 я меня 0 2016 03:06 foo.txt [я @ linuxbox ~] $ chmod 600 foo.txt
[я @ linuxbox ~] $ лс -л foo.txt
-rw ------- 1 я я 0 2016-03-06 14:52 foo.txt
[я @ linuxbox ~] $ > foo.txt
[я @ linuxbox ~] $ лс -л foo.txt
-rw-rw-r-- 1 я меня 0 2016 03:06 foo.txt [я @ linuxbox ~] $ chmod 600 foo.txt
[я @ linuxbox ~] $ лс -л foo.txt
-rw ------- 1 я я 0 2016-03-06 14:52 foo.txt
Передав аргумент «600», мы смогли установить разрешения владельца на чтение и запись, удалив все разрешения у владельца группы и мира. Хотя запоминание восьмеричного преобразования в двоичное может показаться неудобным, обычно вам придется использовать только несколько общих: 7 (RWX) 6 (RW) 5 (гх) 4 (r--) и 0 (Напишите нам в чат или Email).
chmod также поддерживает символическую нотацию для указания режимов файла. Символьное обозначение разделено на три части: на кого повлияет изменение, какая операция будет выполнена и какое разрешение будет установлено. Чтобы указать, кто будет затронут, комбинация символов «u», «g», «o» и «a» используется следующим образом:
Таблица 9-5: Символическое обозначение chmod
Символ Значение
Символ Значение
u Сокращенно от «пользователь», но означает владельца файла или каталога.
g Владелец группы.
o Сокращенно от «другие», но означает мир.
Сокращение от «все». Комбинация «u», «g» и «o».
Если символ не указан, предполагается «все». Операция может иметь вид «+», указывающий, что разрешение должно быть добавлено, «-», указывающий, что разрешение должно быть удалено, или «=», указывающий, что должны применяться только указанные разрешения, а все остальные подлежат удалению.
Разрешения указываются с помощью символов «r», «w» и «x». Вот несколько примеров символической записи:
Таблица 9-6: Примеры символических обозначений chmod
Обозначение Значение
Обозначение Значение
u + x Добавить разрешение на выполнение для владельца.
ux Удалить разрешение на выполнение у владельца.
+ x Добавить разрешение на выполнение для владельца, группы и мира.
Эквивалентно а + х.
o-rw Удалить права на чтение и запись у всех, кроме владельца и владельца группы.
go = rw Установите для владельца группы и всех, кроме владельца, права на чтение и запись. Если владелец группы или мир ранее имели разрешения на выполнение, они удаляются.
u + x, go = rx Добавить разрешение на выполнение для владельца и установить разрешения для группы и других пользователей на чтение и выполнение. Несколько спецификаций можно разделять запятыми.
Некоторые люди предпочитают использовать восьмеричную систему счисления, некоторым очень нравится символическая. Символическая нотация дает преимущество, так как позволяет вам установить один атрибут, не затрагивая другие.
Взгляните на CHMOD справочную страницу для получения более подробной информации и списка опций. Небольшое предостережение относительно параметра «--recursive»: он действует как для файлов, так и для каталогов, поэтому он не так полезен, как можно было бы надеяться, поскольку мы редко хотим, чтобы файлы и каталоги имели одинаковые разрешения.