Разрешения за файлове на Linux – какво е Chmod 777 и как да го използвам

Ако сте нов потребител на Linux(new Linux user) , вероятно сте се сблъсквали с командата Chmod в някакъв момент рано. Може би някой ви е казал да „chmod 777“, за да преместите файл в определена папка, и това работи! И така, какво прави командата chmod и какво означават числата?

Тази статия ще обсъди всичко, което трябва да знаете за разрешенията за файлове в Linux . Важно е да знаете това, за да разберете командата chmod и числата, които съответстват на определени нива на достъп. Независимо дали използвате Ubuntu , Fedora или по-екзотична Linux дистрибуция(Linux distro) , трябва да разберете кога е добре да зададете разрешения на 777 с помощта на командата CHMOD и кога трябва да използвате различна настройка.

Как работят разрешенията за файлове в Linux

В Linux операционната система определя кой има достъп до определен файл въз основа на разрешение за файл, собственост и атрибути. Системата позволява на вас, собственика или администратора, да активирате ограничения за достъп до различни файлове и директории. Можете да подобрите сигурността на вашата система, като дадете достъп само на потребители и програми, на които имате доверие.

Разбиране на потребителски класове(Understanding User Classes)

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

  • Собственик
  • Група
  • други

Можете да видите тези групи визуално в Ubuntu , като щракнете с десния бутон върху която и да е директория, изберете Свойства(Properties) и отидете на раздела Разрешения(Permissions) .

Собственикът е човекът(Owner) с цялата власт. Обикновено те имат пълен достъп до всеки файл и директория и могат да променят разрешенията за файлове и на други потребители.

Групата се състои от(Group) определен брой потребители, които имат определено ниво на достъп до файл или директория, предоставени от Собственика(Owner) . Например, група потребители може да бъде изключена от промяна на файл, като същевременно им бъде предоставен достъп за преглед на този файл.

Класът Others просто представлява гост потребители, които не попадат в другите две категории. По подразбиране тяхното ниво на достъп обикновено е ограничено. Собственикът трябва(Owner) да определи какво могат или не могат да правят потребителите на гостите.

Разбиране на нивата на разрешение за файлове(Understanding File Permission Levels)

Като собственик(Owner) можете да зададете три нива на достъп до вашите файлове и директории:

  1. Прочетете(Read) : Дава ви ограничен достъп до файл или директория. Всичко, което можете да направите, е да прочетете файла или да видите съдържанието на директорията. Не можете да редактирате файлове и не можете да премахвате или добавяте нови файлове към директорията.
  2. Write : Позволява ви да четете и редактирате файлове. Ако зададете това ниво на достъп на директория, можете също да премахвате или добавяте файлове.
  3. Изпълнение(Execute) : Важно е само при стартиране или изпълнение на файлове. Например, не можете да стартирате скрипт или програма без разрешение за Execute .

Чрез комбиниране на класове и разрешения можете да контролирате колко достъп има конкретен потребител до файл или директория.

Обяснени са символи(Symbols) и числа(Numbers) за разрешения

Разрешенията за файлове са представени цифрово или символно. Можете да използвате както символи, така и числа, за да промените разрешенията за файлове и директории. Най-лесният метод е с числа, но трябва да разбирате и символите. Така че нека първо да разгледаме символите зад разрешенията за файлове.

Символи за разрешение за файлове(File Permission Symbols)

Можете да видите вашите разрешения за цялото съдържание в определена директория, ако въведете следната команда в терминала:

ls -l

Можете да навигирате до всяка директория с помощта на командата cd . Ако сте напълно начинаещ, вижте нашата статия за основните команди на Linux(basic Linux commands) .

В нашия пример директорията съдържа две други директории и един файл. Разрешенията са написани с помощта на (1+) 9 символа, които могат да бъдат разделени на тройки за по-лесно разбиране. Нека разгледаме първия набор от разрешения за директорията Books :

drwxrwxr-x

Нека го разделим за четливост:

d rwx rwx rx

Първият символ е d и означава директория. Може също да бъде символ тире, ако е файл, както можете да видите в третия набор от разрешения за файла Outline.docx .

След това имаме три групи символи. Първата група представлява нивата на разрешения на собственика, втората група е за класа Group , а третата представлява Други.

Всеки набор от 3 символа означава четене, запис, изпълнение – в този ред. Така собственикът(Owner) има разрешение да чете, записва и изпълнява всички файлове и директории, открити в директорията Test . Ето визуално представяне:

Когато видите символ тире вместо r, w или x, това означава, че разрешение не съществува.

Номера на разрешения за файлове(File Permission Numbers)

Числовият формат за разрешения за файлове е прост. По същество кодовете за разрешение за файлове имат три цифри:

  • Първият е за собственика на файла.
  • Вторият представлява групата на файла.
  • Последната цифра е за всички останали.

Цифрите варират от 0 до 7, където:

  • 4 = четене.
  • 2 = пиша.
  • 1 = изпълнение.
  • 0 = без разрешение.

Цифрата на разрешението за всеки клас се определя чрез сумиране на стойностите на разрешенията. С други думи, всяка цифра за всеки клас може да бъде сбор от 4, 2, 1 и 0. Ето пълен списък с разрешения:

  • 0 (0 + 0 + 0) = Потребителският клас няма никакви разрешения.
  • 1 (0 + 0 + 1) = Само(Execute) разрешение за изпълнение.
  • 2 (0 + 2 + 0) = Само разрешение за писане .(Write)
  • 3 (0 + 2 + 1) = Разрешения за писане и изпълнение.(Write)
  • 4 (4 + 0 + 0) = Разрешение само за четене .(Read)
  • 5 (4 + 0 + 1) = Разрешения за четене и изпълнение.(Read)
  • 6 (4 + 2 + 0) = Разрешения за четене и запис.(Read)
  • 7 (4 + 2 + 1) = Всички разрешения.

Например, разрешение 644 означава, че собственикът на файла има разрешения за четене и запис, докато другите два класа имат само разрешение за четене. Задаване на разрешения чрез използване на числовия формат изисква само основна математика.

Разрешение 777

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

Разрешение 777 се използва често, защото е удобно, но трябва да го използвате пестеливо. Всъщност препоръчваме никога да не го използвате, защото рисковете за сигурността са твърде големи. Неоторизиран потребител може да компрометира вашата система или например да промени уебсайта ви, за да разпространява злонамерен софтуер.

Вместо това трябва да дадете разрешение 755. По този начин вие като собственик на файла имате пълен достъп до определен файл или директория, докато всички останали могат да четат и изпълняват, но не могат да правят никакви промени без вашето одобрение.

Промяна на разрешения за файлове(File) с Chmod

Можете да промените разрешението за файл с помощта на командата chmod. Най-основният начин за използване на тази команда без други променливи е както следва:

chmod 777 име на файл(chmod 777 filename)

Заменете “(Replace “) filename” с името на файла и неговия път.

Имайте предвид, че единствените потребители с правомощия да променят разрешенията за файлове са тези с root достъп, собствениците на файлове и всеки друг с правомощия за sudo .



About the author

Аз съм опитен софтуерен инженер, с над 10 години опит в разработването и поддържането на Microsoft Office приложения. Имам силна страст да помагам на другите да постигнат целите си, както чрез работата ми като софтуерен инженер, така и чрез моите умения за публично говорене и работа в мрежа. Освен това съм изключително запознат с драйверите за хардуер и клавиатура, като сам разработих и тествах много от тях.



Related posts