https://900913.ru/2017/10/31/os-linux-bash/
chown
Команда смены владельца файла.
Чтобы сменить владельца файлов в директории и во всех поддиректориях (рекурсивно), выполните:
sudo chown -R user:group /home/user/path/to/directory/
Менять пользователя может только root, -R — рекурсивно.
==========
==========
\\\\\\\\\\\\\
https://webhamster.ru/mytetrashare/index/mtb0/1503040674ppahrkt4ni (Права доступа к каталогам)
Права доступа к каталогам
Права доступа, устанавливаемые на каталоги, имеют несколько иной смысл, чем права на файлы. Для каталогов используются следующие права:
Без наличия права search (х), установленного на каталог, операции обращения к файлам, находящимся в нем, не могут быть осуществлены. Поэтому для каталогов права доступа должны быть либо нечетные (в трехчисловой нотации), либо отсутствовать.
========================================
Источник: http://www.kryukov.biz/wiki/Права_доступа
========================================
У каждого файла в системе существуют свои собственные права доступа.
Внимание! |
Права доступа не наследуются так, как это принято в Windows и Novell NetWare. |
В Linux права доступа сохраняются в inode файла, и поскольку inode у каждого файла свой собственный, права доступа у каждого файла свои.
Пр.: вывод программы ls –l, в первом столбце показаны права доступа файла.
$ ls -l
итого 4:
-rw-r--r-- 1 artur users 28 2005-06-03 12:50 hardlink
lrwxrwxrwx 1 artur users 4 2005-06-03 12:51 slink -> test
-rw-r--r-- 1 artur users 0 2005-06-03 13:21 test
$
В первом поле десять символов. Первый символ — это тип файла, остальные девять показывают права.
Права доступа делятся на три группы:
(гл. ------->---------->)
r w x | r w x | r w x
user | group | other
Внимание! |
Права доступа пользователя и группы не суммируются. Если программа выполняется с правами пользователя и группы, которым принадлежит файл — работают только права хозяина файла. |
-- w (? --file) не дает права на удаление файла, только на изменение содержимого.
=====================================================
Права доступа к файлам
Права доступа к файлам и директориям имеют различное значение.
Для файлов:
В Linux является ли файл исполняемым или нет, определяется по правам доступа.
В Linux все исполняемые бинарные файлы в начале файла имеют заголовок ELF.
Если файл не бинарный, тогда считается, что это текстовый файл.
В начале первой строки файла ищется последовательность символов #!.
При указании интерпретатора можно писать аргументы командной строки. Например:
#! /bin/sed -f command
Если в файле в первой строке нет этих символов, тогда все зависит о программы оболочки, в которой запускается программа.
--------
=====================================================
Права доступа к директориям
Внимание! |
Обратите внимание на то, что если вы имеете право на запись в директории — значит, вы можете удалить любые файлы в этой директории, даже те, которые вам не принадлежат. Правда, существуют дополнительные права доступа, которые позволяют ограничить право на запись в директорию, но их мы рассмотрим позднее. |
Теперь о праве x для директории. Это право позволяет Вам войти в директорию: cd dir.
Внимание! |
Право x на директорию среди других прав на доступ к файлу всегда проверятся в первую очередь! |
При обращении к файлу система сначала проверяет право x у всех директорий, стоящих в пути этого файла, и только затем права на сам файл. Если хотя бы у одной директории право x отсутствует, доступ к этой директории и всему ее содержимому для Вас запрещается.
Например:
/ home/ user2/ bin/ programm
r-x r-x r-- r-x r-x
Как видно из примера, у директории /home/user2 отсутствует право на исполнение. Поэтому доступ к директориям /home/user2, /home/user2/bin и файлу program запрещен.
Предположим, что для вас права доступа к директории /usr/home/user - rw-. Что вы сможете сделать в этой директории? Вообщем то ничего серьезного, сначала надо зайти в директорию, а вам нельзя. Хотя список файлов вы сможете получить, но при этом на экран будет выведена куча предупреждений. А вот удалять, создавать, читать и редактировать файлы в директории вы точно не сможете.
Права доступа к символьным ссылкам
всегда выглядят так: rwxrwxrwx.
При использования ссылки драйвер файловой системы пересчитывает реальный путь к файлу и применяет права доступа, определенные для реального пути.
========================
Программа chmod предназначена для изменения прав доступа к файлам.
Внимание! |
В Linux нет права на изменение права. Поэтому хозяин файла всегда может изменять права доступа на свои и только свои файлы. Суперпользователь может менять права доступа у любых файлов в системе. |
Числовой формат записи прав доступа
Права доступа — это биты в inode файла. Биты делятся на три группы, каждую группу представляют в виде десятичного числа.
r |
w |
x |
|
0 |
0 |
1 |
1 |
0 |
1 |
0 |
2 |
1 |
0 |
0 |
4 |
При вызове программы chmod можно указывать не все три числа. Тогда числа начинают считаться справа. Например:
( u <---<---<--- o)
$ chmod 66 test
$ ls -l test
----rw-rw- 1 artur users 12 2005-06-06 11:53 test
$
установит права rw- для группы и для всех остальных пользователей системы.
=============================================================
Символьный формат записи прав доступа
шаблон: [ugoa][[+-=][rwxst]][,...]
В отличии от числового формата записи прав, при помощи символьного можно устанавливать или сбрасывать только один бит, а не все биты.
Например, права доступа у файла были следующие: rw-rw----. После выполнения программы:
$ ls -l test
-rw-rw—- 1 artur users 12 2005-06-06 11:53 test
$ chmod o+r file
$ ls -l test
-rw-rw-r-- 1 artur users 12 2005-06-06 11:53 test
$
Права стали такими: rw-rw-r--. Как видно, был изменен всего лишь один бит. Таким же образом можно сбрасывать биты в ноль:
$ chmod g-w test
$ ls -l test
-rw-r--r-- 1 artur users 12 2005-06-06 11:53 test
$
Можно одновременно изменять права для, например, хозяина и группы:
$ chmod ug+x test
$ ls -l test
-rwxr-xr-- 1 artur users 12 2005-06-06 11:53 test*
$
При использовании символа = изменяются сразу три бита. После = описывают, какие биты должны быть установлены в единицу. Неуказанные биты будут сброшены в ноль:
$ chmod o=rw test
$ ls -l test
-rwxr-xrw- 1 artur users 12 2005-06-06 11:53 test*
$
Если не удается записать изменения прав при помощи одной записи, их можно написать несколько. В качестве символа разделителя используют запятую.
$ chmod o-rw,g-r test
$ ls -l test
-rwx--x--- 1 artur users 12 2005-06-06 11:53 test*
$
Копирование прав доступа
В новой версии программы chmod появился параметр --reference. При помощи reference можно указать файл, права доступа которого будут копироваться на другие файлы.
$ ls -l
итого 0
-rw-r--r-- 1 artur users 0 2005-06-07 12:21 newtest
-rwx--x--- 1 artur users 0 2005-06-07 12:20 test*
$ chmod --reference=newtest test
$ ls -l
итого 0
-rw-r--r-- 1 artur users 0 2005-06-07 12:21 newtest
-rw-r--r-- 1 artur users 0 2005-06-07 12:20 test
$