Права доступа в Linux. Команды CHMOD и ls -ld
В этой статье мы узнаем, как установить разрешения Linux для файлов и каталогов. Разрешения определяют, может ли конкретное лицо взаимодействовать с файлом или каталогом. Таким образом, разрешения важны для создания безопасной среды.
Например, вы не хотите, чтобы другие люди изменяли ваши файлы. Также, чтобы системные файлы были защищены от повреждения (случайного или преднамеренного). К счастью, с разрешениями в системе Linux довольно легко работать.
Введение
Разрешения Linux диктуют 3 вещи, которые вы можете делать с файлом: чтение, запись и выполнение. Они упоминаются в Linux одной буквой каждая.
- r read — вы можете просмотреть содержимое файла.
- w write — вы можете изменить содержимое файла.
- x execute — вы можете выполнить или запустить файл, если это программа или скрипт.
Для каждого файла мы определяем 3 группы людей, для которых мы можем указать разрешения.
- владелец — один человек, которому принадлежит файл. (обычно человек, который создал файл, но право собственности может быть предоставлено кому-то еще некоторыми пользователями)
- группа — каждый файл принадлежит одной группе.
- другие — все остальные, кто не входит в группу или владельца.
Три убеждения и три группы людей.
Это все, что есть на самом деле с разрешениями. Теперь давайте посмотрим, как мы можем просмотреть и изменить их.
Просмотр разрешений
Для просмотра прав доступа к файлу мы используем параметр длинного списка для команды ls.
ls -l [путь]
В приведенном выше примере первые 10 символов вывода — это то, на что мы смотрим, чтобы определить разрешения.
- Первый символ определяет тип файла. Если это тире (-), то это обычный файл.
- Следующие 3 символа представляют разрешения для владельца. Буква обозначает наличие разрешения, а тире (-) обозначает отсутствие разрешения. В этом примере владелец имеет все разрешения (чтение, запись и выполнение).
- Следующие 3 символа представляют разрешения для группы. В этом примере группа имеет возможность читать, но не писать или выполнять. Обратите внимание, что порядок разрешений всегда читается, затем записывается и выполняется.
- Наконец, последние 3 символа представляют разрешения для других (или всех остальных). В этом примере у них есть разрешение на выполнение и больше ничего.
Изменить разрешения
Чтобы изменить права доступа к файлу или каталогу, мы используем команду chmod.
chmod [права доступа] [путь]
У chmod есть аргументы разрешения, которые состоят из 3 компонентов
- Для кого мы меняем разрешение? [ugoa] — пользователь (или владелец), группа, другие, все
- Предоставляем ли мы или отменяем разрешение — обозначается плюсом (+) или минусом (-)
- Какое разрешение мы устанавливаем? — прочитать (r), написать (w) или выполнить (x)
Следующие примеры сделают их использование более понятным.
Предоставьте разрешение на выполнение группе. Затем удалите разрешение на запись для владельца.
Не хотите назначать разрешения индивидуально? Мы можем назначить несколько разрешений одновременно.
Может показаться странным, что как владелец файла мы можем лишить нас возможности читать, записывать и выполнять этот файл, но есть веские причины, по которым мы можем захотеть это сделать. Например, может быть, у нас есть файл с данными, которые мы не хотим случайно изменить. Хотя мы можем удалить эти разрешения, мы не можем лишить нас возможности устанавливать эти разрешения. В итоге, мы всегда имеем контроль над каждым файлом.
Разрешения для каталогов
Серии разрешений могут использоваться для каталогов, но они ведут себя несколько иначе.
- r — у вас есть возможность прочитать содержимое каталога (т.е. сделать ls)
- w — у вас есть возможность записи в каталог (т.е. создавать файлы и каталоги)
- х — у вас есть возможность войти в этот каталог (например, CD)
Давайте посмотрим некоторые из них в действии
Обратите внимание, когда мы запускали ls, включена опция -d, которая обозначает каталог. Обычно, если мы даем ls аргумент, который является каталогом, он будет перечислять содержимое каталога. Однако в этом случае нас интересуют права доступа к каталогу, а опция -d позволяет нам получить это.
На первый взгляд эти разрешения могут показаться немного запутанными. Нам нужно помнить, что эти разрешения предназначены для самого каталога, а не для файлов внутри. Например, у вас может быть каталог, для которого у вас нет разрешения на чтение. В нем могут быть файлы, для которых у вас есть разрешение на чтение. Пока вы знаете, что файл существует и его имя, вы все равно можете прочитать файл.
Пользователь root
В системе Linux обычно есть только 2 человека, которые могут изменять права доступа к файлу или каталогу. Владелец файла или каталога и пользователь root.
Пользователь root — это суперпользователь, которому разрешено делать все и вся в системе. Обычно администраторы системы являются единственными, кто имеет доступ к корневой учетной записи и использует ее для обслуживания системы.
Обычные пользователи в основном имеют доступ к файлам и каталогам в своем домашнем каталоге. Впоследствии, это помогает поддерживать безопасность и стабильность системы.
Основная безопасность
Ваш домашний каталог — это ваше личное пространство в системе.
Большинство пользователей дают себе полные права на чтение, запись и выполнение для своего домашнего каталога. Между тем, для группы или других пользователей никаких разрешений нет. Впоследствии, некоторые пользователи по разным причинам могут иметь несколько иную настройку.
Как правило, для оптимальной безопасности вы не должны предоставлять группе или другим пользователям права на запись в ваш домашний каталог. Между тем, иногда выполнение без чтения может оказаться полезным. Это позволяет людям входить в ваш домашний каталог, но не позволяет им видеть, что там.
Обычно система запускает веб-сервер и позволяет пользователям иметь свое собственное веб-пространство. Обычная настройка заключается в том, что если вы поместите каталог в свой домашний каталог с именем public_html, то веб-сервер будет читать и отображать его содержимое. Однако веб-сервер работает от имени другого пользователя, поэтому по умолчанию он не будет иметь доступа для доступа и чтения этих файлов. Это ситуация, когда необходимо предоставить команду execute для вашего домашнего каталога, чтобы пользователь веб-сервера мог получить доступ к необходимым ресурсам.
Вывод
В данной статье мы познакомились со следующими командами:
- CHMOD — измените права доступа к файлу или каталогу.
- ls -ld — просмотр разрешений для определенного каталога.
Источник
Настройка прав доступа в Linux
В операционных системах, основанных на базе ядра Linux, присутствует инструмент настройки полномочий, который позволяет разделить права доступа между учетными записями. Благодаря этому выставляется ограничение на доступ к определенным файлам, директориям или приложениям. Всего существует три вида подобных прав — чтение, запись и выполнение. Любое из них может редактироваться отдельно под каждого зарегистрированного в ОС юзера с помощью специальных инструментов. Далее будет рассмотрено два метода конфигурации упомянутых параметров.
Настраиваем права доступа в Linux
Рассмотренные сегодня методы подойдут для всех дистрибутивов Линукс, поскольку они универсальны. Разве что первый способ будет недоступен тем юзерам, у кого нет установленного файлового менеджера, а управление системой производится исключительно через консоль. В таком случае сразу рекомендуем переходить ко второму варианту, где подробно расписано действие команды chmod. Другим пользователям, кто активно взаимодействует с графическим интерфейсом системы, советуем уделить время двум методам, ведь они имеют несколько разные возможности по настройке доступа.
Перед началом разборов способов убедитесь в том, что в системе присутствует необходимое число пользователей. Если вы знаете, что доступ к компьютеру будет еще у нескольких людей, следует создать каждому свою отдельную учетную запись, а уже потом переходить к назначению прав доступа. Детальное руководство по этой теме вы найдете в другой нашей статье по следующей ссылке.
Способ 1: Файловый менеджер
Практически каждый, кто хоть раз пользовался компьютером, сталкивался с работой файлового менеджера. В нем не только происходит переход по папкам и запуск файлов, в его функциональность входят и дополнительные инструменты по редактированию объектов и выполнению с ними других действий. Все детали мы сегодня затрагивать не будем, а лишь разберемся с выставлением привилегий и ограничений. Стоит отметить, что в дистрибутивах могут быть установлены разные менеджеры, все они различаются по интерфейсу, но в целом структура остается похожей. Возьмем за пример стандартное решение для Ubuntu — Nautilus.
- Запустите файловый менеджер, найдите там необходимый файл или папку, щелкните на объекте правой кнопкой мыши и выберите «Свойства». Если отыскать элемент не получается, задействуйте встроенную функцию поиска, она позволит найти файл по названию, формату, дате создания или изменения.
Во вкладке «Общедоступная папка локальной сети» выполняется публикация директорий для домашней группы устройств, входящих в вашу сеть. То есть после нажатия на «Опубликовать эту папку» ее смогут просматривать другие пользователи, подключенные к вашей локальной сети.
При переходе в свойства отдельного файла вы увидите немного другие разрешения, но в целом их применение остается таким же, как в случае и с директорией. Обратите внимание, что внизу добавлен параметр «Разрешить выполнение файла как программы» — активируйте его, если нужно, чтобы другие юзеры могли запускать выполнение этого объекта.
Конечно, настройки, присутствующие в файловом менеджере, позволяют быстро и без каких-либо проблем отредактировать права доступа к объектам, однако иногда набор функций достаточно ограничен, а некоторым пользователям нужна более гибкая конфигурация. В такой ситуации мы рекомендуем обратиться к следующему методу.
Способ 2: Команда chmod
Юзеры, которые уже сталкивались с выполнением определенных задач в операционных системах на Линукс, наверняка знают, что преимущественное большинство всех действий производится через классическую консоль с применением различных команд. Редактирование прав доступа для файлов и папок не стало исключением и пригодится для этого встроенная утилита chmod.
Синтаксис chmod
Каждая команда имеет свой синтаксис — набор опций и параметров, записывающихся в определенной последовательности для указания выполнения необходимых действий. Тогда последовательность ввода будет такой: chmod + опции + права + название объекта или путь к нему . Детальную информацию о том, как использовать chmod, читайте в консоли. Запустить ее можно через меню или комбинацию клавиш Ctrl + Alt + T.
В «Терминале» вам следует прописать chmod —help и нажать на клавишу Enter. После этого отобразится официальная документация на установленном по умолчанию языке, которая поможет разобраться с основами утилиты. Но мы все же приведем более детальное описание всех опций и прав.
Права доступа
Как вы уже знаете из представленной выше информации, в Linux присутствует три вида прав — чтение, запись и выполнение. Каждое из них имеет собственное буквенное обозначение в chmod, что и следует использовать при работе с командой.
- r — чтение;
- w — запись;
- x — выполнение;
- s — выполнение от имени суперпользователя. Данное право является дополнительным и подразумевает запуск программ и скриптов от главной учетной записи (грубо говоря, через команду sudo).
В первом способе заметно, что в свойствах элемента настройки разделены для каждой группы пользователей. Их тоже существует три и в chmod они определяются так:
- u — владелец объекта;
- g — группа;
- o — остальные юзеры;
- a — все перечисленные выше пользователи.
Помимо этого, рассматриваемая команда принимает обозначения прав в виде цифр. Цифры от 0 до 7 означают определенный параметр:
- 0 — отсутствие прав;
- 1 — исключительно выполнение;
- 2 — только запись;
- 3 — исполнение и запись вместе;
- 4 — исключительно чтение;
- 5 — чтение и исполнение;
- 6 — чтение и запись;
- 7 — все права вместе.
Все эти параметры одинаковы как для отдельных файлов, так и для директорий. Во время присвоения привилегий вы сначала указываете цифру для владельца, потом для группы и в конце для остальных юзеров. Тогда значение обретет вид, например, 744 или 712 . Одно или несколько из указанных прав вводятся после написания опций к утилите, поэтому их тоже следует детально изучить.
Опции
Права играют главную роль при использовании команды chmod, однако опции позволяют выполнить конфигурацию более гибко, задав дополнительные параметры. Самые популярные обозначения опций имеют такой вид:
- -c — отображение информации обо всех изменениях после активации команды;
- -f — исключить отображение всех уведомлений о возникших ошибках;
- -v — показывать всю информацию после активации команды;
- —reference — выбрать маску прав из определенного файла;
- -R — активация рекурсии. В таком случае указанные права будут применены для всех файлов и папок указанной директории;
Теперь вы ознакомлены с синтаксисом и основными обозначениями используемой сегодня утилиты под названием chmod. Осталось только ознакомиться с дополнительной полезной информацией, которая позволит упростить процесс редактирования прав, а также узнать о популярных примерах команды.
Дополнительные действия
Для повышения удобства работы в «Терминале» юзеру потребуется использовать еще несколько команд, оптимизирующих выполнение последующих действий. Например, после запуска можете прописать cd /home/user/folder , где /home/user/folder — условный путь к необходимой папке. После активации данной команды произойдет перемещение в указанную директорию и все последующие действия будут осуществляться через нее. Таким образом, исключается надобность ввода полного пути к файлу или папке в дальнейшем (конечно, если они располагаются в том расположении, куда был произведен переход).
Нельзя не отметить и команду ls с опцией -l . Такая утилита позволяет просмотреть текущие установки по правам доступа к объектам. Например, результат -rw-rw-r— означает, что владелец сможет читать и редактировать файл, группа делать то же самое, а остальные юзеры только читать. (Все обозначения соответствуют описанным выше правам доступа). Подробно о действии команды ls в Linux рассказано в другой нашей статье по следующей ссылке.
Примеры команды
Напоследок хотелось бы привести несколько примеров использования утилиты, чтобы у пользователей больше не осталось вопросов касаемо синтаксиса команды и ее применения. Обратите внимание на такие строки:
- chmod a+r File_Name — добавить всем права на чтение файла;
- chmod a-x File_Name — забрать права на исполнение объекта;
- chmod a+r File_Name — добавить права на чтение и запись;
- chmod -R u+w,go-w Folder_Name — включение рекурсии (применение команды для всей директории и ее содержимого), добавление прав на запись для владельца и удаление прав на запись у остальных пользователей.
Как видите, знаки + и — означают добавить или забрать права. Указываются они вместе с опциями и правами без пробелов, а затем идет название файла или полный путь к нему.
Сегодня вы узнали о двух методах настройки прав доступа в ОС, основанных на ядре Linux. Перечисленные способы являются универсальными и подходят всем дистрибутивам. Перед активацией каждой команды мы настоятельно советуем убедиться не только в правильности синтаксиса, но и названиях файлов и пути к ним.
Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник