Ответ
Базовая модель прав доступа в Linux основана на трёх сущностях (владелец, группа, остальные) и трёх типах разрешений (чтение, запись, выполнение). Эта система является основой безопасности в многопользовательских окружениях.
Структура прав:
-
Субъекты (для кого):
owner(u): Владелец файла или каталога.group(g): Группа, к которой принадлежит файл.others(o): Все остальные пользователи системы.
-
Разрешения (что можно делать):
r(read): Право на чтение содержимого файла или списка файлов в каталоге. (Числовое значение: 4)w(write): Право на изменение файла или создание/удаление файлов в каталоге. (Числовое значение: 2)x(execute): Право на запуск файла как программы или вход в каталог. (Числовое значение: 1)
Права задаются для каждого субъекта отдельно. Например, rwxr-xr-- означает, что владелец может читать, писать и выполнять (rwx), группа — читать и выполнять (r-x), а остальные — только читать (r--).
Пример использования chmod:
Команда chmod изменяет права доступа. Числовой формат является суммой значений для каждого субъекта.
# Установить права 755 (rwxr-xr-x) для скрипта
# Владелец: 7 (4+2+1 = rwx)
# Группа: 5 (4+0+1 = r-x)
# Остальные: 5 (4+0+1 = r-x)
chmod 755 my_script.sh
# Посмотреть результат
ls -l my_script.sh
# Вывод: -rwxr-xr-x 1 user user 1024 Oct 26 10:00 my_script.sh
Для смены владельца и группы используются команды chown и chgrp соответственно.
Ответ 18+ 🔞
Слушай, а вот эта ваша линуксовая система прав доступа — это ж, блядь, классика жанра! Сидит себе какой-нибудь админ, пыхтит, и делит весь мир на три сословия, как при царе Горохе. Три категории, три разрешения — и всё, пиздец, больше никому нихуя не положено. Гениально и просто, как топором по башке.
Кто есть кто в этом цирке:
- Хозяева жизни (u): Это владелец файла, царь и бог. Он тут главный распиздяй, может всё. Обычно это тот, кто файл и создал.
- Ближний круг (g): Это группа, типа своя компания. Им можно чуть меньше, чем хозяину, но больше, чем всяким левым личностям.
- Остальная шушера (o): Все, кто не попал в две предыдущие категории. Им, по идее, вообще нихуя не должно светить, но иногда, по доброте душевной, им что-то прочитают разрешают.
А что этим категориям можно?
r(читать, 4): Посмотреть, что внутри файла. Для папки — посмотреть, что в ней валяется. Без этого — слепой, нихуя не увидишь.w(писать, 2): Изменить файл или в папке насрать — новый файл создать или старый удалить. Сила, блядь, разрушительная.x(выполнять, 1): Запустить файл как программу. Для папки — вообще магия: войти в неё. Без этогоxпапка для тебя — как стена, в рот меня чих-пых!
Вот смотришь ты на эту абракадабру rwxr-xr-- и думаешь: "Ёпта, шифровка какая-то". А на самом деле всё просто: первые три буквы — что может владелец (всё, rwx), вторые три — что может группа (почитать и зайти, r-x), последние — что могут все остальные (только почитать, r--). И тишина.
Ну и как этим рулить?
Вот команда chmod — это твой волшебный пендель. Можно буквами ковыряться, а можно цифрами, это как калькулятор ебаный.
# Ставим права 755 на скрипт. 755 — это ж священная магия для скриптов!
# Владелец: 7 (4+2+1 = rwx) — всё может, бог и царь.
# Группа: 5 (4+0+1 = r-x) — почитать и запустить.
# Остальные: 5 (4+0+1 = r-x) — и этим тоже, пусть порадуются.
chmod 755 my_script.sh
# Смотрим, что натворили
ls -l my_script.sh
# А там красота: -rwxr-xr-x ... видишь эти буквы? Это и есть наше 755, только в разобранном виде.
А если нужно не права поменять, а самого хозяина файла — это уже chown. Группу менять — chgrp. В общем, система, блядь, как в тюрьме: у каждого своя хата, свои понятия и свой шестёрка, который может больше других. Главное — не давать w и x всем подряд, а то овердохуища беспорядка начнётся.