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

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 (Режимы доступа к файлам)
Теперь давайте поговорим о том, что эти разрешения действительно позволяют вам делать с файлами:
- Read (r): Просмотреть содержимое файла
 - Write (w): Изменить или удалить файл
 - Execute (x): Запустить файл как программу или скрипт
 
Вот забавный способ запомнить: думайте о "r" как о "прочитать рецепт", "w" как о "написать рецепт", и "x" как о "выполнить рецепт" (приготовить блюдо)!
Directory Access Modes (Режимы доступа к каталогам)
Каталоги имеют аналогичные разрешения, но они работают немного по-другому:
- Read (r): Перечислить содержимое каталога
 - Write (w): Добавить или удалить файлы в каталоге
 - 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
