Как выдать права доступа в Linux?

«Как выдать права доступа в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для управления правами доступа к файлам и директориям в Linux используется команда chmod (change mode).

Основные способы задания прав:

  1. Символьный метод (u,g,o,a + r,w,x):

    chmod u+x script.sh      # Добавить право на выполнение для владельца (user)
    chmod g+w report.txt     # Добавить право на запись для группы (group)
    chmod go-rw secret.conf  # Забрать права на чтение и запись у группы и других (others)
    chmod a+r public.log     # Добавить чтение всем (all)
  2. Цифровой (октальный) метод через маску прав:

    chmod 755 script.sh      # rwxr-xr-x: владелец — всё, группа и другие — чтение и выполнение
    chmod 640 config.cfg     # rw-r----: владелец — чтение/запись, группа — только чтение
    chmod 400 private.key    # r--------: владелец — только чтение
    • Первая цифра: права владельца (u).
    • Вторая цифра: права группы (g).
    • Третья цифра: права всех остальных (o).
    • Значения: 4 (чтение, r), 2 (запись, w), 1 (выполнение, x). Суммируются для комбинации.

Ключевые опции:

  • -R — рекурсивное изменение прав для директории и всего её содержимого.
    chmod -R 755 /var/www/myapp/
  • --reference — скопировать права с другого файла.
    chmod --reference=source_file.txt target_file.txt

Связанные команды:

  • chown — изменение владельца и группы файла.
    chown deploy:www-data /var/www/app  # Владелец 'deploy', группа 'www-data'
  • chgrp — изменение только группы файла.
  • ls -l — просмотр текущих прав доступа.