В Linux управление доступом к файловой системе осуществляется через права собственности и права доступа к файлам.
Права доступа к файлам или режимы файлов определяют, кто может получить доступ, изменить или выполнить файл в системе Linux.
Это гарантирует, что только авторизованные пользователи и процессы могут получить доступ к файлам и каталогам.
Это ключевая концепция, относящаяся к
безопасности всей системы . В этой лекции будут рассмотрены основы модели разрешений Linux.
У каждого файла есть владелец и группа.
По умолчанию владельцем является пользователь, создавший файл, а группа является основной группой этого пользователя.
Обратите внимание, что владелец файла не обязательно должен принадлежать владельцу группы того же файла.
Право собственности на файл или каталог может быть изменено только пользователем root с помощью команд изменить владельца и изменить группу
. Мы рассмотрим их позже в этом разделе.
Для каждого файла в системе права назначаются трем различным категориям пользователей:
владельцу файла, владельцу группы и другим, кому-либо еще или всему миру.
К каждой категории применяются три типа разрешений для файлов: разрешение на чтение (r),
разрешение на запись (w) и разрешение на выполнение (x). Эта концепция позволяет указать, каким пользователям разрешено
читать файл,
записывать в файл или выполнять файл.
Обратите внимание, что разрешения на каталоги действуют иначе, чем на файлы.
Итак, в двух словах, есть три разрешения (чтение, запись и выполнение) для трех категорий пользователей:
(владелец, группа и другие). Чтобы просмотреть права доступа к файлу, выполните команду ls -l.
Теперь позвольте мне объяснить вам ту часть вывода, которая связана с правами доступа к файлам.
После первого символа, обозначающего тип файла, идут 9 символов, которые представляют
права доступа к файлу.
Первый триплет показывает разрешения владельца, второй - разрешения группы, а последний
триплет показывает разрешения всех остальных.
Разрешения для каждого класса всегда представлены в точном порядке:
чтение, запись и выполнение.
Возьмем другой пример!
Владелец файла, который является root, имеет разрешения на чтение и запись, но не имеет разрешения на выполнение.
Дефис указывает на отсутствие разрешения.
Группа и другие имеют только красное разрешение, посмотрите, как стоит дефис вместо записи и
выполнения как для группы, так и для других.
Давайте посмотрим еще несколько примеров, чтобы глубже понять эту концепцию.
В следующих примерах я обмениваюсь правами доступа к файлу с помощью команды chmod, но, пожалуйста
, не сосредотачивайтесь на команде.
Я покажу вам, как изменить права доступа к файлу, и вернусь к использованию этой команды в следующей
лекции.
Просто сосредоточьтесь на том, как представлены разрешения и что они означают для файла. Как непривилегированный
пользователь
я создаю файл, а затем хочу увидеть его разрешения.
Я использую перенаправление: users.txt и посмотрим разрешение файла.
Это права доступа к файлу: владелец должен иметь права как на чтение, так и на запись, чтобы он мог просматривать
и изменять файл.
Пользователь может просматривать содержимое файла.
Допустим, w> users.txt
. Пользователь может изменять содержимое файла, это нормально.
Теперь я удалю для пользователя разрешение на чтение: chmod ur и файл.
Теперь вы видите дефис вместо буквы r для разрешения пользователя.
Я пытаюсь просмотреть содержимое файла, cat users.txt, и пользователь больше не может просматривать
содержимое файла.
Обратите внимание, что пользователю по-прежнему разрешено изменять содержимое файла.
У него все еще есть разрешение на запись; теперь я также удалю разрешение на запись: chmode uw
users.txt
Нет разрешений для пользователя, для владельца; и пользователь больше не может изменять файл.
Те же правила применимы к владельцу группы и другим категориям. Обратите внимание, что права на
чтение и запись не применимы к пользователю root, даже если у root нет этих разрешений,
он может просматривать и изменять файлы.
Я временно становлюсь root, выполнив sudo su
Я root
Я создаю новый файл, используя перенаправление.
И я удаляю все права доступа к файлу: chmod 000 и имя файла.
Вы можете видеть, что ни у кого нет разрешений.
Я пытаюсь отобразить содержимое файла: cat interfaces.txt и root могли
видеть содержимое файла.
Или ls> interfaces.txt было разрешено изменять файл.
В заключение можно сказать, что права на чтение и запись файлов предназначены только для непривилегированных
пользователей. И последнее разрешение - выполнить.
Файл с таким разрешением представляет собой сценарий оболочки или команду. Все команды Linux имеют набор разрешений
на выполнение .
Если файл, представляющий команду, не имеет установленного разрешения на выполнение, он не может быть выполнен,
его нельзя запустить.
Мы сделаем небольшой перерыв,
и в следующей лекции я научу вас, как представлять права доступа к файлам в числовом формате.