- Права доступа к файлам в Linux
- Основные права доступа к файлам в Linux
- Специальные права доступа к файлам в Linux
- Как посмотреть права доступа к файлам в Linux
- Как изменить права файла в Linux
- Выводы
- Как проверить права доступа к папке в Linux
- Предпосылки
- Пользователи и группы пользователей
- Проверка прав доступа к файлам и папкам
- Проверка прав доступа к файлам с помощью графического интерфейса
- Проверка прав доступа к файлам с помощью CLI
- Объяснение прав доступа к файлам
- Изменение прав доступа к файлам и папкам
- Изменение владельца файла
- Последние мысли
Права доступа к файлам в 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 вы можете заставить программу применять изменения ко всем файлам и каталогам рекурсивно.
Категория указывает для какой группы пользователей нужно применять права, как вы помните доступно только три категории:
Действие может быть одно из двух, либо добавить — знак «+», либо убрать — знак — «-«. Что касается самих прав доступа, то они аналогичны выводу утилиты ls: r — чтение, w — запись, x — выполнение, s — suid/sgid, в зависимости от категории, для которой вы его устанавливаете, t — устанавливает sticky-bit. Например, всем пользователям полный доступ к файлу test5:
Или заберем все права у группы и остальных пользователей:
Дадим группе право на чтение и выполнение:
Остальным пользователям только чтение:
Для файла test6 установим SUID:
Как видите, изменить права на файл в Linux очень просто. К тому же вы можете изменить основные права с помощью файлового менеджера.
Выводы
Вот и все, теперь вы знаете не только что такое права доступа к файлам в Linux, но и как их посмотреть, и даже как их изменить. Это очень важная тема, в которой действительно стоит разобраться новичкам, чтобы использовать свою систему более полноценно. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение хочу предложить неплохое видео про права доступа в Linux:
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как проверить права доступа к папке в Linux
Добавить в избранное
Главное меню » Linux » Как проверить права доступа к папке в Linux
L inux — многопользовательская операционная система. Он может обрабатывать несколько пользователей, обращающихся к системе одновременно. Это одна из основных причин, почему Linux так популярен в мэйнфреймах, серверах, суперкомпьютерах и т. д. Поскольку это многопользовательская система, крайне важно иметь функциональное управление разрешениями пользователей. Это фундамент, определяющий, какой пользователь/группа может получить доступ к какой части системы.
Для доступа к файлам это разрешение пользователя управляется как права доступа к файлу. В этой статье мы подробно рассмотрим права доступа к файлам и папкам в Linux.
Предпосылки
Чтобы понять права доступа к файлам и папкам, важно понимать несколько ключевых понятий. В этом разделе мы кратко опишем каждый из них.
Пользователи и группы пользователей
Linux разрешает доступ к системам отдельным пользователям. Любой действительный пользователь может подключиться к системе локально или удаленно и получить доступ к любому выделенному ресурсу.
Если пользователей сотни, то управлять всеми их разрешениями по отдельности довольно неэффективно. Чтобы решить эту проблему, в Linux введена концепция групп пользователей. Каждая группа может содержать одного или нескольких пользователей. Изменение разрешений для группы пользователей будет автоматически применяться ко всем пользователям в этой группе.
Проверка прав доступа к файлам и папкам
В зависимости от типа пользовательского интерфейса есть два способа проверить права доступа к файлу папки/каталога.
Проверка прав доступа к файлам с помощью графического интерфейса
Если ваш дистрибутив поставляется с окружением рабочего стола, то, скорее всего, в нем также будет установлен файловый менеджер. Все файловые менеджеры могут проверять и показывать права доступа к файлам. Для демонстрации давайте взглянем на Nautilus, файловый менеджер по умолчанию в GNOME.
Щелкните правой кнопкой мыши любой файл/папку и выберите «Свойства».
Чтобы проверить разрешения, перейдите на вкладку «Разрешения».
Проверка прав доступа к файлам с помощью CLI
Это наиболее рекомендуемый (хотя и немного запутанный) метод проверки прав доступа к файлам в Linux. Мы будем использовать инструмент ls, который предустановлен во всех дистрибутивах Linux.
Чтобы проверить права доступа к файлу, выполните следующую команду ls. Ознакомьтесь с этим руководством для более подробного изучения команды ls.
Если расположение файла не указано, то ls выведет информацию обо всех файлах в текущем каталоге. Обратите внимание, что ls может не печатать права доступа к файлу и информацию, если это каталог.
Например, при попытке проверить права доступа к каталогу «~/Desktop» ls вообще не выводит никакой информации.
В такой ситуации запустите ls в родительском каталоге целевого каталога. В данном случае это «~/».
Объяснение прав доступа к файлам
Как мы видим, права доступа к файлу описываются строкой из нескольких символов ASCII. Это руководство по правам доступа к файлам в Linux объясняет все более подробно. Здесь у нас будет краткий обзор.
Существует 3 типа разрешений.
- read ( r ) — способность пользователя читать содержимое файла.
- write ( w ) — возможность пользователя записывать или изменять файл или содержимое каталога.
- execute ( x ) — возможность пользователя выполнить файл или просмотреть содержимое каталога.
Строка разрешения содержит следующие данные.
- Символ 1: Описывает тип файла (каталог, символическая ссылка, разрешения setuid/setgid или разрешения закрепленного бита).
- Символ 2-4: Описывает права доступа к файлу для владельца.
- Символ 5-7: Описывает групповые разрешения для файла.
- Символ 8-10: Описывает права доступа к файлам для всех остальных в системе.
Для типа файла существует несколько разных значений.
- _: Никаких специальных разрешений.
- d: Каталог
- l: символическая ссылка, также известная как символическая ссылка. Узнайте больше о символических ссылках в Linux.
- s: разрешения setuid/setgid.
- t: Закрепленные битовые разрешения.
Изменение прав доступа к файлам и папкам
Права доступа к файлам являются важными значениями. Однако при наличии соответствующих полномочий пользователь в системе Linux может изменить права доступа к файлу.
Для изменения разрешений в Linux имеется встроенный инструмент под названием chmod. Например, чтобы пометить файл сценария как исполняемый, мы должны запустить следующую команду.
Если бы вы хотели убрать из файла флаг «исполняемый», то команда выглядела бы так.
Новичку рекомендуется попрактиковаться в различных командах chmod, например, дать пользователю разрешение на доступ к папке. Следующее руководство углубляется в chmod с пояснениями.
Изменение владельца файла
Владелец файла также влияет на права доступа к файлу. Как правило, это пользователь, который изначально создал файл. Однако владельцами файла или каталога могут быть назначены разные пользователи.
Чтобы изменить владельца файла, в Linux есть инструмент chown.
Последние мысли
Права доступа к файлам — важная концепция в Linux. Проверка прав доступа к файлу для папки — простая задача. Linux поставляется с необходимыми инструментами для управления ими прямо из командной строки. В этой статье успешно демонстрируется проверка и изменение прав доступа к файлам и папкам.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.