Ако сте потребител на Linux или уеб администратор, който управлява вашия собствен уеб сайт (който вероятно е хостван на сървър на Linux), със сигурност ще срещнете ситуация, когато се опитате да качите файл или да промените документ и да получите грешката " Вие нямат разрешения за качване на файл в папката ". И след като сте натиснали, решението често е толкова лесно, колкото задаването на разрешение за "775" или "777". И така, какво точно означава "777"? И защо трябва да е "7", а не "8" или "9"?

Свързани : Как да преименувате файлове в Linux

Разбиране на разрешенията за файлове

Системите Unix (включително Linux и Mac OS X) идват с механизъм за управление на файловете, за да определят кой има достъп до определен файл или папка и какви действия могат да направят. Към механизма за управление на файловете има две части, а именно Класове и разрешения . Класовете определят кой има достъп до файла, докато разрешенията определят вида на действието, което потребителят може да направи към файла.

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

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

Що се отнася до разрешенията, има 3 типа действия, които можете да изпълните на файл / папка. Можете да четете, пишете или изпълнявате .

  • Четене - Можете да разглеждате файла само, но не можете да променяте съдържанието му. Когато сте приложени в папка, можете да видите само файловете в папката, но не можете да ги изтриете или да ги добавите в папката.
  • Write - Можете да редактирате и променяте файла. За папки можете да изтривате и добавяте файлове в папката.
  • Execute - Execute се използва главно, когато трябва да стартирате файла (обикновено се използва, когато трябва да изпълните скрипт).

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

Например собственикът обикновено има всички разрешения (четене, писане и изпълнение) за достъп до файла. Ако не сте собственик на файла / папката, трябва да промените собствеността на файла на вашето име или да промените разрешенията на Group или Others да четат, пишат или изпълняват. В уеб сървър, ако не сте в състояние да качите файл, това вероятно е, защото не сте собственик на целевата папка или не ви се дават достатъчно разрешения за добавяне на файлове към папката.

Какво е числото?

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

Всеки файл и папка съдържат 8-битови данни, които контролират разрешенията. В основната двоична форма ще бъде "000", което означава, че не се разрешават никакви разрешения. Когато зададете разрешение "Четене", той ще добави 4-битови данни, което ще направи "100" (в двоичен формат) или "4" в обичайния десетичен формат. Задаването на разрешение "Write" ще добави 2-битови данни, което ще направи "010" и "2" в десетична форма. Накрая, задаването на разрешение "Изпълнение" добавя 1-битова към данните, което ще доведе до "001" или "1" в десетична форма. Накратко:

  • Четенето е еквивалентно на "4".
  • Писането е еквивалентно на "2".
  • Изпълнението е еквивалентно на "1"

Когато искаме да зададем разрешения, ние просто добавяме номера. Например, за да зададете разрешенията за четене и писане, ще използваме "6" (4 + 2) за разрешението. За четене, писане и изпълнение ще използваме "7" (4 + 2 + 1) за разрешение. Ето различната пермутация:

0 - няма разрешение
1 - изпълнение
2 - пишете
3 - пишете и изпълнявате
4 - прочетете
5 - четене и изпълнение
6 - четене и писане
7 - четете, пишете и изпълнявайте

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

Какво ще кажете за 3 цифрите '777'? Е, първата цифра е присвоена на Собственика, втората цифра е присвоена на Групата, а третата цифра е присвоена на Други. Така че за файл с разрешение '777', всеки може да чете, пише и изпълнява файла. Ето някои от често използваните разрешения:

  • 755 - Този набор от разрешения обикновено се използва в уеб сървъра. Собственикът има всички разрешения за четене, писане и изпълнение. Всички останали могат да четат и изпълняват, но не могат да правят промени в файла.
  • 777 - Всеки може да чете писмено и да изпълнява. В уеб сървър не е препоръчително да зададете "777" разрешение за вашите файлове и папки, тъй като позволява на всеки да добави зловреден код към вашия сървър. В някои случаи обаче ще трябва да зададете 777 разрешения, преди да можете да качите всеки файл на сървъра (Например, качвате изображения в WordPress)
  • 644 - Само собственикът може да чете и пише. Всички останали могат да четат само. Никой не може да изпълни файла.
  • 655 - Само собственикът може да чете и пише, но да не изпълнява файла. Всички останали могат да четат и изпълняват, но не могат да променят файла.

Задаване на разрешения за файлове в командния ред

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

 chmod 775 / път / към / файл 

Надяваме се, че тази статия може да Ви помогне да разберете по-добре разрешенията за файлове в системата Unix и произхода на магическия номер "777".

Станете професионалист на Linux с този пакет

Linux е операционната система на програмисти и компютърни джуджета, благодарение на пълната си изчислителна мощ и невероятната персонализация. Но това също прави много по-трудно да научите въжетата на Linux, поради което трябва да инвестирате в пакета Linux Power User Bundle. Изисквайки абсолютно нулеви предишни знания, този курс пакет ще ви научи от земята, за да станете професионалист в използването на Linux. За ограничен период от време, тя може да бъде ваша само за $ 19.