В тази статия ще разгледаме как могат да се променят правата на потребителите и собствеността върху файлове и директории в 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 команди, които бързо можете да научите