Как работают права на файлы Linux?

Оглавление:

Как работают права на файлы Linux?
Как работают права на файлы Linux?

Видео: Как работают права на файлы Linux?

Видео: Как работают права на файлы Linux?
Видео: Что такое виртуализация? Просто о сложном - YouTube 2024, Май
Anonim
Если вы некоторое время используете Linux (и даже OS X), вы, вероятно, столкнетесь с ошибкой «разрешения». Но что именно они и зачем они нужны или полезны? Давайте посмотрим внутрь.
Если вы некоторое время используете Linux (и даже OS X), вы, вероятно, столкнетесь с ошибкой «разрешения». Но что именно они и зачем они нужны или полезны? Давайте посмотрим внутрь.

Пользовательские разрешения

В тот же день компьютеры были огромными машинами, которые были невероятно дорогими. Чтобы максимально использовать их, было подключено несколько компьютерных терминалов, что позволило многим пользователям одновременно заниматься своим бизнесом. Обработка данных и их хранение выполнялись на машине, а сами терминалы были немного больше, чем средство просмотра и ввода данных. Если вы думаете об этом, то в значительной степени мы получаем доступ к данным о «облаке»; посмотрите систему Amazon's Cloud MP3, Gmail и Dropbox, и вы заметите, что, хотя изменения могут быть сделаны локально, все хранится удаленно.

(Изображение: Zenith Z-19 «немой» терминал, кредит: ajmexico)
(Изображение: Zenith Z-19 «немой» терминал, кредит: ajmexico)

Чтобы это работало, отдельные пользователи должны иметь учетные записи. Они должны иметь раздел выделенной области хранения, и им необходимо разрешить запуск команд и программ. Каждый получает конкретные «разрешения пользователей», которые определяют, что они могут и чего не могут сделать, где в системе они делают и не имеют доступа, и чьи файлы они могут и не могут изменять. Каждый пользователь также помещается в различные группы, которые предоставляют или ограничивают дальнейший доступ.

Доступ к файлам

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

В мире Linux разрешения делятся на три категории: чтение, запись и выполнение. Доступ «Чтение» позволяет просматривать содержимое файла, «писать» доступ позволяет изменять содержимое файла, а «выполнить» позволяет запускать набор инструкций, таких как скрипт или программа. Каждая из этих категорий применяется к различным классам: пользователю, группе и миру. «Пользователь» означает владельца, «группа» означает любого пользователя, который находится в той же группе, что и владелец, а «мир» означает кого угодно и всех.

Папки также могут быть ограничены этими разрешениями. Вы можете, например, разрешить другим людям в вашей группе просматривать каталоги и файлы в вашей домашней папке, но не за пределами вашей группы. Вероятно, вы захотите ограничить доступ «писать» только к себе, если только вы не работаете над каким-то совместным проектом. Вы также можете создать общий каталог, который позволяет всем просматривать и изменять файлы в этой папке.
Папки также могут быть ограничены этими разрешениями. Вы можете, например, разрешить другим людям в вашей группе просматривать каталоги и файлы в вашей домашней папке, но не за пределами вашей группы. Вероятно, вы захотите ограничить доступ «писать» только к себе, если только вы не работаете над каким-то совместным проектом. Вы также можете создать общий каталог, который позволяет всем просматривать и изменять файлы в этой папке.

Изменение разрешений в Ubuntu

графический интерфейс пользователя

Чтобы изменить права доступа к файлу, находящемуся в Ubuntu, просто щелкните файл правой кнопкой мыши и перейдите в «Свойства».

Вы можете изменить, могут ли Владелец, Группа или Другие читать и писать, читать только или ничего не делать. Вы также можете установить флажок, чтобы разрешить выполнение файла, и это позволит его владельцу, группе и другим одновременно.
Вы можете изменить, могут ли Владелец, Группа или Другие читать и писать, читать только или ничего не делать. Вы также можете установить флажок, чтобы разрешить выполнение файла, и это позволит его владельцу, группе и другим одновременно.

Командная строка

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

ls -al

Рядом с каждым файлом и каталогом вы увидите специальный раздел, в котором описываются разрешения, которые он имеет. Это выглядит так:
Рядом с каждым файлом и каталогом вы увидите специальный раздел, в котором описываются разрешения, которые он имеет. Это выглядит так:

