В тази статия ще разгледаме как могат да се променят правата на потребителите и собствеността върху файлове и директории в 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 на delta, то командата ще изглежда по този начин:
chown delta file5.txt
Ако обаче искаме да променим групaта собственик на файла на apache, командата ще изгежда по следният начин:
chown :apache file5.txt
Забележете, че използваме двоеточие (:) преди apache, за да посочим, че това е групата собственик.
Сега, за да промените едновременно собственика и групата, синтаксисът ще бъде следният:
chown delta: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/delta/myfiles
След като въведете горната команда, собственикът може да чете, пише и изпълнява всички файлове и поддиректории в директорията /home/delta/myfiles. Командата също дава разрешения за четене и изпълнение на група и всички други.
ВАЖНО! Бъдете много внимателни с тази опция. Неправилното използване на командата може да причини критичена грешка и изисква много работа, за да се отменят промените.
Освен -R, следните опции често се използват с командите chmod и chown:
- -f - командният ред ще игнорира всички грешки и ще приложи командите chmod и chown.
- -v (подробна) опция Ви дава диагностика на всички файлове, които се обработват от командата.
- -c (промени) е подобна на опцията -v. Въпреки това, той ще предостави информация, само когато промените са направени успешно.
Заключение
В тази статия научихте как да използвате командите chmod и chown за промяна на правата и собствениците и техните значения в Linux. Предоставихме основния синтаксис и няколко полезни опции, които можете да комбинирате с всяка от тези команди.
За да научите повече за командния ред на Linux, можете да разгледате нашият блог.