Урок 4. Владелец и права доступа файлов и каталогов. Изменение владельца и прав. Запуск программ.
Материал написан автором канала Пингвины летят в Калифорнию
📚 | Оглавление
📘 | Права
Итак, в Linux есть три основных права - RWX:
- Read (чтение) обозначается буквой r или цифрой 4
- Write (запись) обозначается буквой w или цифрой 2
- eXecute (выполнение) обозначается буквой x или цифрой 1
Почему право выполнения Обозначается x, а не e?
Потому что в английском буква x произносится как ЭКС.
Надеюсь по названию понятно за что отвечают права.
Для более гибкого назначения прав, ввели еще четыре категории к которым относятся пользователи:
- Пользователь (User), он же владелец, обозначается буквой u
- Группа (Group) пользователей, обозначается буквой g.
- Остальные (Other) пользователи, не относящиеся к первым двум категориям, обозначается буквой o
- Все (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
Если тебе понравилось и ты хочешь узнать больше, подписывайся на канал Пингвины летят в Калифорнию