Команда `chmod` и `chown` в Linux

Описание

chmod (change mode) — команда для изменения прав доступа к файлам и каталогам в Linux.
chown (change owner) — команда для изменения владельца и группы файла или каталога.

Синтаксис

chmod

chmod [опции] режим файл
  • режим — права доступа (цифровой или символьный формат).
  • файл — целевой файл или каталог.

chown

chown [опции] пользователь[:группа] файл
  • пользователь — новый владелец файла.
  • группа (необязательно) — новая группа файла.
  • файл — целевой файл или каталог.

Форматы задания прав

chmod — Цифровой (восьмеричный) формат

Каждому типу прав соответствует число:

  • 4 — чтение (r)
  • 2 — запись (w)
  • 1 — выполнение (x)

Пример:

chmod 755 myfile

Означает:

  • Владелец: rwx (7 = 4+2+1)
  • Группа: r-x (5 = 4+1)
  • Остальные: r-x (5 = 4+1)

chmod — Символьный формат

Формат:

chmod [категория][действие][права] файл

Где:

  • категория: u (владелец), g (группа), o (остальные), a (все).
  • действие: + (добавить), - (убрать), = (установить).
  • права: r (чтение), w (запись), x (выполнение).

Пример:

chmod u+x myscript.sh

Добавляет владельцу право на выполнение.

chown — Изменение владельца

Изменение владельца файла:

chown user myfile

Изменение владельца и группы:

chown user:group myfile

Изменение владельца каталога и его содержимого рекурсивно:

chown -R user:group my_directory

Распространенные примеры

chmod

  • Разрешить всем пользователям выполнение:
    chmod +x script.sh
    
  • Установить полные права для владельца и запретить остальным:
    chmod 700 private_file
    
  • Дать группе права на запись:
    chmod g+w shared_folder
    
  • Установить точные права для всех:
    chmod u=rwx,g=rx,o=rx public_file
    

chown

  • Изменить владельца файла:
    chown alice myfile
    
  • Изменить владельца и группу каталога рекурсивно:
    chown -R alice:developers my_directory
    

Изменение прав рекурсивно

chmod

Для применения к каталогу и его содержимому используйте -R:

chmod -R 755 my_directory

Полезные опции

  • chmod -v — подробный вывод изменений.
  • chmod -c — выводить только измененные файлы.
  • chmod --reference=файл — применить права, как у указанного файла.
  • chown --from=olduser newuser файл — изменить владельца только если старый владелец совпадает.
  • chown --reference=файл файл2 — назначить владельца и группу аналогично указанному файлу.

Заключение

Команды chmod и chown позволяют эффективно управлять доступом к файлам и каталогам, используя цифровой или символьный формат.