Как рекурсивно изменить права доступа к файлам в Linux
Используя рекурсию (параметр –R команды chmod) можно «уйти в глубь» каталога и изменить владельца/права во всех подкаталогах.
chmod — это команда для изменения прав доступа к файлам и каталогам. В Linux всё рассматривается как файл. Папка также называется файлом каталога, обозначенным в разделе разрешений «d».
Приведённая ниже команда установит владельца www-data, а группу владельца — nginx для всех файлов, каталогов и подкаталогов каталога /var/www.
Чтобы изменить права доступа для всех файлов, каталогов и подкаталогов используйте следующую команду chmod:
Или с помощью символьного метода:
Разрешение 755 нужно установить для каталогов, но не для файлов. Бит выполнения (x) на каталоге означает, что по нему можно «скользить», т. е. пользователь может получит доступ к его «компонентам». Только при наличии этого бита, система разрешит войти в этот каталог и выполнить действия над файлом.Примечание
Установить права на все файлы:
Установить разрешения для всех каталогов:
Процесс в Linux запускается от имени текущего пользователя. Но есть ситуация, когда происходит косвенная установка новых эффективных идентификаторов процесса. Дело в том, что существуют два специальных бита: SUID (Set User ID — бит смены идентификатора пользователя) и SGID (Set Group ID — бит смены идентификатора группы). Когда пользователь или процесс запускает исполняемый файл с установленным одним из этих битов, то Linux автоматически меняет владельца на того пользователя, который является владельцем этого файла. То есть, независимо от того — кто запускает эту программу, она при выполнении имеет права хозяина этого файла (т.е. запускается от имени хозяина файла). Таким образом, пользователь может даже запускать файлы от имени суперпользователя.
Возьмите на заметку! Если установить SGID (или SUID) для каталога, то все файлы, находящиеся в нём, будут запускаться от имени владельца (группы) каталога, а не от имени текущего пользователя в системе.
Восьмеричные значения для SUID и SGID — 4000 и 2000. Символьные: u+s и g+s.