В този бърз урок ще видим как можем да използваме chmod команда в машина на Ubuntu за намиране, модифициране и премахване на потребителски разрешения от конкретни файлове, които съществуват във файловата система на потребителя. Нека да играем през различни условия, за да можем да овладеем основното chmod команди, които могат да улеснят ежедневието ни с Ubuntu.
Разрешения за Linux
Разрешенията за Linux са чудесен набор от правила, които са лесни за разбиране, ако разберем основните права. Трите основни точки, които трябва да разберем, за да знаем как работят разрешенията за Linux:
- Елементът, за който са дефинирани разрешенията
- Какви действия могат да се извършват с разрешение
- Кой какви действия може да извърши
Във файловата система Linux има два основни елемента:
- Директории
- Файлове
Има три действия, които могат да бъдат извършени:
- Прочети
- Пишете
- Изпълни. Освен изпълнението на скриптове, същите действия са необходими за създаване на файлове и други папки вътре в него
Потребител, който може да извърши тези действия, е:
- Собственик на файла
- Група на собственика на файла
- Потребител, който не е свързан с група собственици или самия собственик
За да видите разрешения, свързани с файл, изпълнете следната команда:
ls -lЕто какво получаваме обратно с тази команда:
Намерете разрешение за файлове
В изхода първите 10 знака представляват разрешението за файла:
- Първият знак, който в този случай е „-“, означава, че това е файл. За директория това би било „d“.
- Следващите девет символа представляват съответно разрешения за собственика, групата на собственика и други.
Промяна на разрешенията
Синтаксисът за промяна на разрешението на файл изглежда така:
chmod файл с разрешения [файл 2] ..Осмично представяне за разрешения
Можем да представим разрешенията като осмично число. Например за задаване на разрешения за четене, писане и изпълнение за собственика, разрешения за четене и писане за неговата група и без разрешение за други, на здравей.txt файл, ще изпълним следната команда:
sudo chmod 760 здравей.текстСлед като изпълним горната команда и се опитаме да прочетем файл с акаунт, който не е собственик, използвайки следната команда:
sudo -u notowner-user още здравей.текстЩе получим следната грешка:
Здравейте.txt: Разрешението е отказаноНо откъде идва този номер? Всяка цифра от това число представлява набор от разрешения. Нека да видим как са получени:
- 0: Означава, че няма разрешение
- 1: Обозначава изпълни разрешение
- 2: Обозначава пиши разрешение
- 4: Обозначава Прочети разрешение
За присвояване на разрешения за четене, писане и изпълнение на собственика му присвоихме номер 7 (= 4 + 2 + 1). Нека да разберем по-добре това в таблица с цифри:
Брой | Двоична | Прочети | Пишете | Изпълни |
0 | 000 | НЕ | НЕ | НЕ |
1 | 001 | НЕ | НЕ | ДА |
2 | 010 | НЕ | ДА | НЕ |
3 | 011 | НЕ | ДА | ДА |
4 | 100 | ДА | НЕ | НЕ |
5 | 101 | ДА | НЕ | ДА |
6 | 110 | ДА | ДА | НЕ |
7 | 111 | ДА | ДА | ДА |
Горната таблица е много ясна в това, което представлява всяка по отношение на разрешенията за файлове.
Представяне на символи за разрешения
Можем да представим разрешенията като осмично число. Например за задаване на разрешения за четене, писане и изпълнение за собственика, разрешения за четене и писане за неговата група и без разрешение за други, на здравей.txt файл, ще изпълним следната команда:
sudo chmod u = rwe, g = rw, o-rwx здравей.текстЗа да добавим разрешения към съществуващ потребител, можем също да направим:
sudo chmod g + w здравей.текстТук разрешението за писане се възлагаше на потребителската група на собственика на файла.
Рекурсивни промени в разрешенията
Също така можем да променим разрешенията за файл, съдържащ се в конкретна директория, с една команда. За да промените разрешенията на всеки файл и папка в предоставена директория наведнъж, използвайте sudo chmod с -R:
sudo chmod 777 директория / *Можем да видим следния изход, който ясно отразява промяната в разрешенията за файлове:
Рекурсивно промяна на разрешенията за файлове
Заключение
В този урок разгледахме как можем да модифицираме файлови разрешения и ако е необходимо, направете го рекурсивно. Разбрахме основните концепции за това как разрешенията на Linux могат да ни помогнат много в ежедневната ни работа.