Как уже сказано, любой ресурс компьютера под управлением ОС Linux представляется как файл, поэтому мы будем говорить только о правах доступа к файлу.
По отношению к файлу пользователь может входить в одну из трех категорий: владелец, член группы владельца, все остальные. Для каждой из этих категорий есть свой набор прав доступа.
Первым владельцем файла становится его создатель. Дальше файл можно передать другому владельцу или в другую группу командой
chown [ключи] <новый_пользователь>[:новая_группа] <файл>
или
chgrp [ключи] <новая_группа> <файл>
В некоторых реализациях Linux передать файл другому владельцу имеет право только суперпользователь, а в других — также его текущий владелец.
Набор прав доступа состоит из прав на чтение, запись и исполнение файла. В символьном представлении он выглядит как строка «rwx», где вместо любого символа может стоять дефис. Буква означает наличие права (r — чтение, w — запись, x — исполнение), дефис — его отсутствие.
Очевидно, что эти три бита могут быть записаны еще и как восьмеричное число. Так, права доступа r-x (чтение и исполнение без записи) понимаются как три двоичные цифры 101 или как восьмеричная цифра 5. Численное представление прав доступа называется абсолютным, или двоичной маской.
Полная строка прав доступа в символьном представлении устроена так:
<права_владельца><права_группы><права_остальных>
В абсолютном представлении права владельца являются старшим разрядом восьмеричного числа, права группы — вторым и права остальных — третьим. Так, права rwxr-x--x выглядят как число 111 101 001, или 751.
Команда изменения прав доступа chmod понимает как абсолютное, так и символьное указание прав.
Назначим файлу /home/den/README
права rw-r-----, то есть разрешим себе чтение и запись, группе только чтение, остальным пользователям — ничего:
$cd ~ # переход в свой домашний каталог
$chmod 640 README # 110 100 000 == 640
$ls -l README
-rw-r----- 1 den users 0 Feb 14 19:08 /home/den/README
В символьном представлении можно явно указывать, кому какое право мы хотим добавить, отнять или присвоить. Добавим право на исполнение файла README группе и всем остальным:
$chmod go+x README
$ls -l README
-rw-r-x--x 1 den users 0 Feb 14 19:08 /home/den/README
Формат символьного режима:
chmod <категория><действие><набор_прав> <файл>
Возможные значения аргументов команды представлены в таблице 2.3.
Аргументы команды chmod
в символьном режиме Таблица 2.3
Аргумент | Значение | |
---|---|---|
Категория | u | Владелец |
g | Группа владельца | |
o | Прочие | |
a | Все пользователи, то есть «a» эквивалентно «ugo» | |
Действие | + | Добавить набор прав |
- | Отменить набор прав | |
= | Назначить набор прав | |
Право | r | Право на чтение |
w | Право на запись | |
x | Право на исполнение | |
s | Право смены идентификатора пользователя или группы | |
t | Бит прилипчивости (sticky-бит) | |
u | Такие же права, как у владельца | |
g | Такие же права, как у группы | |
o | Такие же права, как у прочих |
Название бита прилипчивости унаследовано от тех времен, когда объем оперативной памяти был маленьким, а процесс подкачки медленным. Этот бит позволял оставлять небольшие часто используемые программы в памяти для ускорения их запуска. Сейчас его значение переосмыслено: этот бит, установленный для каталога, приводит к тому, что удалять файлы из этого каталога могут только владелец файла и владелец каталога. Обычно это используется в каталогах, открытых для записи всем (например, /tmp
).
Права смены пользователя и группы (SUlD-бит и SGID-бит) означают следующее. Обычно исполняемый файл (программа или командный сценарий) получает те же права на доступ к файлам, что и пользователь, который запустил его на выполнение. Но у этого файла есть еще и владелец, полномочия которого могут быть совсем другими. Наличие одного из этих битов позволяет выполняющейся программе пользоваться полномочиями владельца программного файла или члена его группы
Так, команда su (
$ls -l `which su`
-rwsr-xr-x 1 root root [размер, дата, время] /bin/su
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии