В этом кратком руководстве мы увидим, как мы можем использовать chmod команда на машине Ubuntu для поиска, изменения и удаления разрешений пользователя для определенных файлов, которые существуют в файловой системе пользователя. Давайте поиграем в различных условиях, чтобы освоить базовые chmod команды, которые могут облегчить нашу повседневную жизнь с Ubuntu.
Разрешения Linux
Разрешения Linux - это отличный набор правил, которые легко понять, если мы усвоим основные права. Три основных момента, которые нам нужно понять, чтобы понять, как работают разрешения Linux:
- Элемент, для которого были определены разрешения
- Какие действия можно совершать с разрешения
- Кто какие действия может выполнять
В файловой системе Linux есть два основных элемента:
- Справочники
- Файлы
Можно выполнить три действия:
- Читать
- Писать
- Выполнять. Помимо выполнения скриптов, такие же действия необходимы для создания файлов и других папок внутри него
Эти действия могут выполнять следующие пользователи:
- Владелец файла
- Группа владельца файла
- Пользователь, не связанный с группой владельцев или самим владельцем
Чтобы увидеть разрешения, связанные с файлом, выполните следующую команду:
ls -lВот что мы получаем с помощью этой команды:
Найти разрешение для файлов
В выводе первые 10 символов представляют разрешение для файла:
- Первый символ, который в данном случае является '-', означает, что это файл. Для каталога это было бы d.
- Следующие девять символов представляют разрешения для владельца, группы владельца и других, соответственно.
Изменение разрешений
Синтаксис для изменения разрешения файла выглядит так:
файл разрешений chmod [файл 2]…Восьмеричное представление для разрешений
Мы можем представить разрешения в виде восьмеричного числа. Например, для установки разрешений на чтение, запись и выполнение для владельца, разрешений на чтение и запись для его группы и запрета для других на приветствие.txt, мы выполним следующую команду:
sudo chmod 760 привет.текстКак только мы выполним указанную выше команду и попытаемся прочитать файл с учетной записью, не являющейся владельцем, используя следующую команду:
sudo -u notowner-user еще привет.текстМы получим следующую ошибку:
Привет.txt: в доступе отказаноНо откуда взялось это число? Каждая цифра этого числа представляет собой набор разрешений. Посмотрим, как они были получены:
- 0: Означает отсутствие разрешения
- 1: Означает выполнять разрешение
- 2: Означает написать разрешение
- 4: Означает читать разрешение
Чтобы назначить права на чтение, запись и выполнение для владельца, мы присвоили ему номер 7 (= 4 + 2 + 1). Давайте лучше поймем это в таблице цифр:
Число | Двоичный | Читать | Писать | Выполнять |
0 | 000 | НЕТ | НЕТ | НЕТ |
1 | 001 | НЕТ | НЕТ | ДА |
2 | 010 | НЕТ | ДА | НЕТ |
3 | 011 | НЕТ | ДА | ДА |
4 | 100 | ДА | НЕТ | НЕТ |
5 | 101 | ДА | НЕТ | ДА |
6 | 110 | ДА | ДА | НЕТ |
7 | 111 | ДА | ДА | ДА |
В приведенной выше таблице очень ясно, что каждый из них представляет с точки зрения прав доступа к файлам.
Представление символов для разрешений
Мы можем представить разрешения в виде восьмеричного числа. Например, для установки разрешений на чтение, запись и выполнение для владельца, разрешений на чтение и запись для его группы и запрета для других на приветствие.txt, мы выполним следующую команду:
sudo chmod u = rwe, g = rw, o-rwx привет.текстЧтобы добавить разрешения для существующего пользователя, мы также можем:
sudo chmod g + w привет.текстЗдесь разрешение на запись было назначено группе пользователей владельца файла.
Рекурсивные изменения разрешений
Мы также можем изменить разрешения для файла, содержащегося в определенном каталоге, с помощью одной команды. Чтобы изменить права доступа для всех без исключения файлов и папок в указанном каталоге одновременно, используйте sudo chmod с -R:
sudo chmod 777 Каталог / *Мы можем увидеть следующий вывод, который четко отражает изменение прав доступа к файлам:
Рекурсивное изменение прав доступа к файлам
Заключение
В этом уроке мы рассмотрели, как мы можем изменить права доступа к файлам и, при необходимости, сделать это рекурсивно. Мы поняли базовые концепции разрешений Linux, которые могут очень помочь нам в повседневной работе.