## CHMOD ## ```sh chmod опции права /путь/к/файлу # Сначала рассмотрим какими бывают права доступа linux и как они устанавливаются. Пред этим рекомендую прочитать статью про права, ссылка на которую есть выше. Есть три основных вида прав: - r - чтение; - w - запись; - x - выполнение; - s - выполнение  от имени суперпользователя (дополнительный); # Также есть три категории пользователей, для которых вы можете установить эти права на файл linux: - u - владелец файла; - g - группа файла; - o - все остальные пользователи; # Синтаксис настройки прав такой: # Группа_пользователейДействиеВид_прав "+" - включить или  "-" - отключить. - u+x - разрешить выполнение для владельца; - ugo+x - разрешить выполнение для всех; - ug+w - разрешить запись для владельца и группы; - o-x - запретить выполнение для остальных пользователей; - ugo+rwx - разрешить все для всех; # Но права можно записывать не только таким способом. Есть еще восьмеричный формат записи, он более сложен для понимания, но пишется короче и проще. Я не буду рассказывать как считать эти цифры, просто запомните какая цифра за что отвечает, так проще: # rwx = 7 | x=1 w=2 r=4 - 0 - никаких прав; - 1 - только выполнение; - 2 - только запись; - 3 - выполнение и запись; - 4 -  только чтение; - 5 - чтение и выполнение; - 6 - чтение и запись; - 7 - чтение запись и выполнение. # Права на папку linux такие же, как и для файла. Во время установки прав сначала укажите цифру прав для владельца, затем для группы, а потом для остальных. Например, : - 744 - разрешить все для владельца, а остальным только чтение; - 755 - все для владельца, остальным только чтение и выполнение; - 764 - все для владельца, чтение и запись для группы, и только чтение для остальных; - 777 - всем разрешено все. Каждая из цифр не зависит от предыдущих, вы вбираете именно то, что вам нужно. Теперь давайте рассмотрим несколько опций команды, которые нам понадобятся во время работы: -c - выводить информацию обо всех изменениях; -f - не выводить сообщения об ошибках; -v - выводить максимум информации; --preserve-root - не выполнять рекурсивные операции для корня "/"; --reference - взять маску прав из указанного файла; -R - включить поддержку рекурсии; --version - вывести версию утилиты; ``` ## CHOWN ## ```sh chown пользователь:группа опции /путь/к/файлу # В поле пользователь надо указать пользователя, которому мы хотим передать файл. Также можно указать через двоеточие группу, например, пользователь:группа. Тогда изменится не только пользователь, но и группа. Вот основные опции, которые могут вам понадобиться: -c, --changes - подробный вывод всех выполняемых изменений; -f, --silent, --quiet - минимум информации, скрыть сообщения об ошибках; --dereference - изменять права для файла к которому ведет символическая ссылка вместо самой ссылки (поведение по умолчанию); -h, --no-dereference - изменять права символических ссылок и не трогать файлы, к которым они ведут; --from - изменять пользователя только для тех файлов, владельцем которых является указанный пользователь и группа; -R, --recursive - рекурсивная обработка всех подкаталогов; -H - если передана символическая ссылка на директорию - перейти по ней; -L - переходить по всем символическим ссылкам на директории; -P - не переходить по символическим ссылкам на директории (по умолчанию). ``` ![[2024-09-05 01.32.11.jpg]]