Unix / Linux - File Permission / Access Modes

Здравствуйте,野心勃勃的程序设计师们!今天,我们将深入探讨Unix和Linux文件权限的迷人世界。如果你是初学者,不用担心;在本教程结束时,你将成为文件权限专家!让我们一起开始这段激动人心的旅程。

Unix / Linux - File Permission

Permission Indicators (Permission Indicators)

Представьте, что вы хранитель сундука с сокровищами. Вы должны решить, кто может его открыть, кто может положить в него вещи, и кто может их取出. Именно об этом и идет речь вUnix и Linux в файловых разрешениях!

Когда вы перечисляете файлы с помощью команды ls -l, вы увидите что-то вроде этого:

-rwxr-xr-x 1 john users 2048 Jan 15 2023 myfile.txt

Давайте разберем эти загадочные буквы в начале:

  • Первый символ indicates тип файла (- для обычного файла, d для каталога)
  • Следующие 9 символов представляют собой разрешения для пользователя, группы и других

Вот удобная таблица, чтобы запомнить, что означает каждая буква:

Буква Знachenie
r Разрешение на чтение
w Разрешение на запись
x Разрешение на выполнение
- Нет разрешения

File Access Modes (Режимы доступа к файлам)

Теперь давайте поговорим о том, что эти разрешения действительно позволяют вам делать с файлами:

  1. Read (r): Просмотреть содержимое файла
  2. Write (w): Изменить или удалить файл
  3. Execute (x): Запустить файл как программу или скрипт

Вот забавный способ запомнить: думайте о "r" как о "прочитать рецепт", "w" как о "написать рецепт", и "x" как о "выполнить рецепт" (приготовить блюдо)!

Directory Access Modes (Режимы доступа к каталогам)

Каталоги имеют аналогичные разрешения, но они работают немного по-другому:

  1. Read (r): Перечислить содержимое каталога
  2. Write (w): Добавить или удалить файлы в каталоге
  3. Execute (x): Доступ к каталогу и его содержимому

Представьте каталог как комнату. "r" позволяет вам заглянуть внутрь, "w" позволяет добавлять или удалять мебель, а "x" позволяет войти в комнату.

Changing Permissions (Изменение разрешений)

Теперь, когда мы понимаем разрешения, давайте узнаем, как их изменить! Мы используем команду chmod для этого. Есть два способа использования chmod: символический режим и абсолютный режим.

Symbolic Mode (Символический режим)

Это похоже на дачу инструкций для добавления или удаления разрешений. Вот базовая синтаксис:

chmod [who][+,-,=][permissions] filename
  • who может быть u (пользователь), g (группа), o (другие), или a (все)
  • + добавляет разрешение, - удаляет его, = устанавливает его exactly
  • permissions это r, w, или x

например:

chmod u+x myfile.txt

Это добавляет разрешение на выполнение для пользователя.

Using chmod with Absolute Permissions (Использование chmod с абсолютными разрешениями)

Абсолютный режим использует числа для установки разрешений. У каждого разрешения есть значение:

  • r = 4
  • w = 2
  • x = 1

Мы складываем их для каждой категории (пользователь, группа, другие). Вот таблица, чтобы помочь вам понять:

Номер Разрешение
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx

например:

chmod 755 myfile.txt

Это устанавливает rwx для пользователя, и rx для группы и других.

Changing Owners and Groups (Изменение владельцев и групп)

Иногда вам нужно изменить владельца файла или группу, к которой он принадлежит. Давайте посмотрим, как это сделать.

Changing Ownership (Изменение владельца)

Чтобы изменить владельца файла, мы используем команду chown:

chown newowner filename

например:

chown alice myfile.txt

Это изменяет владельца myfile.txt на alice.

Changing Group Ownership (Изменение группы владельца)

Чтобы изменить группу, мы используем команду chgrp:

chgrp newgroup filename

например:

chgrp developers myfile.txt

Это изменяет группу myfile.txt на developers.

SUID and SGID File Permission (Разрешения SUID и SGID для файлов)

Теперь давайте поговорим о некоторых специальных разрешениях: SUID (Set User ID) и SGID (Set Group ID). Это как суперсила для файлов!

  • SUID: Когда установлено на исполняемый файл, он работает с разрешениями владельца.
  • SGID: Когда установлено на исполняемый файл, он работает с разрешениями группы.

Чтобы установить их, мы используем chmod с особым числом:

chmod 4755 myfile    # Set SUID
chmod 2755 myfile    # Set SGID

Число 4 устанавливает SUID, а 2 устанавливает SGID.

И вот и все! Теперь вы хорошо ориентируетесь в миреUnix/Linux file permissions. Помните, что с большой властью приходит большая ответственность. Используйте эти разрешения мудро, чтобы ваши файлы были в безопасности.

Практика makes perfect, так что не бойтесь экспериментировать (в безопасной среде, конечно). Before you know it, you'll be managing file permissions like a pro!

Credits: Image by storyset