Изменение прав доступа к файлам #
Васильев Андрей Михайлович, 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
#
Если флаг установлен у каталога, то препятствует переменованию или удалению файлов в каталоге, если пользователь не является их владельцем или владельцем каталога