Как да използвате командите chmod и chown в Linux?

В тази статия ще разгледаме как могат да се променят правата на потребителите и собствеността върху файлове и директории в Linux с командите chmod и chown.

Защо ни е нужно да знаем и да можем да изпълняваме тези действия?

Linux е т.нар. “ multi-user operating system ”, което означава, че едновремно може да се достъпва от множество потребители по едно и също време.

Поради възможността си да достъпвате операционната системата както локално, така и отдалечено, е предпочитана среда за множество групови проекти.

Именно това и налага добре да познавате и управлявате правата за достъп до отделните файлове и директории, както и тяхната собственост, за да се избегне “изтичане” или загуба на важна информация.

Именно тук се намесват командите chmod и chown, които ще разгледаме подробно след малко.

Delta Cloud Backup -  напълно автоматизиран, инкрементален бекъп за надеждно архивиране на данните компресирани, криптирани и дедупликирани в разпределена архитектура.

Какво са права и собственост на файлове и директории?

Преди да разгледаме как се променят правата и собствеността на директории и файлове, е важно да знаем, че всеки файл и директория има 3 вида потребители, които могат извършват действия върху тях:

  • Собственик (Owner) - това е потребителят, който притежава файла или директорията.
  • Група (Group) - това е съвкупност от потребители, които са част от една група.
  • Всички други (Others) - това са всички останали потребители, които не са собственика или не са част от групата.

След като сме наясно, че един файл се достъпва от 3 категории потребители, нека да разгледаме и какви са възможните права които всяка категория може да има:

  • Четене (Read) - потребителят има права да чете файла или директорията.
  • Писане (Write) - потребителят има права да променя/редактира съдържанието на файла или директорията.
  • Изпълнение (Execute) - потребителят има права да изпълни дадения файл или да достъпи дадената директория.

Когато прегледаме правата на даден файл или директория виждаме следната информация:

Когато прегледаме правата на даден файл или директория виждаме следната информация:

Този резултат можем да го разделим на седем колонки:

Този резултат можем да го разделим на седем колонки:
  • Първата колона (червената рамка) - показва правата за 3-те вида потребители - ще я разгледаме по-подробно надолу в текста.
  • Втората колона (тъмно синята рамка) - показва колко hard links има към този файл/директория.
  • Третата колона (зелената рамка) - показва кои са потребителят собственик и групата собственик на файла/директорията.
  • Четвъртата колона (жълтата рамка) - показва размера на файла/директорията.
  • Петата колона (оранжевата рамка) - показва датата на последната промяна на файла/директорията.
  • Шестата колона (светло синя рамка) - показва часа на последната промяна.
  • Седмата колона (лилавата рамка) - показва името на файла или директорията.

Нека да разгледаме сега по-подробно правата:

-rw-r--r--

и

drwxr-xr-x

Как да разчитаме тези права?

Отново ще разделим този резултат на 4 категории, за да ги разгледаме по-лесно:

Първият символ - в случай че първият символ е (-) означава файл, а символът (d) означава директория

3 категории с по 3 символа -  (rw-)(r--)(r--) това показва правата на собственика на файла  (rw-), правата на групата  (r--) и правата на всички останали (r--)

  • r означава Read - права за четене
  • w означава Write - права за писане
  • x означава  Execute - права за изпълнение
Какво-е-DDoS-атака-и-как-да-се-защитим-блог-пост-copy

Как да променим правата за файлове и директории?

За промяна на правата за файлове и директории в Linux се използва командата chmod. За правилно изпълнение на командата chmod, трябва да прилагаме следния модел:

 chmod [option] mode file оr dir 

Aко желаете да зададете следните права:

  • собственика на файлът да има пълни права (rwx)
  • групата да могат само да четат и пишат (rw-)
  • всички други да могат само да четат (r--)

Koмандата ще изглежда по следният начин:

chmod 764 file5.txt

Числата са представени от  следната логика:

  • r (read) – 4
  • w (write) – 2
  • x (execute) – 1

Съответно правата (rwx) са:

  • r (4) + w (2) + x (1) = 7
  • (rw-) = r (4) + w (2) + - (0) = 6
  • (r--) = r (4) + - (0) + - (0) = 4

И именно това сформира и цифрата 764

ВАЖНО! Последователността винаги е собственик, след това група и накрая за всички останали

В таблицата по-долу са описани често срещани права и техните цифрови изражения:

Често срещани права при файлове:

