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

Linux е многопотребителска операционна система, така че множество потребители могат да взаимодействат с един и същ компютър едновременно с помощта на Linux. Тъй като е многопотребителска операционна система, за Linux е важно да гарантира сигурността и поверителността на файловете, принадлежащи на различни потребители.

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

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

Категория на потребителите в Linux

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

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

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

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

Всички потребители в компютъра, тоест собственици на файлове, потребители в групи и други потребители могат да посочат с буквата a.

Създайте и добавете нов потребител в Ubuntu Linux

Нека да разгледаме как можете да създадете и добавите нов потребител в Ubuntu Linux. За да следвате този урок, моля, създайте и нов потребител.

1. Отворете Настройки и в лявата лента с менюта щракнете върху Потребител, след което щракнете върху Отключване и въведете паролата си, когато бъдете подканени. Трябва да кликнете върху Отключване, за да можете да добавите нов потребител. По подразбиране тази функционалност е заключена.

2. След като бъде отключен, ще видите опция Добавяне на потребител, щракнете върху нея, за да добавите нов потребител

3. За да създадете нов потребител, въведете пълното му име и потребителско име, изберете Задаване на парола сега и задайте неговата парола. Освен това се уверете, че типът на акаунта е зададен на Администратор, след което щракнете върху Добавяне, за да добавите потребител.

