08.12.2021

Права доступа в дистрибутивах Linux

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

Права доступа – Буквенные обозначения

И так, как вы поняли, при выводе командой “ls” можно увидеть права доступа, но возникает вопрос, что обозначают данные буквы? Давайте разберемся в этом вопросе, и начнем мы с первых четырех значений которые указаны на скриншоте – “drwx”:

доступа в дистрибутивах Linux 1

Первая буква – “d” означает что это директория, в случае файла на этом месте будет прочерк.

Следующие три буквы можно расшифровать как:

r – read (чтение файла или содержимого каталога)

w – write (запись в файл или в каталог)

x – выполнение файла или чтение содержимого каталога

Эти значения относятся к владельцу директории или файлу, то есть к пользователю (User). Следующие три буквы относятся к группе в которую входит пользователь, тут все точно так же с обозначениями:

доступа в дистрибутивах Linux 2

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

доступа в дистрибутивах Linux 3

Тут вы можете наблюдать прочерк (-), который обозначает что нет прав.

Меняем права доступа к файлам и каталогам

Как уже говорилось выше, права доступа можно изменить, для этого вводится команда “chmod”, расшифровывается она как – change mode. Для изменения прав доступа к каталогу можно указать ключ -R, то есть рекурсивно. Тут стоит оговорится, что для изменения прав доступа вы должны быть владельцем данной директории или файла, или как вариант root пользователь. Для изменения прав доступа вводим “chmod”, а затем указываем буквенные обозначения:

u – Владелец файла

g – Для других пользователей, входящих в группу

o – Всех прочих пользователей

Далее указываем те самые права – r, w или x. Приведу пример на файле “index.html”, а дам ему следующие права:

chmod o+w index.html

До:

доступа в дистрибутивах Linux 4

После:

доступа в дистрибутивах Linux 5

Как видим, теперь у всех пользователей есть права на запись в данный файл. Что бы удалить эти права указываем -w:

chmod o-w index.html
доступа в дистрибутивах Linux 6

Так же можно изменить права следующим образом:

chmod cyber-x:cyber-x и указываем каталог или файла.

В данном случае, сперва вводим все ту же команду “chmod”, затем указываем имя пользователя и группу, в которую он входит. Лично мне нравится больше пользоваться цифровым обозначением прав, приведу список самых распространенных вариантов:

400 (-r--------) Владелец имеет право чтения; никто другой не имеет права выполнять никакие действия 440 (-r--r-----) Владелец и группа имеет право чтения никто другой не имеет права выполнять никакие действия 644 (-rw-r--r--) Все пользователи имеют право чтения; владелец может редактировать 660 (-rw-rw----) Владелец и группа могут читать и редактировать; остальные не имеют права выполнять никаких действий 664 (-rw-rw-r--) Все пользователи имеют право чтения; владелец и группа могут редактировать 666 (-rw-rw-rw-) Все пользователи могут читать и редактировать 700 (-rwx------) Владелец может читать, записывать и запускать на выполнение; никто другой не имеет права выполнять никакие действия 744 (-rwxr--r--) Каждый пользователь может читать, владелец имеет право редактировать и запускать на выполнение 755 (-rwxr-xr-x) Каждый пользователь имеет право читать и запускать на выполнение; владелец может редактировать 777 (-rwxrwxrwx) Каждый пользователь может читать, редактировать и запускать на выполнение 

Как вариант, рассмотрим права 755, сперва указывается владелец – 7, затем группа – 5 и для всех остальных пользователей – 5. Комбинируя цифры можно выставить разные права на каталоги и файлы.

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

доступа в дистрибутивах Linux 7

Так же можно вызвать справку по команде “chmod” набрав в терминале:

chmod –help

Заключение

Права доступа имеют огромное значение, не говоря уже о безопасности в вашей операционной системе. Рассмотрим такой вариант, у вас в системе Linux несколько пользователей, и если бы они имели доступ к вашему домашнему каталогу, то могли бы в нем вносить любые изменения – редактировать его содержимое, править файлы и так далее. Согласитесь, что это не очень хорошо, по этому домашние каталоги в Linux имеют ограничения прав, и не кто кроме вас и root пользователя не сможет в нем вносить какие либо правки.

То же самое касается и других директорий и файлов, на них так же распространяются данные права доступа, по этому часто можно увидеть, что редактирование того или иного файла происходит от root пользователя. Это объясняется тем, что у вашего пользователя попросту нет необходимых прав. Менять права доступа в Linux системах крайне не рекомендуется, если на то нет явных причин. По этому будьте крайне осторожны с правами доступа. На WIKI имеется более расширенная статья, по этому если хотите больше узнать о правах доступа в Unix системах, советую перейти о ознакомится с ней.

А на этом сегодня все, надеюсь, данная статья будет вам полезна.
Хотелось бы выразить огромную благодарность тем, кто принимает активное участие в жизни и развитии журнала, огромное спасибо вам за это.
Журнал Cyber-X

Источник.