April 10, 2025

Урок 4. Владелец и права доступа файлов и каталогов. Изменение владельца и прав. Запуск программ.

Материал написан автором канала Пингвины летят в Калифорнию

📚 | Оглавление

  1. Права
  2. Изменение прав
  3. Домашнее задание

📘 | Права

Итак, в Linux есть три основных права - RWX:

  1. Read (чтение) обозначается буквой r или цифрой 4
  2. Write (запись) обозначается буквой w или цифрой 2
  3. eXecute (выполнение) обозначается буквой x или цифрой 1

Почему право выполнения Обозначается x, а не e?

Потому что в английском буква x произносится как ЭКС.
Надеюсь по названию понятно за что отвечают права.

Для более гибкого назначения прав, ввели еще четыре категории к которым относятся пользователи:

  1. Пользователь (User), он же владелец, обозначается буквой u
  2. Группа (Group) пользователей, обозначается буквой g.
  3. Остальные (Other) пользователи, не относящиеся к первым двум категориям, обозначается буквой o
  4. Все  (All)  обозначается буквой a и означает, что права пользователя группы и остальных будут одинаковыми. a = ugo.

Добавим чуть чуть практики, чтобы было нагляднее.

Воспользуемся командой ls -la, получим нечто похожее:

drwx------  9 root root  4096 Feb 11 15:34 .
drwxr-xr-x 19 root root  4096 Nov 12 21:49 ..
-rw-r--r--  1 root root  3106 Oct 15  2021 .bashrc
drwx------  3 root root  4096 Nov 12 21:56 .cache
drwxr-xr-x  5 root root  4096 Jan 27 15:58 .config

Тут нас интересует первый, третий и четвертый столбцы.
Начнем с первого:
Это как раз и есть права разных категорий пользователей.

Если что, буква d в начале означает что файл является директорией. Поэтому дальше я буду опускать наличие этой буквы, так как она нам не нужна сейчас.

Рассмотрим права на файл .config:

rwxr-xr-x

Первые 3 буквы (rwx) относятся к правам пользователя (владельца) этого файла. Т.е. в данном случае владелец файла может читать, записывать и запускать этот файл.
Второе трио букв (r-x) относится к группе пользователей. В данном случае группа пользователей может читать и запускать файл, а вот редактировать не может - вместо буквы w стоит черточка, то есть прав на это нет.
Третье трио букв (r-x) относится к остальным пользователям. В данном случае они как и группа могут только читать и запускать файл.

Как понять кто владелец файла, кто входит в привилегированная группа о которой мы говорим отдельно?
Вот для этого нам и понадобятся 3 и 4 столбцы вывода команды ls -la
В третьем столбце указан владелец файла, в четвертом группа.
В нашем случае владелец файла - root, группа пользователей тоже root.

В начале я писал, что право на чтение обозначается цифрой 4, запись - 2, исполнение - 1.
Сумму всех прав можно записать как 7 (r=4 + w=2 + x=1).
В нашем случае, права владельца можно обозначить как 7, права группы на чтение и исполнение как 5 (r=4 + x=1), и права остальных пользователей так же 5.


🔧 | Изменение прав

Для того чтобы менять права пользователей существует команда chmod (Change file mode). Синтаксис команды:

chmod [права которые меняем] [путь до нужного файла]

# Например:
chmod 755 test.file

# или
chmod +x test.file

‼️ДИСКЛЕЙМЕР‼️

Это последний раз когда я пишу синтаксис команды. В следующий раз, читайте сами справку о команде. Учитесь разбираться в командах сами, это очень важно!

Разбираем команды выше.

В первом случае, я изменил права всех пользователей следующим образом:
7 - для владельца, то есть выдал все права (rwx)
5 - для группы и остальных, только чтение и запуск (r-x)

Во втором случае, я выдал права на запуск для ВСЕХ пользователей (+x).

В чем основное отличие первого варианта от второго (ну кроме синтаксиса)
1. В первом случае мы настроили для каждой категории пользователей права отдельно, когда как во втором, мы выдали права всем пользователям без разбору.
2. В первом случае мы ставим новые права для пользователей, то есть права которые были до этого "забываются" и устанавливаются новые указанные. Во втором случае мы ДОБАВЛЯЕМ права к уже существующим.

Чтобы изменить владельца и группу файла существует команда chown (change file owner)
Синтаксис изучаете сами, это будет вашей домашкой.

Советы от меня:
Не пугайтесь этих странных цифр, обозначающих права. С первого раза может показать сложным, запутанным, и нахрен не нужным, ведь легче написать условно +x и дело с концом.
К сожалению, нет, это не так.
К тому же к этим цифрам вы быстро привыкните, буквально пару дней, может неделя в крайнем случае. Чем больше будете практиковаться, тем быстрее привыкните.


📝| Домашнее задание

  • Изучить справку команды chmod.
  • Какой флаг нужно использовать, чтобы изменить права у каталога и всех файлов/подкаталогов внутри каталога?
  • "Перевести в цифры" следующие права:
    а) rwx---r— б) r--r--r— в) rw-r-xr— г) r-xr-xr— д) rwxrwx--x
    Создать файлы с этими правами
  • Изучить синтаксис команды chown
    • как поменять владельца файла
    • как поменять владельца и группу файла

Если тебе понравилось и ты хочешь узнать больше, подписывайся на канал Пингвины летят в Калифорнию