Права доступа в Linux: rwx, chmod, chown, группы и sudo

Содержание
- Права доступа, пользователи и группы в Linux: краткое объяснение
- Что такое rwx: три главные буквы прав доступа в Linux
- Пример и расшифровка прав доступа
- Как изменить права в Linux: команда chmod
- Синтаксис chmod
- Примеры использования chmod
- Числовой (октальный) режим chmod
- Как сменить владельца файла: chown
- Что дают группы в Linux?
- Что такое sudo и зачем он нужен?
- Частые ошибки при работе с правами
- А если нужно больше? ACL!
- Вывод
Права доступа, пользователи и группы в Linux: краткое объяснение
Когда ты работаешь в Linux, ты не всегда можешь делать с файлами всё, что захочешь. Это не баг, а важная функция безопасности.
Каждый файл и папка имеют права доступа, которые определяют:
- кто может читать файл;
- кто может изменять его;
- кто может запускать, если это скрипт или исполняемый файл.
В этой статье мы простым языком разберёмся, как работают права доступа в Linux, что значат rwx
, как использовать chmod
, chown
, sudo
и что нужно знать, чтобы не наломать дров.
Что такое rwx: три главные буквы прав доступа в Linux
Каждый файл в Linux имеет три набора прав:
- Владелец (user) — пользователь, который создал файл.
- Группа (group) — пользователи, объединённые в одну группу.
- Остальные (others) — все остальные пользователи системы.
Каждый набор содержит три типа прав:
Буква | Цифра | Право | Что даёт |
---|---|---|---|
r |
4 | read | Чтение файла |
w |
2 | write | Изменение файла |
x |
1 | execute | Запуск файла как скрипта или программы |
Пример и расшифровка прав доступа
ls -l
Вывод:
-rwxr-xr-- 1 server admins 1024 Jun 22 13:00 script.sh
Расшифровка:
-rwxr-xr--
— права доступа:- Первый символ (
-
) — тип файла:-
— обычный файлd
— директория (папка)l
— символическая ссылка
- Далее — три блока по три символа:
- Владелец:
rwx
— может читать, писать, запускать - Группа:
r-x
— читать и запускать, но не изменять - Остальные:
r--
— только чтение
- Владелец:
- Первый символ (
server
— владелец файлаadmins
— группа
Важно: если вы задаёте права для директории, то без права на исполнение (
x
) вы не сможете перейти в папку (cd scripts
выдаст Permission denied).
Как изменить права в Linux: команда chmod
Для изменения прав используется команда chmod
.
Синтаксис chmod
chmod [кто][оператор][права] файл
- Кто:
u
— владелец (user)g
— группа (group)o
— остальные (others)a
— все сразу (all)
- Оператор:
=
— установить права (старые стираются)+
— добавить права-
— убрать права
- Права:
r
— чтениеw
— записьx
— исполнение
Примеры использования chmod
Установить точные права
chmod u=rwx,g=rx,o= script.sh
Удалить права
chmod u-rwx,g-rx,o= script.sh
Добавить права
chmod u+rwx,g+rx,o+r script.sh
Числовой (октальный) режим chmod
Альтернатива символьному синтаксису — использовать числа:
chmod 750 script.sh
Расшифровка:
7
(4+2+1) — владелец: чтение, запись, исполнение5
(4+0+1) — группа: чтение и запуск0
— остальные: нет доступа
Считать можно по таблице которая в начале статьи.
Как сменить владельца файла: chown
Если файл принадлежит root
, а тебе нужен доступ:
sudo chown username file.txt
Сменить и владельца, и группу:
sudo chown username:groupname file.txt
Только группу:
sudo chown :groupname file.txt
Что дают группы в Linux?
Группы позволяют давать доступ сразу нескольким людям. Пример:
- У тебя есть скрипт
deploy.sh
- Ты хочешь, чтобы только команда DevOps могла его запускать
Решение
- Создаёшь группу:
sudo groupadd devops
- Добавляешь туда пользователей:
sudo usermod -aG devops server
- Меняешь группу файла:
sudo chown :devops deploy.sh
- Даёшь права группе:
chmod 750 deploy.sh
Теперь:
- Владелец может всё
- Группа — читать и запускать
- Остальные — ничего
Что такое sudo и зачем он нужен?
sudo
(SuperUser DO) — это команда, с помощью которой обычный пользователь временно получает права администратора (root).
Пример:
sudo apt update
Ты как бы говоришь: "Я знаю, что делаю — дай мне выполнить это как root".
Файл /etc/sudoers
отвечает за то, кому можно использовать sudo
. Обычно, если ты в группе sudo
, ты уже имеешь доступ.
Частые ошибки при работе с правами
Ошибка | Почему это плохо |
---|---|
chmod 777 |
Полный доступ всем — опасно! |
Забыли sudo |
Файл создаётся от имени root , потом не читается |
chmod без понимания |
Можно случайно запретить себе доступ |
А если нужно больше? ACL!
Если тебе нужно дать доступ нескольким пользователям, которые не состоят в одной группе — используй ACL (Access Control List).
Мы расскажем об этом в следующей статье
Вывод
Права доступа в Linux — это как замки и ключи. Правильно настроенные права защищают систему от ошибок и взлома. Но если дать всем один универсальный ключ (777
), ты рискуешь безопасностью.
Изучи основы, не используй chmod
наобум — и твоя система будет как крепость.