Разбиране на разрешенията на Linux и използването на chmod

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

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

Разрешения и нива на Linux

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

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

Четене(Read) , запис и изпълнение са представени или като символни знаци, или като осмични числа. Например, ако направите ls -l в директория с някои файлове, ще видите символното символно представяне на разрешенията.

Разрешенията се записват по следния начин: първият бит е или тире, или буквата d. Тире(Dash) означава, че е файл, а d означава директория. Имайте предвид, че първият бит може да бъде и l , ако името на файла е връзка. След това има три групи от по три бита. Първият бит във всяка група е за четене, вторият бит е за запис, а третият бит е за изпълнение. Първите три бита са за собственика, вторите три бита са за групата, а третите три бита са за други. Ето по-нагледно обяснение.

Ако видите тире на мястото на буква, това означава, че собственикът, групата или всички други потребители нямат това разрешение. В примера по-горе собственикът, групата и всички останали имат разрешения за четене, запис и изпълнение.

Ако погледнете изхода от командата ls -l, ще забележите, че моят текстов файл за практика има следните разрешения:

-rw-rw-rw-

Това означава, че всеки има разрешения само за четене/запис на файла. Ето още един пример:

drwxr--r--

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

Осмично числово представяне

Така че разрешенията се показват в Linux с помощта на символи. Вторият начин за представяне на същите разрешения е чрез използване на осмични числа. Когато използваме командата chmod по-късно, ще видите, че можете да промените разрешенията, като използвате символи или осмични числа.

И така, как Linux представя четене, запис и изпълнение с помощта на осмични числа? По принцип той просто присвоява номер на всяко разрешение, както е показано по-долу.

Разрешението за четене е представено с 4, за запис с 2 и за изпълнение с 1. Всичко, което трябва да направите, е да ги добавите, за да получите осмичното разрешение. Например, нека вземем примера по-горе, където всеки има всички разрешения:

-rwxrwxrwx

Собственикът има rwx, така че ще добавим 4 + 2 + 1, за да получим стойност от 7. Правим същото нещо за група и същото нещо за други. Крайната осмична стойност е 777. Нека да разгледаме примера, където дадохме само разрешения за четене/запис:

-rw-rw-rw-

Първото осмично число ще бъде 4 + 2, тъй като добавяме четене и запис. Второто ще бъде същото като третото осмично число. Тук имаме крайна осмична стойност от 666.

Така че сега нека опитаме по друг начин. Да кажем, че искаме да знаем какви разрешения представлява 755 ? Е, доста лесно е да разберете, ако го разбиете по отделни числа. Първото число е 7, което можем да получим само като добавим 4 + 2 + 1, което означава, че собственикът има разрешение за четене/запис/изпълнение. Пет могат да бъдат получени само чрез добавяне на 4 + 1, което означава, че групата и другите потребители имат разрешения за четене и изпълнение.

Надяваме се(Hopefully) , че това е добро обяснение за това как да представяте разрешения в Linux с помощта на осмични числа. Като цяло е доста ясна.

Използване на chmod за промяна на разрешенията

Сега, когато разбрахме как да четем разрешенията, нека да поговорим как можем да ги променим. Най-лесната програма за използване за тази цел е командата chmod. Ето как работи. Най-добрият начин да обясните командата е да преминете през пример.

Нека започнем с разрешенията, за които говорихме по-горе, а именно:

-rw-rw-rw-

Ако искаме да добавим разрешение за изпълнение за собственик, група и други, бихме могли да го направим по два начина. Можем да използваме символния метод или осмичния метод. За метода на символа ще направим следното, както е показано по-долу:

Точната команда е

chmod a+x filename

Синтаксисът е следният: буквата или буквите, представляващи собственик ( u ), група ( g ), друго ( o ) или всички ( a ), последвано от + за добавяне на разрешения или a за отнемане на разрешения и след това буквата за разрешението ( r за четене, w за запис и x за изпълнение).

В горния пример добавих разрешението за изпълнение за всички потребители. Резултатът, както можете да видите на екранната снимка по-горе, е x за собственик, група и други. Сега да кажем, че исках да премахна разрешенията за запис и изпълнение само за групата и други потребители.

Както можете да видите тук, използвах следната команда, за да постигна това:

chmod go-wx filename

Тъй като искам да променя разрешенията за група и други, използвам буквата g и буквата o . Искам да премахна разрешенията, затова използвам знака – . И накрая, искам да премахна разрешенията за запис и изпълнение, така че използвам w и x . Ето една удобна малка таблица за използване на символи:

Така че това е всичко, което трябва да използвате за метода на символа. Сега нека поговорим за осмичния метод, който според мен е малко по-лесен. Octal е хубав, защото можете да добавяте или премахвате разрешения наведнъж.

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

-rw-rw-rw-

По- горе(Above) можете да видите, че използвах следната команда:

chmod 744 filename

Това основно казва, че собственикът получава разрешение за четене/запис/изпълнение, а групата и други получават разрешение само за четене. Както можете да видите, лесно е да добавяте или премахвате разрешения с една проста команда. Нека продължим и да кажем, че искам отново да променя разрешенията.

Сега използвах следната команда, отново много проста:

chmod 640 filename

Тук сме дали на собственика разрешения за четене/запис, на групата само разрешение за четене, а на другата група без разрешения. Използвате нула, за да обозначите липса на разрешения. Доста просто, а?

В заключение, това е много прост преглед на разрешенията за Linux и може да стане много по-сложен от това, но за начинаещи е добро място за начало. В бъдеще ще публикувам още статии за по-разширени разрешения. Ако имате въпроси, не се колебайте да коментирате. Наслади се!



About the author

Здрасти! Аз съм компютърен програмист с над 10 години опит в областта. Специализирам се в разработването и поддръжката на софтуер за смартфони и актуализации на windows. Освен това предлагам услугите си като месечен представител за поддръжка на имейл клиенти.



Related posts