Настройка прав доступа в 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) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник
Ubuntu Documentation
Candidate for Deletion
This article may not be appropriate for this wiki, and may be deleted. More info.
Содержание
Права доступа в системе Linux
Поскольку Linux (да и UNIX вообще) — многопользовательская OS, в ней существует система прав доступа к файлам, служащая для защиты файлов каждого пользователя от влияния других пользователей системы.
Права доступа подразделяются на три типа:
чтение (read)
запись (write)
выполнение (execute)
Разрешение на чтение позволяет пользователю читать содержимое файлов, а в случае каталогов — просматривать перечень имен файлов в каталоге (используя, например, команду ls). Разрешение на запись позволяет пользователю писать в файл, изменять его или удалять. Для каталогов это дает право cоздавать в каталоге новые файлы и каталоги, или удалять файлы в этом каталоге. Наконец, разрешение на выполнение позволяет пользователю выполнять файлы (как бинарные программы, так и командные файлы). Если на файле стоит атрибут Execute, то независимо от его расширения он считается программой, которую можно запустить. (Вот почему в *nix не принято ставить исполняемым файлам расширения по типу DOS’овских *.com, *.exe, *.bat. Вообще в Unix/Linux нет такого жесткого понятия расширение файла, как в Dos/Windows, и система сама определяет тип файлов независимо от их расширения, но это — уже другая история. ). Так же атрибут выполнения может стоять у shell-скриптов, CGI-скриптов, и у всего, что можно хоть как-то запустить. Разрешение на выполнение применительно к каталогам означает возможность выполнять команды вроде cd.
Эти типы прав доступа могут быть предоставлены для трех классов пользователей:
владельцы — у каждого файла в Linux’e есть один владелец.
группы — с каждым файлом связана группа пользователей этого файла.
остальные пользователи.
Владельцем файла становится юзер, который создал этот файл. Короче говоря, для файла все юзеры делятся на 3 типа: хозяин, или владелец, юзеры, состоящие в одной группе с владельцем, и все остальные юзеры. Для каждого типа — свои права. Учтите, что директории и все системные устройства в UNIX являются обычными файлами. Тот же самый /dev/fd0 — это не сам Floppy disk, а всего лишь файл, связанный с флопповодом. Поэтому, если root запретил юзеру доступ к этому файлу, тот не сможет использовать флопповод (так же обстоят дела с модемами, хардами и т.п.). Владельцем всех системных файлов является root. Он же имеет право забирать файлы у одного юзера и передавать их другому (менять владельца).
Команда chmod
Изменить права доступа к файлу может либо его владелец, либо сам root. Делается это командой chmod. Существует две формы представления прав доступа: символьная и цифровая.
Символьная форма прав доступа
Если войти в любой каталог, где есть файлы, и набрать ls -l, то появится список всех файлов в этом каталоге и права доступа в символьной форме. Строка прав доступа состоит из 10 символов. Первый символ указывает на тип файла: d — директория, — — обычный файл. Три последующих — права доступа владельца к этому файлу. Если первый символ из этих трех — r, владелец имеет право читать этот файл, а если —, то не имеет. Следующие 2 символа — w — писать и x — запускать. Если вместо них стоит —, значит, владелец этого права не имеет. Еще 3 символа — права доступа группы, еще три — права всех остальных пользователей.
drwxrwxrwx — директория, к которой все имеют любые права доступа.
-rwxr--r-- — обычный файл, владелец может делать все, а остальные — только читать.
-r-------- — обычный файл, который владелец может только читать, а остальные пользователи не видят.
Важно заметить, что права доступа, которые имеет файл, зависят также от прав доступа к каталогу, в котором этот файл находится. Например, даже если файл имеет -rwxrwxrwx, другие пользователи не смогут до него добраться, если у них не будет прав на чтение и выполнение каталога, в котором находится файл. Например, если юзер захочет ограничить доступ ко всем своим файлам, он может просто изменить права доступа своего домашнего каталога /home/user на drwx------. Таким образом, никто другой не будет иметь доступ в его каталог, а следовательно посторонним будут недоступны и все файлы. Так что, пользователь может не заботиться об индивидуальной защите своих файлов. Другими словами, чтобы иметь доступ к файлу, вы должны иметь доступ ко всем каталогам, лежащим на пути от корня к этому файлу, а также разрешение на доступ собственно к этому файлу. Обычно пользователи UNIX весьма открыты всеми своими файлами. По умолчанию файлам устанавливается защита -rw-r--r--, которая позволяет другим пользователям читать файлы, но ни коим образом их не менять. Каталогам обычно устанавливаются права доступа drwxr-xr-x, что позволяет другим пользователям ходить с правами экскурсантов по вашим каталогам, но ничего в них не трогать и не записывать.
Но многие пользователи хотят держать других подальше от своих файлов. Установив права доступа файла -rw-------, вы никому не покажете этот файл и не дадите записать в него. Также хорошо закрывает файлы защита соответствующего каталога drwx------.
С правами доступа в символьной форме chmod работает так:
Кратко, вы выбираете из all (все), user (пользователь), group (группа) или other (другие). Далее указываете, либо вы добавляете права (+), либо лишаете прав (—). И наконец, вы указываете один или несколько режимов: read, write или execute.
Числовая форма прав доступа
Теперь права доступа в числовой форме. Для некоторых эта форма может показаться более простой. Надо запомнить только следующее:
- 400 — владелец имеет право на чтение
- 200 — владелец имеет право на запись
- 100 — владелец имеет право на выполнение
- 40 — группа имеет право на чтение
- 20 — группа имеет право на запись
- 10 — группа имеет право на выполнение
- 4 — остальные имеют право на чтение
- 2 — остальные имеют право на запись
- 1 — остальные имеют право на выполнение
Теперь осталось только просуммировать числа, соответствующие тем правам доступа, которые мы хотим поставить файлу.
Примеры
Символьная форма
Дает всем пользователям право читать файл stuff.
То же самое, что и ранее (a — по умолчанию).
Лишает права на выполнение всех, кроме владельца.
Разрешает владельцу все (read, write и execute).
Запрещает все (read, write и execute) пользователям категории другие (other).
владелец может делать все, а остальные — только читать.
все имеют право только на чтение.
владелец может читать и выполнять, остальные — только выполнять.
Классическая команда. Скрипт — это исполняемый файл, и все должны иметь к нему доступ на чтение и выполнение. Только владелец этого файла может его изменять или удалять.
Команда chown
Изменение владельца файла осуществляется командой chown, например:
Для передачи каталога надо вводить:
Команда chgroup
Изменение группы, которой принадлежит файл.
Для передачи каталога надо вводить:
FilePermissionsRu (последним исправлял пользователь ckimes 2017-09-02 05:31:46)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details
Источник