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

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

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

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

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

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

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

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

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

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

    За промяна на правата за файлове и директории в 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 Собственикът може да пише, чете и достъпва тази директор

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

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

    chown [option] owner:group file or dir 

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

    chown dhbg file5.txt

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

    chown :apache file5.txt

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

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

    chown dhbg:apache file5.txt

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

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

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

    chgrp [options] group file or dir

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

    chgrp apache file5.txt

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

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

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

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

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

    Например:

    chown -R 755 /home/dhbg/myfiles

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

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

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

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

    Заключение

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

  • Как да използвате командите chmod и chown в Linux?
  • 0 Потребителите са намерили това полезно
Беше ли този отговор полезен?

Свързани статии

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

Linux е операционна система с отворен код, базирана на Linux kernel. Тя е от семейството на Unix,...

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

Когато изтегляте файлове от интернет, много често те са под формата на архив. Целта на този архив...

Как да използвате Linux командите Find и Locate за търсене и навигация във файловата система

При работата с Linux операционната система, често се налага да извършваме операции за търсене и...

Широката употреба на командата grep в Linux

Grep e много популярна Linux команда. Тя има широка употреба при работа с файлове и директории,...

Как да проверите използваното дисково пространство в Linux с командите du и df

Linux предоставя набор от инструменти, които Ви позволяват под команден ред, да проверявате...