Изменение прав доступа к файлам
#
Васильев Андрей Михайлович, 2024
Версии презентации
Изменение прав доступа
#
- Для изменения прав доступа к файлу или каталогу применяется приложение
chmod
- Изменить права на файл может только его владелец или суперпользователь
- Для описания прав можно воспользоваться цифровой или буквенной нотацией
Использование цифровой нотации
#
Восьмеричное |
Бинарное |
Режим |
0 |
000 |
— |
1 |
001 |
–x |
2 |
010 |
-w- |
3 |
011 |
-wx |
4 |
100 |
r– |
5 |
101 |
r-x |
6 |
110 |
rw- |
7 |
111 |
rwx |
Применение восьмеричных чисел
#
С помощью трёх восьмеричных чисел можно описать права для владельца, группы и остальных
$ > test
$ ls -l test
-rw-r--r-- 1 andrey andrey 0 окт 5 15:46 test
$ chmod 600 test
$ ls -l test
-rw------- 1 andrey andrey 0 окт 5 15:46 test
С помощью одной команды мы забрали права у группы и остальных, а также удостоверились, что владелец может читать и записывать в файл
Наиболее часто используемые цифры: 7
, 6
, 5
, 4
и 0
Буквенная нотация
#
При описании буквенной нотации надо придерживаться следующего формата:
[ugoa...][[-+=][perms...]...
- На первом месте указывается для кого надо применить права. Если не указать, то применяется для всех
- Затем указывается что мы хотим сделать с правами
-
убрать права
+
выдать права
=
установить права
- В конце указывается список разрешений
- Можно указать несколько изменений через запятую
Изменение прав с буквенной нотацией
#
$ > words
$ ls -l words
-rw-r--r-- 1 andrey andrey 0 окт 5 16:03 words
$ chmod u+x words
$ ls -l words
-rwxr--r-- 1 andrey andrey 0 окт 5 16:03 words
$ chmod go-r words
$ ls -l words
-rwx------ 1 andrey andrey 0 окт 5 16:03 words
- Числовая нотация обычно короче
- Числовая нотация совсем непонятна «неинициированным»
- Буквенную запись можно сделать более понятной
- Буквенная нотация позволяет изменять только лишь нужные части прав доступа, не
изменяя остальные
Права файлов по умолчанию
#
Пользователь и владелец
#
Создаваемому файлу присваивается UID пользователя, от имени которого была создан данный файл
Группой создаваемого файла становится GID группы пользователя по умолчанию
Права по умолчанию
#
Права файла зависят от режима, который контролируется с помощью umask
$ help umask
umask: umask [-p] [-S] [режим]
Отображение или указание маски режима для файлов.
Режим описывается с помощью четырёх восьмибитных цифр
Формат режима umask
#
- Первая цифра описывает специальные права
- Вторая по четвёртую цифру описывает права для владельца, группы и остальных
$ umask
0022
$ > test
$ ls -l test
-rw-r--r-- 1 andrey andrey 0 окт 5 16:24 test
$ umask 0002
$ > test-two
$ ls -l test-two
-rw-rw-r-- 1 andrey andrey 0 окт 5 16:24 test-two
Режим де-факто описывает битовую маску, которая указывает какие биты следует отбросить из режимов
- Для файла базовым режимом является
666
- Для каталогов базовым режимом является
777
Создание нового файла по шагам
#
Предположим, что пользователь выполняет команду на создание нового файла
- По умолчанию базовый режим для файла
666
или 110110110
в битовом представлении
- К режиму применяется маска пользователя
0022
или 000000010010
в битовом представлении
- Все биты, равные
1
в базовом режиме заменяются на 0
, если в маске тоже стоит 1
:
110110110
000000010010
= 110100100
- Результирующий режим
110100100
или 644
в восьмеричном представлении.
Специальные права umask
#
setuid bit, 4000
, u+s
#
Если он установлен у исполняемого файла, тогда при запуске процесса из этого файла, он будет запущен с правами пользователя, которому принадлежит исполняемый файл. Обычно применяется для небольшого количества программ, которые должен запускать обычный пользователь, но для её работы нужны повышенные привилегии
setgit bit, 2000
, g+s
#
Если флаг установлен у каталога, то новые файлы созданные в этом каталоге будут принадлежать к группе данного каталога, а не основной группе пользователя её создавшей. Применяется для создания общих каталогов между пользователями
sticky bit, 1000
, +t
#
Если флаг установлен у каталога, то препятствует переменованию или удалению файлов в каталоге, если пользователь не является их владельцем или владельцем каталога