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