-rwxrw-r–

р означает «читать», вес означает «писать», а Икс означает «выполнить». Каталоги начнутся с «d» вместо «-». Вы также заметите, что есть 10 пробелов, которые содержат значение. Вы можете игнорировать первый, а затем есть 3 набора из 3. Первый набор для владельца, второй набор для группы, а последний набор для мира.

Чтобы изменить разрешения файла или каталога, давайте рассмотрим базовую форму команды chmod.

chmod [class][operator][permission] file

chmod [ugoa][+ or –] [rwx] file

Сначала это может показаться сложным, но поверьте мне, это довольно легко. Во-первых, давайте посмотрим на классы:

  • u: Это для владельца.
  • g: Это для группы.
  • o: Это для всех остальных.
  • a: Это изменит разрешения для всех вышеперечисленных.

Далее, операторы:

  • +: Знак «плюс» добавит следующие разрешения.
  • -: Знак минус удалит следующие разрешения.

Все еще со мной? И последний раздел такой же, как и при проверке прав доступа к файлу:

  • r: Позволяет читать доступ.
  • w: Разрешает доступ на запись.
  • x: Позволяет выполнить выполнение.

Теперь, давайте сделаем это вместе. Допустим, у нас есть файл с именем «todo.txt», который имеет следующие разрешения:

-rw-rw-r–

То есть владелец и группа могут читать и писать, и мир может читать только. Мы хотим изменить права на них:

-rwxr-–

То есть у владельца есть полные разрешения, и группа может читать. Мы можем сделать это за 3 шага. Во-первых, мы добавим разрешение на выполнение для пользователя.

chmod u+x todo.txt

Затем мы удалим разрешение записи для группы.

chmod g-w todo.txt

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

chmod o-r todo.txt

Мы также можем объединить их в одну команду:

chmod u+x,g-w,o-r todo.txt

Вы можете видеть, что каждый раздел разделяется запятыми, и пробелов нет.
Вы можете видеть, что каждый раздел разделяется запятыми, и пробелов нет.

Вот некоторые полезные разрешения:

  • -rwxr-xr-x: Владелец имеет полные разрешения, группа и другие пользователи могут читать содержимое файла и выполнять.
  • -rwxr-r-: Владелец имеет полные разрешения, группы и другие пользователи могут читать только файл (полезно, если вы не возражаете против того, чтобы другие просмотрели ваши файлы.
  • -rwx--: У владельца есть полные разрешения, у всех остальных нет никого (полезно для личных скриптов).
  • -rw-rw--: Владелец и группа могут читать и писать (полезно для сотрудничества с членами группы).
  • -rw-r-r-: Владелец может читать и писать, группы и другие пользователи могут читать только файл (полезный для хранения личных файлов в общей сети).
  • -rw ---: Владелец может читать и писать, у всех других нет (полезно для хранения личных файлов).

Есть еще несколько вещей, которые вы можете сделать с помощью chmod - например, setuid и setgid - но они немного углублены, и большинству пользователей вообще не нужно будет их использовать.

Корневые или суперпользовательские и системные файлы

В настоящее время мы не всегда запускаем системы с несколькими пользователями. Почему мы должны беспокоиться о разрешениях?
В настоящее время мы не всегда запускаем системы с несколькими пользователями. Почему мы должны беспокоиться о разрешениях?

Ну, Unix и его производные - Linux, OS X, среди прочих - также различают вещи, выполняемые пользователем, вещи, выполняемые администратором или с правами администратора, и все, что запускается самой системой. Таким образом, вещи, которые являются неотъемлемой частью системы, нуждаются в привилегиях администратора, которые необходимо изменить или получить доступ. Таким образом, вы ничего не испортите.

В Ubuntu, чтобы внести изменения в системные файлы, вы используете «sudo» или «gksudo», чтобы получить эквивалент привилегий администратора. В других дистрибутивах вы переключаетесь на «root» или «суперпользователь», который эффективно делает то же самое, пока вы не выйдете из системы.

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

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

Думаете, вы можете легче объяснить ситуацию? Есть коррекция? Хотите вспомнить старые времена? Сделайте перерыв и оставьте свои мысли в комментариях.

Рекомендуемые: