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

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

Постер статьи

Содержание

Права доступа, пользователи и группы в Linux: краткое объяснение

Когда ты работаешь в Linux, ты не всегда можешь делать с файлами всё, что захочешь. Это не баг, а важная функция безопасности.

Каждый файл и папка имеют права доступа, которые определяют:

  • кто может читать файл;
  • кто может изменять его;
  • кто может запускать, если это скрипт или исполняемый файл.

В этой статье мы простым языком разберёмся, как работают права доступа в Linux, что значат rwx, как использовать chmod, chown, sudo и что нужно знать, чтобы не наломать дров.

Что такое rwx: три главные буквы прав доступа в Linux

Каждый файл в Linux имеет три набора прав:

  1. Владелец (user) — пользователь, который создал файл.
  2. Группа (group) — пользователи, объединённые в одну группу.
  3. Остальные (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 — символическая ссылка
    • Далее — три блока по три символа:
      1. Владелец: rwx — может читать, писать, запускать
      2. Группа: r-x — читать и запускать, но не изменять
      3. Остальные: 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 могла его запускать

Решение

  1. Создаёшь группу:
    sudo groupadd devops
    
  2. Добавляешь туда пользователей:
    sudo usermod -aG devops server
    
  3. Меняешь группу файла:
    sudo chown :devops deploy.sh
    
  4. Даёшь права группе:
    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 наобум — и твоя система будет как крепость.