Правило Цифров еквивалент Обяснене
-rw------- 600 Собственикът може да чете и пише. Групата и всички останали нямат права.
-rw-r--r-- 644 Собственикът може да чете и пише. Групата и всички останали могат само да четат
-rw-rw-rw- 666 Собственикът, групата и всички останали могат да четат и пишат.
-rwx------ 700 Собственикът може да чете, пише и изпълнява.  Групата и всички останали нямат права.
-rwx--x--x 711 Собстевникът може да чете, пише и изпълнява. Групата и всички останали могат само да изпълняват файла.
-rwxr-xr-x 755 Собстевникът може да чете, пише и изпълнява. Групата и всички останали могат да четат и изпълняват файла.
-rwxrwxrwx 777 Собственикът, групата и всички останали могат да четат, пишат и изпълняват файла.

ВАЖНО! Правата 777 не са препоръчителни да се използват и могат да доведат до пробив в сигурността на сайта.

Често срещани права при директории:

Правило Цифрово еквивалент Обяснене
drwx------ 700 Само собственикът може да пише, чете и достъпва тази директория.
drwxr-xr-x 755 Собственикът може да пише, чете и достъпва тази директория. Групата и всички останали могат само да четат и достъпват тази директория.
AI-базираната DDoS защита с custom филтри от Delta.BG

Смяна на собствеността на файлове и директории

За промяна на собственика на файл и директория, ще използваме командата chown. За да изпълним правилно командата, трябва да прилагаме следния модел на изпълнение:

chown [option] owner:group file or dir 

Ако желаете да смените собстевинка на файл с име file5.txt на delta, то командата ще изглежда по този начин:

chown delta file5.txt

Ако обаче искаме да променим групaта собственик на файла на apache, командата ще изгежда по следният начин:

chown :apache file5.txt

Забележете, че използваме двоеточие (:) преди apache, за да посочим, че това е групата собственик.

Сега, за да промените едновременно собственика и групата, синтаксисът ще бъде следният:

chown delta:apache file5.txt

Основното правило е, че собственикът трябва да е преди собственика на групата и те трябва да бъдат разделени с двоеточие.

Какво е Cloud VPS хостинг - предимства, недостатъци и алтернативи

Промяна само на групата собственик с командата chgrp в Linux

В Linux съществува и команда, която променя само единствено групата собственик и тя е chgrp. При нея моделът на изпълнение е следният:

chgrp [options] group file or dir

Ако вземем горния пример за смяна на групата на file5.txt, то командата ще изглежда по следния начин:

chgrp apache file5.txt

Както забелязвате няма двуеточие (:) пред групата. Тази команда може да се ползва само и единствено за смяна на групата на файл или директория.

Delta Marketplace - как да създадете VPS с предварително инсталиран софтуер с няколко клика?

Най-често срещани опции при използването на комадните chmod и chown

Опцията е допълнителна команда за промяна на изхода на командата.

Една от най-популярните опции, които можете да комбинирате с chmod и chown, е -R (рекурсивно). Тази опция на Linux Wи позволява да редактирате правата или собствениците на всички файлове и поддиректории в конкретна директория.

Ако искате да използвате опция, трябва да я поставите точно след командата chmod/chown.

Например:

chown -R 755 /home/delta/myfiles

След като въведете горната команда, собственикът може да чете, пише и изпълнява всички файлове и поддиректории в директорията /home/delta/myfiles. Командата също дава разрешения за четене и изпълнение на група и всички други.

ВАЖНО! Бъдете много внимателни с тази опция. Неправилното използване на командата може да причини критичена грешка и изисква много работа, за да се отменят промените.

Освен -R, следните опции често се използват с командите chmod и chown:

  • -f  - командният ред ще игнорира всички грешки и ще приложи командите chmod и chown.
  • -v (подробна) опция Ви дава диагностика на всички файлове, които се обработват от командата.
  • -c (промени) е подобна на опцията -v. Въпреки това, той ще предостави информация, само когато промените са направени успешно.

Заключение

В тази статия научихте как да използвате командите chmod и chown за промяна на правата и собствениците и техните значения в Linux. Предоставихме основния синтаксис и няколко полезни опции, които можете да комбинирате с всяка от тези команди.

За да научите повече за командния ред на Linux, можете да разгледате нашият блог.

33 основни Linux команди, които бързо можете да научите
Борислав Стоянов

Борислав Стоянов

Борислав е част от екипа на делта от 2019 година. Любовта му към Linux операционните системи датира още от ученическите му години. В свободното си време той обича да практикува различни спортове - тенис, волейбол, ски и други.

Избрахме за вас