Меню

Linux как настроить права доступа

Права доступа к файлам в Linux

В операционной системе Linux есть много отличных функций безопасности, но она из самых важных — это система прав доступа к файлам. Linux, как последователь идеологии ядра Linux в отличие от Windows, изначально проектировался как многопользовательская система, поэтому права доступа к файлам в linux продуманы очень хорошо.

И это очень важно, потому что локальный доступ к файлам для всех программ и всех пользователей позволил бы вирусам без проблем уничтожить систему. Но новым пользователям могут показаться очень сложными новые права на файлы в linux, которые очень сильно отличаются от того, что мы привыкли видеть в Windows. В этой статье мы попытаемся разобраться в том как работают права файлов в linux, а также как их изменять и устанавливать.

Основные права доступа к файлам в Linux

Изначально каждый файл имел три параметра доступа. Вот они:

  • Чтение — разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
  • Запись — разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
  • Выполнение — вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.

Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:

  • Владелец — набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
  • Группа — любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
  • Остальные — все пользователи, кроме владельца и пользователей, входящих в группу файла.

Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.

Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:

Специальные права доступа к файлам в Linux

Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.

  • SUID — если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
  • SGID — этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
  • Sticky-bit — этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.

Теперь давайте рассмотрим как посмотреть и изменить права на файлы в Linux.

Как посмотреть права доступа к файлам в Linux

Конечно, вы можете посмотреть права доступа к файлам в Linux с помощью файлового менеджера. Все они поддерживают эту функцию, но так вы получите неполную информацию. Для максимально подробной информации обо всех флагах, в том числе специальных, нужно использовать команду ls с параметром -l. Все файлы из каталога будут выведены в виде списка, и там будут показаны все атрибуты и биты.

Читайте также:  Как настроить звук в вайбере в телефоне

Чтобы узнать права на файл linux выполните такую команду, в папке где находится этот файл:

За права файлов в linux тут отвечают черточки. Первая это тип файла, который рассмотрен в отдельной статье. Дальше же идут группы прав сначала для владельца, для группы и для всех остальных. Всего девять черточек на права и одна на тип.

Рассмотрим подробнее, что значат условные значения флагов прав:

  • — нет прав, совсем;
  • —x — разрешено только выполнение файла, как программы но не изменение и не чтение;
  • -w- — разрешена только запись и изменение файла;
  • -wx — разрешено изменение и выполнение, но в случае с каталогом, вы не можете посмотреть его содержимое;
  • r— — права только на чтение;
  • r-x — только чтение и выполнение, без права на запись;
  • rw- — права на чтение и запись, но без выполнения;
  • rwx — все права;
  • —s — установлен SUID или SGID бит, первый отображается в поле для владельца, второй для группы;
  • —t — установлен sticky-bit, а значит пользователи не могут удалить этот файл.

В нашем примере, файл test1 имеет типичные разрешения для программ, владелец может все, группа только чтение и выполнение, а все остальные — только выполнение. Для test2 дополнительно установлен флаг SUID и SGID. А для папки test3 установлен Sticky-bit. Файл test4 доступный всем. Теперь вы знаете как посмотреть права на файл linux.

Как изменить права файла в Linux

Чтобы изменить права на файл в linux вы можете использовать утилиту chmod. Она позволяет менять все флаги, включая специальные. Рассмотрим ее синтаксис:

$ chmod опции категория действие флаг файл

Опции сейчас нас интересовать не будут, разве что только одна. С помощью опции -R вы можете заставить программу применять изменения ко всем файлам и каталогам рекурсивно.

Категория указывает для какой группы пользователей нужно применять права, как вы помните доступно только три категории:

  • u — владелец файла;
  • g — группа файла;
  • o — другие пользователи.

Действие может быть одно из двух, либо добавить — знак «+», либо убрать — знак — «-«. Что касается самих прав доступа, то они аналогичны выводу утилиты ls: r — чтение, w — запись, x — выполнение, s — suid/sgid, в зависимости от категории, для которой вы его устанавливаете, t — устанавливает sticky-bit. Например, всем пользователям полный доступ к файлу test5:

chmod ugo+rwx test5

Или заберем все права у группы и остальных пользователей:

chmod go-rwx test5

Дадим группе право на чтение и выполнение:

chmod g+rx test5

Остальным пользователям только чтение:

Для файла test6 установим SUID:

А для test7 — SGID:

Посмотрим что получилось:

Как видите, изменить права на файл в Linux очень просто. К тому же вы можете изменить основные права с помощью файлового менеджера.

Выводы

Вот и все, теперь вы знаете не только что такое права доступа к файлам в Linux, но и как их посмотреть, и даже как их изменить. Это очень важная тема, в которой действительно стоит разобраться новичкам, чтобы использовать свою систему более полноценно. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение хочу предложить неплохое видео про права доступа в Linux:

Источник



Настройка прав доступа в 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. Перечисленные способы являются универсальными и подходят всем дистрибутивам. Перед активацией каждой команды мы настоятельно советуем убедиться не только в правильности синтаксиса, но и названиях файлов и пути к ним.

Источник