Определение разрешений с помощью чисел
Помните упоминания метода сокращенной записи параметров chmod ? Есть еще один способ изменять разрешения; сначала он может показаться несколько сложным.
Вернитесь к первоначальным разрешениям файла sneakers.txt (введите ls -l sneakers.txt ).
-rw-rw-r— 1 newuser newuser 150 Mar 19 08:08 sneakers.txt
Каждой разрешение можно представить числовым значением:
Сложив эти значения вместе, вы получите сумму, которая соответствует указанным разрешениям.
Для файла sneakers.txt , разрешения в числовом представлении таковы:
Итоговая сумма для пользователя — 6, для группы также 6, а для остальных 4. Такие разрешения можно прочитать как 664 .
Если вы хотите изменить файл sneakers.txt так, чтобы ваша группа не имела доступа на запись, но по прежнему могла читать файл (как показано на Рисунке 10-16 ), уберите разрешение, отнимите 2 в этом наборе чисел.
Числовые значения при этом станут такими: шесть, четыре, четыре — или 644.
Проверьте изменения, просмотрев информацию о файле ( ls -l sneakers.txt ):
-rw-r—r— 1 newuser newuser 150 Mar 19 08:08 sneakers.txt
Рисунок 10-16. Удаление у группы разрешения на запись
Теперь, ни группа, ни остальные не имеют разрешения на запись в файл sneakers.txt . Чтобы вернуть группе разрешение на запись, добавьте 2 ко второму набору разрешений.
Назначив разрешения 666 или 777, вы позволите всем читать или писать файл или каталог. Такие разрешения допускают повреждение важных файлов, поэтому, в общем случае, это плохая идея — использовать такие настройки.
Ниже приведен список некоторых общих установок, числовых значений и их значения:
-rw——- (600) — Только владелец имеет разрешение на чтение и запись.
-rw-r—r— (644) — Только владелец имеет разрешение на чтение и запись; группа и другие имеют доступ только на чтение.
-rwx—— (700) — Только владелец имеет разрешение на чтение, запись и выполнение.
-rwxr-xr-x (755) — Владелец имеет доступ на чтение, запись и выполнение; группа и другие могут только читать и выполнять.
-rwx—x—x (711) — Владелец имеет право на чтение, запись и выполнение; группа и остальные могут только исполнять.
-rw-rw-rw- (666) — Все могут читать и писать этот файл. (Будьте аккуратны с такими разрешениями).
-rwxrwxrwx (777) — Все могут читать, писать и выполнять. (Такие разрешения могут быть опасны.)
Ниже приведены некоторые типичные установки для каталогов:
drwx—— (700) — Только пользователь может читать и писать в этот каталог.
drwxr-xr-x (755) — Все могут читать этот каталог, но его содержимое может изменить только владелец.
Права доступа к файлам в Linux или почему rwxr-xr-x=755
Пользователи и группы
Linux — многопользовательская система. Человек может отличать пользователей реальных (учётные записи людей, которые работают за компьютером) и системных (от имени которых запускаются системные процессы), но для машины разницы между ними нет никакой. Каждый пользователь представлен его уникальным идентификатором (UID, user ID), которым компьютер и оперирует в работе.
Пользователи могут объединяться в группы пользователей. В одной группе может находиться сколько угодно пользователей, так же как и один пользователь может состоять в скольких угодно группах. Любой пользователь обязательно состоит хотя бы в одной группе. По аналогии с пользователями, группы в cиcтеме также представлены их идентификаторами (GID, group ID).
При переименовании пользователя или группы новое имя присваивается прежнему ID, никаких других изменений не происходит и это очень удобно.
Посмотреть идентификатор пользователя можно командой id. Например:
Если имя не вводить, то выйдет информация про текущего пользователя. И кстати да, у root-а всегда UID=GID=0.
Файлы и права
Каждый файл в Linux принадлежит какому-либо пользователю (пользователь-владелец, владелец) и одновременно группе пользователей (группа-владелец). Пользователь-владелец не обязательно должен состоять в группе-владельце. Для каждого файла в Linux определяются отдельно права доступа для владельца, группы-владельца и для всех остальных пользователей.
Разновидностей прав доступа всего три: чтение, запись и выполнение, но их совместное использование даёт нам 2 3 =8 комбинаций (3 категории прав и 2 варианта для каждого права — установлено оно или нет, см. комбинаторику).
Рассмотрим права доступа к файлу, которые выводятся как:
Запись — rwx r-x r-x состоит из трёх блоков: это права доступа к файлу владельца , группы-владельца и всех остальных . Про первый символ минуса поговорим отдельно позже.
Буквы блока rwx определяют, соответственно, право доступа на чтение (r, read), запись (w, write) и выполнение (x, execute). Порядок букв менять нельзя. Если соответствующего права нет, то вместо буквы ставится минус (как, например, во втором и третьем блоках).
В данном примере у владельца файла полные права, а у группы и всех остальных — только чтение и выполнение, запись запрещена (удаление также относится к записи).
Буквы и цифры
Компьютер работает в двоичном коде. В двоичном коде он хранит данные на жёстком диске и в нём же производит вычисления.
Оперируя с числами в жизни мы имеем дело с десятичной системой счисления, так она называется потому, что все числа записываются десятью цифрами: от 0 до 9. В двоичной системе счисления цифр всего две: ноль и единица. К примеру, посчитаем от 0 до 7 в десятичной и двоичной системах, это поможет понять дальнейшее:
Десятичная система | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Двоичная система | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 |
Двоичная система (по 3 цифры) | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Каждый блок rwx — это три бита информации по правам. Первый бит — чтение, второй — запись, третий — выполнение. Если право есть, бит равен 1, если нет — 0. То есть, для нашего примера, rwx = 111 = 7 , r-x = 101 = 5 , поэтому rwxr-xr-x = 111101101 = 755 .
Большинство сайтов даёт такое правило пересчёта: x=1, w=2, r=4, нужные права просуммировать. Например, r-x = 4+1 = 5. Это даёт метод пересчёта, но не приносит понимания. Понимать надо так: права на чтение и запись это r-x = 101 (в двоичной записи) = 100+1 (в двоичной системе) = 4+1 (в десятичной системе) = 5.
Математики нервно курят, настолько лихо я использую знак равенства.
Это всё неправильно!
Потому что права доступа к файлу задаются не 9, а 12 битами. То есть:
А всё то, о чём говорилось раньше — это укороченная запись прав.
На что уходят первые три бита?
Первый бит — SUID. Устанавливается на исполняемый файл. В этом случае файл выполнится от имени не текущего пользователя (как обычно и бывает), а от имени владельца файла. Группа для запуска — группа текущего пользователя.
Второй бит — SGID. Устанавливается на исполняемый файл. То же самое, что и для SUID, но для запуска подменяется не владелец, а группа.
Третий бит — Т-бит. Говорят, обычно устанавливается на папки. Если Т-бит установлен, то операция удаления больше не входит в операцию записи (w) и удалить файл может только его владелец.
Установка этих битов (и их комбинаций) в цифровом виде считается так же, как и установка прав. То есть, при установке Т-бита на файл с правами 755, получим права 1755.
Запись прав в буквенном виде всё-таки предназначена для человека, поэтому в ней есть нюансы. Установка SUID заменит x в блоке владельца на s и наш пример будет выглядеть как rwsr-xr-x . Установка SGID проделает то же самое с блоком группы-владельца: rwxr-sr-x . Установка Т-бита поменяет x на t в блоке остальных пользователей: rwsr-xr-t .
Забытый минус
Первый символ в этой записи — это тип файла, а его, как ни крути, мы поменять не сможем. Но знать полезно.
— — обычный файл d — каталог (по сути, тоже файл) l — символическая ссылка c — символьный файл (/dev/null) b — файлы блочного доступа (/dev/sda) p — именованные каналы, pipes s — сокеты, сетевые подключения
Комментарии
Владимир
В принципе можно было бы добавить (а можно — и не добавлять):
что изменить владельцев может только root;
про смысл бита «x» для файлов (т.е. что исполняться могут и текстовые файлы, а бинарники — не обязательно исполняемые);
про смысл бита «x» для директорий, т.к. могут возникать вопросы типа «как это — исполнить директорию?» (и сразу — забавный пример про доступ к содержимому директории);
примеры как выставить SUID и SGID биты;
Если вы видите эту надпись,
значит, новый движок уже в работе
и страница отображается с помощью него.
Обратная связь
по электропочте info©it-simple.ru
или через нанокомментсы.
Техническая информация
Время подготовки страницы: 0.034597 c.
Кэш: частичный.