Права доступа в 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 наобум — и твоя система будет как крепость.