Управление доступом к файлам в дистрибутивах GNU / Linux является основной процедурой в процессе администрирования с точки зрения доступов и безопасности.
Chown и Chmod в чем разница?
Команды chown и chmod тесно связаны и напрямую определяют, кому разрешено манипулировать объектами и насколько глубоко.
Эти утилиты работают в терминале, но также многие файловые менеджеры предоставляют возможность графически назначать разрешения, но в ограниченной форме.
Это может сделать пользователь (владелец), группа и остальные.
Для каждого типа устанавливается отдельное правило, поэтому не обязательно, чтобы у всех был доступ.
Chown
Давайте начнем с команды chown.
Используя ее, вы можете изменить владельца или группу объектов (другими словами, файлы, поскольку все в GNU / Linux представлено в этой форме).
Это влияет на установленные права доступа к ним.
Чтобы просмотреть владельца файла, введите:
ls -lh
Третье и четвертое поля показывают имя владельца и имя группы.
Обычно они совпадают, но бывают случаи, когда их необходимо разыменовать.
Чтобы сменить текущего владельца на нового, используйте команду:
chown root OBJECT
где OBJECT – имя файла (или нескольких разделенных пробелом).
Вы также можете указать флаг -R перед именем каталога, который нужно изменить, чтобы рекурсивно выполнить операцию, которая затрагивает все вложенные объекты.
Если терминал указывает, что для выполнения этого действия недостаточно прав, сначала добавьте sudo:
sudo chown root OBJECT
Чтобы изменить группу, укажите ее с помощью команды:
chown root:root OBJECT
или
chown :root OBJECT
чтобы изменить только группу:
Помимо флага рекурсивной операции существуют и другие (которые похожи на chmod).
Например, –from позволяет вносить изменения только для объектов с указанным владельцем и группой.
Имеет смысл использовать его вместе с рекурсией:
chown --from=anton:anton http:http -R OBJECT
Chmod
Теперь давайте перейдем к команде chmod.
Позволяет манипулировать правами доступа к любым системным объектам, кроме символических ссылок (по умолчанию).
Существует 3 типа взаимодействия файлов: чтение, запись и выполнение. Чтобы просмотреть указанные правила для объектов, введите:
ls -lh
В показанном списке самый левый столбец объясняется следующим образом.
Первый символ описывает тип файла («-» – это обычный файл, «d» – это каталог и т. д.), затем есть три группы по три символа в каждой: первый описывает права доступа для пользователя (не обязательно владелец объекта), второй для группы пользователей и третий для остальных, не входящих ни в одну категорию.
Каждый из этих символов напрямую определяет тип доступа: чтение, запись и выполнение.
Если есть дефис (минус), то соответствующее действие запрещено. Чтение означает открытие файла и просмотр его содержимого. Запись позволяет вносить изменения в объект, а выполнение – запускать программу / скрипт.
Что касается каталогов, запреты работают следующим образом:
только чтение каталога запрещено (-wx) |
запрещена только запись в каталог (r–х) |
запрещено только выполнение каталога (rw-) |
|
изменить папку | + | + | – |
просматривать файлы в папке
|
– | + | + |
удалить файлы в папке | + | – | – |
создавать / изменять файлы в папке
|
+ | + | – |
Вы можете заметить, что эффект запрета на чтение прямо противоположен эффекту запрета на исполнение.
В зависимости от прав доступа владелец может перемещать и удалять объекты, созданные от его имени.
Запись! В статье не рассматриваются изменения в битах Set-User-ID и Set-Group-ID из-за конкретной области их применения.
Манипулирование этими правилами осуществляется двумя способами, описанными ниже:
См. также: