В Linux разрешенията на файловете, атрибутите и собствеността контролират нивото на достъп, което системата обработва и потребителите имат за файлове. Това гарантира, че само оторизирани потребители и процеси имат достъп до определени файлове и директории.
Разрешения за Linux файлове #
Основният модел на разрешения за Linux работи чрез свързване на всеки системен файл със собственик и група и присвояване на права за достъп за разрешения за три различни класа потребители:
- Собственикът на файла.
- Членовете на групата.
- Други (всички останали).
Собствеността на файла може да бъде променена с помощта на чаун
и chgrp
команди.
Три типа разрешения на файлове се прилагат за всеки клас потребители:
- Разрешението за четене.
- Разрешението за писане.
- Разрешението за изпълнение.
Тази концепция ви позволява да контролирате кои потребители могат да четат файла, да пишат във файла или да изпълняват файла.
За да видите разрешенията за файлове, използвайте ls
команда:
ls -l име на файл
-rw-r - r - 12 linuxize потребители 12.0K 28 април 10:10 име_на_файл | [-] [-] [-] - [------] [---] | | | | | | | | | | | | | + -----------> 7. Група | | | | | + -------------------> 6. Собственик | | | | + --------------------------> 5. Алтернативен метод за достъп | | | + ----------------------------> 4. Други разрешения | | + -------------------------------> 3. Групови разрешения | + ----------------------------------> 2. Разрешения на собственика + ------------------------------------> 1. Тип файл
Първият знак показва типа на файла. Това може да бъде обикновен файл (-
), директория (д
), символна връзка (л
) или други специални типове файлове. Следващите девет символа представляват разрешенията на файла, три тризнаци по три знака всеки. Първият триплет показва разрешенията на собственика, вторият разрешенията за една група и последният триплет показва разрешенията на всички останали.
В горния пример (rw-r - r--
) означава, че собственикът на файла има разрешения за четене и запис (rw-
), групата и другите имат само разрешения за четене (r--
).
Разрешенията за файлове имат различно значение в зависимост от типа на файла.
Всеки от трите тройни разрешителни може да бъде изграден от следните символи и да има различни ефекти, в зависимост от това дали са зададени във файл или в директория:
Ефект на разрешенията върху файлове
Разрешение | Характер | Значение в досието |
---|---|---|
Прочети | - | Файлът не се чете. Не можете да видите съдържанието на файла. |
r | Файлът е четим. | |
Пишете | - | Файлът не може да бъде променян или модифициран. |
w | Файлът може да бъде променен или модифициран. | |
Изпълни | - | Файлът не може да бъде изпълнен. |
х | Файлът може да бъде изпълнен. | |
с | Ако се намери в потребител триплет, той задава сетуид малко. Ако се намери в група триплет, той задава setgid малко. Това също означава, че х флагът е зададен.Когато сетуид или setgid флаговете са зададени върху изпълним файл, файлът се изпълнява със собственика на файла и / или привилегиите на групата. | |
С | Същото като с , но х флаг не е зададен. Този флаг рядко се използва за файлове. | |
T | Ако се намери в други триплет, той задава лепкав малко.Това също означава, че х флагът е зададен. Този флаг е безполезен за файлове. | |
T | Същото като, T но х флаг не е зададен. Този флаг е безполезен за файлове. |
Ефект на разрешенията върху директории (папки)
Директориите са специални типове файлове, които могат да съдържат други файлове и директории.
Разрешение | Характер | Значение в Директорията |
---|---|---|
Прочети | - | Съдържанието на директорията не може да бъде показано. |
r | Съдържанието на директорията може да бъде показано. (д.ж., Можете да изброите файлове в директорията с ls .) | |
Пишете | - | Съдържанието на директорията не може да се променя. |
w | Съдържанието на директорията може да бъде променено. (д.ж., Можете да създавате нови файлове, да изтривате файлове ... и т.н.) | |
Изпълни | - | Директорията не може да бъде променена на. |
х | Директорията може да се навигира с помощта cd . | |
с | Ако се намери в потребител триплет, той задава сетуид малко. Ако се намери в група триплет задава setgid малко. Това също означава, че х флагът е зададен. Когато setgid флаг е зададен в директория, новите файлове, създадени в него, наследяват идентификатора на групата директории (GID) вместо основния идентификатор на групата на потребителя, създал файла.сетуид няма ефект върху директориите. | |
С | Същото като с , но х флаг не е зададен. Този флаг е безполезен за директориите. | |
T | Ако се намери в други триплет, той задава лепкав малко.Това също означава, че х флагът е зададен. Когато лепкавият бит е зададен в директория, само собственикът на файла, собственикът на директорията или административният потребител могат да изтриват или преименуват файловете в директорията. | |
T | Същото като T , но х флаг не е зададен. Този флаг е безполезен за директориите. |
Промяна на разрешенията за файлове #
Разрешенията за файлове могат да се променят с помощта на chmod
команда. Само root, собственикът на файла или потребител с права на sudo могат да променят разрешенията на файл. Бъдете особено внимателни, когато използвате chmod
, особено при рекурсивна промяна на разрешенията. Командата може да приеме един или повече файлове и / или директории, разделени с интервал като аргументи.
Разрешенията могат да бъдат посочени чрез символен режим, цифров режим или референтен файл.
Символичен (текстов) метод #
Синтаксисът на chmod
команда при използване на символния режим има следния формат:
chmod [ОПЦИИ] [ugoa…] [- + =] перми ... [, ...] ФАЙЛ…
Първият набор от флагове ([угоа…]
), потребителски флагове, определя класовете на потребителите, за които се променят разрешенията за файла.
u
- Собственикът на файла.ж
- Потребителите, които са членове на групата.o
- Всички останали потребители.а
- Всички потребители, идентични суго
.
Когато флагът на потребителите е пропуснат, той по подразбиране е а
.
Вторият набор от флагове ([- + =]
), операционните флагове, определя дали разрешенията да бъдат премахнати, добавени или зададени:
-
- Премахва посочените разрешения.+
- Добавя определени разрешения.=
- Променя текущите разрешения до посочените разрешения. Ако не са дадени разрешения след=
символ, всички разрешения от посочения потребителски клас се премахват.
Разрешенията (къдрене ..
) са изрично зададени, като се използва или нула, или една или повече от следните букви: r
, w
, х
, х
, с
, и T
. Използвайте една буква от комплекта u
, ж
, и o
при копиране на разрешения от един в друг потребителски клас.
Когато задавате разрешения за повече от един потребителски класове ([, ...]
), използвайте запетаи (без интервали), за да разделите символните режими.
Ето няколко примера за това как да използвате chmod
команда в символен режим:
Дайте разрешение на членовете на групата да изпълняват файла, но не и да четат и пишат в него:
chmod g = x име на файл
Премахнете разрешението за писане за всички потребители:
chmod a-w име на файл
Отстранете извадното разрешение за изпълнение за други потребители:
chmod -R o-x речево име
Премахнете разрешението за четене, запис и изпълнение за всички потребители, с изключение на собственика на файла:
chmod og-rwx име на файл
Същото нещо може да се постигне и чрез използване на следната форма:
chmod og = име на файл
Дайте разрешение за четене, писане и изпълнение на собственика на файла, разрешения за четене на групата на файла и никакви разрешения за всички останали потребители:
chmod u = rwx, g = r, o = име на файл
Числен метод #
Синтаксисът на chmod
команда при използване на символния режим има следния формат:
chmod [ОПЦИИ] НОМЕР ФАЙЛ ..
Когато използвате цифровия режим, можете да зададете разрешенията и за трите потребителски класа (собственик, група и всички останали) едновременно.
Номерът на разрешението може да бъде 3 или 4-цифрено число. Когато се използва 3-цифрен номер, първата цифра представлява разрешенията на собственика на файла, втората - групата на файла, а последната - всички останали потребители.
Всяко разрешение за писане, четене и изпълнение има следната цифрова стойност:
r
(прочетено) = 4w
(запис) = 2х
(изпълнение) = 1- без разрешения = 0
Номерът на разрешенията за конкретен потребителски клас е представен от сумата от стойностите на разрешенията за тази група.
За да разберете разрешенията на файла в цифров режим, просто изчислете сумите за всички класове на потребителите. Например, за да дадете разрешение за четене, писане и изпълнение на собственика на файла, четене и изпълнение на разрешения за групата на файла и само разрешения за четене на всички останали потребители, ще направите следното:
- Собственик: rwx = 4 + 2 + 1 = 7
- Група: r-x = 4 + 0 + 1 = 5
- Други: r-x = 4 + 0 + 0 = 4
Използвайки метода по-горе, стигаме до числото 754
, което представлява желаните разрешения.
За да настроите сетуид
, setgid
, и лепкаво малко
флагове, използвайте четирицифрено число.
Когато се използва 4-цифрено число, първата цифра има следното значение:
- setuid = 4
- setgid = 2
- лепкав = 1
- без промени = 0
Следващите три цифри имат същото значение като при използване на трицифрено число.
Ако първата цифра е 0, тя може да бъде пропусната и режимът може да бъде представен с 3 цифри. Цифровият режим 0755
е същото като 755
.
За да изчислите числовия режим, можете да използвате и друг метод (двоичен метод), но той е малко по-сложен. Знанието как да се изчисли числовият режим с помощта на 4, 2 и 1 е достатъчно за повечето потребители.
Можете да проверите разрешенията на файла в числовата нотация с помощта на статистика
команда:
stat -c "% a" име на файл
Ето няколко примера за това как да използвате chmod
команда в цифров режим:
Дайте на собственика на файла разрешения за четене и писане и разрешения за четене само на членовете на групата и всички останали потребители:
chmod 644 дир
Дайте на собственика на файла разрешения за четене, писане и изпълнение, разрешения за четене и изпълнение на членовете на групата и никакви разрешения за всички останали потребители:
chmod 750 дир
Дайте разрешения за четене, писане и изпълнение и лепен бит на дадена директория:
chmod 1777 дир
Рекурсивно задайте разрешения за четене, запис и изпълнение на собственика на файла и няма разрешения за всички останали потребители в дадена директория:
chmod -R 700 дир
Заключение №
В Linux достъпът до файловете е ограничен с разрешения за файлове, атрибути и собственост. За да промените разрешенията на файла, използвайте chmod
команда.
Ако имате въпроси или отзиви, не се колебайте да оставите коментар.