Часть 1: Теория. Расшифровка кода rwx
Помните, когда мы выполняли команду ls -l
в предыдущих уроках, мы видели в начале строки загадочные символы вроде -rw-r--r--
или drwxr-xr-x
? Сегодня мы их полностью расшифруем.
Эта строка из 10 символов делится на 4 части:
-
Тип файла (1-й символ)
-
Права для Владельца (User) (символы 2, 3, 4)
-
Права для Группы (Group) (символы 5, 6, 7)
-
Права для Остальных (Others) (символы 8, 9, 10)
d rwx r-x r-x -> [Тип] [Владелец] [Группа] [Остальные]
1. Тип файла:
-
-
: Обычный файл. -
d
: Каталог (Directory). -
l
: Символическая ссылка (поговорим о них позже).
2. Субъекты доступа (Кто?):
-
Владелец (User): Конкретный пользователь, который создал или которому принадлежит файл. Обычно это вы.
-
Группа (Group): Файлу можно назначить группу пользователей. Все, кто входит в эту группу, получат одинаковые права доступа. Это удобно для совместной работы.
-
Остальные (Others): Любой другой пользователь в системе, который не является владельцем и не входит в группу.
3. Права доступа (Что могут делать?):
Есть три базовых права. Их значение сильно зависит от того, говорим мы о файле или о каталоге.
Право | Символ | Значение для ФАЙЛА | Значение для КАТАЛОГА |
Read | r | Можно прочитать содержимое файла (cat, less). | Можно посмотреть список файлов в каталоге (ls). |
Write | w | Можно изменять/удалять содержимое файла. | Можно создавать, удалять и переименовывать файлы внутри каталога. |
Execute | x | Можно запустить файл как программу (скрипт). | Можно войти в каталог (cd). |
Важнейшие моменты, которые нужно осознать:
-
Чтобы прочитать файл (
/home/user/file.txt
), вам нужны праваr
на самfile.txt
И праваx
(execute) на все родительские каталоги (/, /home, /home/user
), чтобы до него "дойти". -
Чтобы удалить файл, вам нужны права
w
(write) не на сам файл, а на каталог, в котором он находится.
Часть 2: Практика. Команды chmod и chown
1. chmod (Change Mode) - Изменение прав
Эта команда меняет права доступа. Есть два способа ее использования: символьный и числовой.
A) Символьный режим (простой и понятный):
Формат: chmod [субъект][действие][право] имя_файла
-
Субъекты: u (user), g (group), o (others), a (all - все сразу).
-
Действия: + (добавить право), - (убрать право), = (установить конкретное право, отменив остальные).
-
Права: r, w, x.
-
Примеры:
-
chmod u+x script.sh
- Добавить (+) право на исполнение (x) для владельца (u). -
chmod g-w config.cfg
- Убрать (-) право на запись (w) у группы (g). -
chmod o=r secret.txt
- Установить (=) для остальных (o) только право на чтение (r). -
chmod a+r public_info.txt
- Дать право на чтение всем (a).
-
B) Числовой (восьмеричный) режим (быстрый и профессиональный):
Это самый распространенный способ в мире администрирования. Каждому праву присваивается число:
-
r (read) = 4
-
w (write) = 2
-
x (execute) = 1
Права для одного субъекта (например, владельца) - это сумма этих чисел.
-
rwx = 4 + 2 + 1 = 7
-
rw- = 4 + 2 + 0 = 6
-
r-x = 4 + 0 + 1 = 5
-
r-- = 4 + 0 + 0 = 4
-
--- = 0
Команда chmod принимает трехзначное число: первая цифра для владельца, вторая для группы, третья для остальных.
-
Примеры:
-
chmod 755 my_script.sh
-> rwx r-x r-x (Владелец может всё; группа и остальные могут читать и заходить. Стандарт для исполняемых файлов и скриптов). -
chmod 644 index.html
-> rw- r-- r-- (Владелец может читать и писать; остальные только читать. Стандарт для файлов на веб-сервере). -
chmod 600 private_key
-> rw- --- --- (Владелец может читать и писать; никто другой не может делать ничего. Стандарт для секретных файлов).
-
2. chown (Change Owner) - Смена владельца
Эта команда меняет владельца и/или группу файла/каталога.
Формат: chown новый_владелец:новая_группа имя_файла
-
Пример:
chown www-data:www-data /var/www/site/index.html
- установить владельцем пользователя www-data и группу www-data. Это типичное действие при настройке веб-сервера. -
Можно менять только владельца:
chown bob file.txt
-
Можно менять только группу (предваряя двоеточием):
chown :managers file.txt
-
Ключ -R (Recursive): Применяет изменения ко всем файлам и каталогам внутри указанного каталога.
chown -R user:group /path/to/directory
. -
Важно: Менять владельца файла может только root (суперпользователь).
Когда это понадобится? Мы пока работаем под root. Но в следующих уроках мы создадим обычного пользователя для повседневной работы и специального пользователя для веб-сервера. Вот тогда chown станет одной из ваших самых частых команд.
Часть 3: Практический сценарий. Наводим порядок.
-
Подключитесь к серверу и перейдите в домашний каталог (cd).
-
Создайте рабочий каталог и зайдите в него:
mkdir lesson4 cd lesson4
-
Создайте два файла: один будет нашим "скриптом", другой - "конфигурацией".
touch run.sh touch settings.conf
-
Посмотрите на их права по умолчанию:
ls -l
Вы увидите что-то вроде -rw-r--r--. Обратите внимание, что права на исполнение (x) по умолчанию нет.
-
Сделаем run.sh исполняемым для нас (владельца), используя символьный режим:
chmod u+x run.sh ls -l
Вы увидите, что права изменились на -rwxr--r--. В большинстве терминалов имя файла станет зеленым, сигнализируя, что он исполняемый.
-
Теперь установим "правильные" права для файла конфигурации settings.conf с помощью числового режима. Мы хотим, чтобы владелец мог читать и писать, а все остальные - только читать. Это права 644.
chmod 644 settings.conf ls -l
Права останутся -rw-r--r--, так как они уже были такими. Но теперь вы знаете, как их установить целенаправленно.
-
Создадим "секретный" каталог и файл в нем.
mkdir private_stuff touch private_stuff/secret.log
-
Давайте запретим кому-либо, кроме нас, даже заглядывать в этот каталог. Для этого уберем у группы и остальных все права (rwx). Права будут 700 (rwx------).
chmod 700 private_stuff ls -l
Теперь только вы можете войти в private_stuff и посмотреть его содержимое.
Итоги урока и домашнее задание
-
Что мы освоили:
-
Структуру прав: Тип, Владелец, Группа, Остальные.
-
Значение r, w, x для файлов и для каталогов.
-
Два способа изменения прав с помощью chmod: символьный (удобный) и числовой (профессиональный).
-
Назначение команды chown для смены владельца (подробно к ней вернемся, когда создадим пользователей).
-
-
Ваше четвертое задание:
-
В своем домашнем каталоге создайте директорию homework.
-
Внутри нее создайте два файла: script.sh и readonly.txt.
-
Используя числовой режим, установите файлу script.sh права 750 (rwxr-x---).
-
Используя символьный режим, установите файлу readonly.txt права, чтобы владелец мог его читать и писать, группа - только читать, а остальные не имели никаких прав (rw-r-----).
-
Проверьте результат командой ls -l.
-
На следующем уроке мы поговорим о пользователях и группах: как их создавать, удалять и управлять ими. Это выведет наши навыки работы с правами на новый уровень.
Перейти к просмотру - УРОК №5.
Промо-код: PROMO15 — скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com