4. Трябва да видите нов потребителски акаунт, който току-що създадохте, както е показано по-долу.

  Как да изброите устройствата на вашия компютър от терминала на Linux

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

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

  • Read(r) – позволява на потребителя да види съдържанието на файл и да изброи съдържанието на директория
  • Write(w) – позволява на потребителя да променя съдържанието на файл. При директориите разрешенията за запис позволяват на потребителя да променя съдържанието на директория, като например създаване, изтриване, преименуване или преместване на файлове и поддиректории в директорията. Разрешенията за запис с директории обаче работят само ако потребителят има и разрешения за изпълнение.
  • Execute(x) – Разрешенията за изпълнение означават, че даден файл може да се третира като програма, която може да бъде изпълнена. При директориите разрешението за изпълнение позволява на потребителя да влезе или да „cd“ в директорията.
  • Разрешенията за четене, писане и изпълнение се присвояват на трите категории потребители, налични в Linux.

    Можете също да прочетете как да премахвате файлове и директории в Linux

    Дълъг списък в Linux

    За да видите съдържанието на файл в Linux директория, обикновено изпълняваме командата ls. Това обаче само изброява наличните файлове и директории и не предоставя допълнителна информация.

    За да видите повече информация за съдържанието, трябва да използвате формата за дълъг списък. За да направите това, изпълнете командата ls с флага -l. Това ще ви даде разрешения за файл, собственици на файл и собственици на група за файл, както е показано по-долу:

    В Ubuntu по подразбиране, ако не е създадена група, името на групата е същото като собственика на файла.

    За да създадем група, използваме командата addgroup. За да добавите група, наречена редактори, изпълнете следната команда и въведете парола, когато бъдете подканени

    sudo addgroup editors

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

    За да добавим потребители към група, използваме следния синтаксис:

    adduser <user> <group>

    Следователно, за да добавим както belmont, така и madici към групата редактори, ние изпълняваме

    sudo adduser belmont editors
    sudo adduser madici editors

    За да видите групите, към които принадлежи даден потребител, изпълнете:

    groups <username>

    Резултатът от горните команди е показан по-долу:

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

    Файлови атрибути в Linux

    В Linux файловите атрибути се състоят от точно десет знака. Първият знак показва типа на файла. Някои от често срещаните първи знаци, представляващи различни файлове, включват:

    • d показва директория
    • – показва обикновен файл, напр. текстови файлове
    • c показва файл със специални знаци
    • l показва символна връзка
    • b показва блоков специален файл

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

    Разрешенията за всяка категория са посочени, започвайки с разрешение за четене, след това за запис и накрая разрешение за изпълнение. Разрешението за четене се обозначава с буквата r, разрешението за запис с буквата w и разрешението за изпълнение с буквата x.

      9 най-добри причини да използвате Ubuntu Linux

    Символът – се използва в случай, че потребителят няма определено разрешение. Например rw- за собственика на групата означава, че те имат права за четене и запис, но нямат разрешение за изпълнение на тази директория (d).

    Промяна на разрешенията за файлове с помощта на символна нотация

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

    Това може да бъде собственикът на файла, представен с буквата u за потребителя, собственикът на групата, представен с буквата g, или други потребители, представени с буквата o. Можем също да се насочим към трите категории потребители, като използваме буквата a, което означава всичко по-горе.

    Следващото нещо, което уточняваме, е промяната, която правим. За да добавим разрешение, използваме + (знак плюс). За премахване на разрешение използваме – (знак минус). Последното нещо, което предоставяме, са разрешенията, които добавяме, като използваме r, w или x, за да представим трите налични разрешения.

    За да видите това в действие, създайте директория, наречена книги, като използвате командата по-долу

    mkdir books

    Въведете или ‘cd’ в директорията:

    cd books

    Създайте файл, наречен readingList.txt

    touch readingList.txt

    Дълъг списък на съдържанието на директорията с книги, като изпълните:

    ls -l

    Резултатът е както е показано:

    Файлът, който създадохме, е обикновен файл, обозначен с първо –, собственикът и собственикът на групата имат разрешения за четене и запис, докато другите потребители имат разрешение само за четене. За да предоставим на други потребители разрешение да пишат във файла, ще изпълним следната команда:

    chmod o+w readingList.txt

    За да видите дали разрешенията за други потребители са се променили, изпълнете

    ls -l

    Изход:

    Забележете, че разрешението за файл на други потребители е променено от r– на rw-, което означава, че те вече имат разрешение за запис.

    За да добавите разрешения за изпълнение към собственика (потребителя) на файла, изпълнете:

    chmod u+x readingList.txt

    За да премахнете разрешенията за запис от собствениците на групата, изпълнете:

    chmod g-w readingList.txt

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

    chmod a-r readingList.txt

    За да добавите обратно разрешение за четене за собственика на файла, изпълнете:

    chmod u+r readingList.txt

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

    chomod g+wx readingList.txt

    Промяна на разрешения с помощта на осмичната нотация

    В Linux всяко от трите налични разрешения има само две възможни стойности. Разрешението за четене може да бъде само r или –, разрешението за запис може да бъде само w или –, а разрешението за изпълнение може да бъде само x или –.

    Следователно тези разрешения могат да се считат за включени или изключени и следователно да бъдат представени с помощта на двоични числа, които имат само две налични стойности. Това е 1 за включено или вярно и 0 за изключено или невярно. Там разрешение като rw– може да бъде представено като 110 с помощта на двоични числа.

    Следователно, за всяка дадена категория потребители, три двоични числа са достатъчни, за да представят всичките им разрешения. Например разрешението за собственика, групата и други rwxrw-r– може да бъде представено като 111110100 с помощта на двоично число.

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

      Как да инсталирате Docker Images на Linux

    Осмичните числа имат основа 8 и следователно имат само 8 възможни стойности. Всяко осмично число се съпоставя с точно три двоични цифри.

    Следователно, разрешение като rw- може да бъде представено като 110 в двоичен код. Осмичният еквивалент на 110 е 6 и по този начин 6 може да се използва за представяне на rw-. Осмичните числа могат да се използват за представяне на разрешенията за четене, писане и изпълнение на собственика, групата и други, както е показано по-долу:

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

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

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

    За да дадете на всички потребители, т.е. собственика, собственика на групата и други потребители, разрешение за четене, писане и изпълнение на readingList.txt, изпълнете:

    chmod 777 readingList.txt

    За да проверите дали разрешенията са променени, изпълнете:

    ls -l

    Изход:

    total 0
    -rwxrwxrwx 1 madici madici 0 Sep  6 05:45 readingList.txt

    Забележете, че сега собственикът, групата и другите потребители имат разрешение да четат, пишат и изпълняват readingList.txt.

    За да премахнете разрешенията за запис както от собственика на групата, така и от други, изпълнете:

    chmod 755 readingList.txt

    За да премахнете разрешението за изпълнение от собственика и другите да изпълнят:

    chmod 654 readingList.txt

    Специални разрешения в Linux

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

    Специалните разрешения включват:

    • Задаване на потребителски идентификатор (SUID) – разрешението SUID позволява на потребителя да изпълни файл или програма с привилегиите на собственика на, а не с тези на потребителя, който го изпълнява. Това е полезно, когато стандартните потребители трябва да изпълняват задачи, които изискват повишени привилегии.
    • Задаване на групов идентификатор (SGID) – разрешението за SGID позволява на потребителя да изпълни файл с разрешенията на собственика на групата на файла, а не с разрешенията на тяхната действителна група.
    • Sticky Bit – Sticky bit е разрешение, което обикновено се задава за директории, за да се гарантира, че файловете в директорията могат да бъдат изтрити само от действителния собственик на директорията, собственика на този конкретен файл или root потребителя.

    Трите специални разрешения могат да се използват заедно със стандартните разрешения: четене, писане и изпълнение.

    Заключение

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

    Можете също така да проучите как да използвате Linux команди в Windows.