Разрешения на файлы и каталоги
Разрешение | Влияние на файлы | Влияние на каталоги |
---|---|---|
Чтение (R) | Чтение содержимого файла | Отображение содержимого каталога (имен файлов) |
Запись (W) | Изменение содержимого файла | Создание и удаление любого файла в каталоге не зависимо от разрешения этого файла |
Выполнение (X) | Выполнение файлов как команд | Доступ к содержимому каталога с учетом разрешений для файлов в каталоге |
В Linux разрешения настраиваются для владельца (user), для группы (group) и для всех остальных (other). Посмотреть текущие разрешения можно командой
ls -l
Изменять разрешения можно символьным методом или цифровым.
Символьный метод
chmod КтоЧтоМожет <file>
- Кто: u (user), g (group), o (other), a (all)
- Что: + (добавить), - (сбросить), = (установить)
- Может: r (читать), w (записать), x (выполнить)
Примеры:
chmod u+x <file> chmod g-w <file> chmod go=rw <file> chmod a+rwx <file>
Числовой метод
chmod КтоЧтоМожет <file>
- --- 0
- --x 1
- -w- 2
- -wx 3
- r-- 4
- r-x 5
- rw- 6
- rwx 7
Примеры:
chmod 640 <file> chmod 750 <file> chmod 775 <file>
Специальные разрешения (sticky) на файлы и каталоги
Разрешение | Влияние на файлы | Влияние на каталоги |
---|---|---|
u+s (suid) | Выполняется от имени пользователя, который владеет файлом | --- |
g+s (sgid) | Выполняется от имени группы, которая владеет файлом | Для новых файлов, созданных в каталоге, в качестве группы-владельца задается владелец группы каталога (наследование) |
o+t (sticky) | --- | Пользователи с разрешением на запись в каталог могут удалять только файлы, которыми они владеют. |
Символический метод
chmod u+s <file> chmod g+s <dir> chmod o+t <dir>
Цифровой метод
chmod 4770 <file> chmod 2770 <dir> chmod 1770 <dir>
Владельцы
Для изменения владельца и группы файла или каталога используется chown
- chown <user> <file> изменение владельца файла
- chown -R <user> <dir> рекурсивное изменение владельца каталога
- chown :<group> <file> изменение группы владельца файла
- chown <user>:<group> <file> изменение владельца и группы владельца файла
- chown -R <user>:<group> <dir> изменение владельца и группы рекурсивно
- sudo cp -p <source> <dest> копирование файла, не изменяя его разрешения
Маска
Каждый процесс в системе имеет маску, представленную 8-ричным значением. Каждый бит маски используется для сброса бит соответствующего бита разрешения. То есть из значения 777 вычитается маска и новые файлы или каталоги создаются с получившимися разрешениями.Вывод маски, которая установлена в системе в данный момент осуществляется командой
umask
umask | 0002 | 0022 | 0077 |
---|---|---|---|
Создаваемый файл | 664 (rw- rw- r--) | 644 (rw- r-- r--) | 600 (rw- --- ---) |
Создаваемый каталог | 775 (rwx rwx r-x) | 755 (rwx r-x r-x) | 700 (rwx --- ---) |
Значения маски по умолчанию устанавливаются в файлах
/etc/profile /etc/bash.bashrc
Пользователи могут переопределять системные значения в своих файлах
~/.bash_profile ~/.bashrc