Командата Linux chmod се използва за промяна на правата за достъп на файлове и директории. Това означава промяна на режима . Не може да промени разрешението за символни връзки. Дори игнорира символните връзки, попадащи на рекурсивно обхождане на директория.
В Linux файлова система, всеки файл е свързан с определен собственик и има разрешение за достъп за различни потребители. Потребителските класове могат да бъдат:
- собственик
- член на групата
- Други (Всички останали)
Разрешенията за файлове в Linux са следните три вида:
- прочети (r)
- пиша (w)
- изпълнявам (x)
Кратка история на Chmod
Първо, командата chmod е представена в AT&T UNIX версия 1 със системното извикване chmod. Списъците за контрол на достъпа бяха включени в няколко файлови системи като част от тези най-често срещани режими, за да се подобри гъвкавостта, тъй като системите нарастваха по видове и брой потребители.
Версията на chmod, подредена в GNU coreutils, е специфицирана от Джим Майеринг и Дейвид Макензи. Тази команда присъства като изолиран пакет за Microsoft Windows като елемент от родната Win32 порт колекция на UnxUtils от основни GNU Unix-подобни помощни програми. Освен това командата chmod е изпратена към IBM i OS.
Нека да видим как да промените разрешението за файл с помощта на командата chmod.
Синтаксис:
те са певци
Основният синтаксис на командата chmod е както следва:
chmod
Общоприложените опции са:
Целевият обект се влияе, ако се споменава символна връзка. Файловите режими, свързани директно със самите символни връзки, обикновено не се използват.
Основният компонент на разрешението chmod:
Например, rwxr-x---
Всички групи от три знака определят разрешения за всички класове:
Настроики:
Командата chmod поддържа следните опции на командния ред:
-c, --промени: Подобна е на опцията verbose, но разликата е, че се съобщава, ако е направена промяна.
-f, --безшумен, --тих: Използва се за потискане на съобщенията за грешка.
-v, --подробно: Използва се за показване на диагностика за всеки обработен файл.
--no-preserve-root: Използва се за нетретиране на символа наклонена черта ('/'), особено (по подразбиране).
--preserve-root: Ако се използва тази опция, няма да успее да работи рекурсивно с обратна наклонена черта ('/').
--reference=RFILE: Използва се за указване на режима на RFILE или стойностите на MODE.
-R, --рекурсивно: Използва се за рекурсивна промяна на файлове и директории.
--помогне: Използва се за показване на помощното ръководство с кратко описание на опциите за употреба и поддръжка.
--версия: Използва се за показване на информация за версията.
Синтаксис за разрешение за файл
Ако сте нов потребител, може да се объркате с различните типове букви, използвани за задаване на разрешение за файл. И така, преди да продължим с командата chmod, нека разберем синтаксиса на разрешенията за файлове.
За да зададем разрешение за файл или директория, трябва да посочим следните неща:
dfs алгоритъм
- Кой: Кои сме ние. (потребител)
- Какво: Каква промяна ще направим (като добавяне или премахване на разрешението)?
- Кое: Кое от разрешенията?
Изявлението за разрешение е представено в индикатори като u+x, u-x. Където „u“ означава „потребител“, „+“ означава добавяне, „-“ означава премахване, „x“ означава изпълним файл (който).
java команда за връщане
Потребителската стойност може да бъде:
u: собственикът на файла
g: член на групата
о: други
а: всички
Типовете разрешения могат да бъдат r, w и x.
Настройка и актуализиране на разрешенията
За да зададете разрешение за файл, изпълнете оператор за разрешение с командата chmod. Например, искаме да зададем разрешение за четене и запис за всички потребители и групи на файла „Demo.txt“. Трябва да предадем командата за разрешение 'u=rw,go=rw Demo.txt' с командата chmod. За да покажете разрешението за файл, изпълнете командата по-долу:
ls -l Demo.txt
Горната команда ще покаже текущото разрешение за файл на файла „Demo.txt“.
За да промените разрешението, изпълнете командата по-долу:
chmod u=rw,go=rw Demo.txt
Помислете за резултата по-долу:
От горния резултат разрешението за достъп на „Demo.txt“ е променено.
Задаване на разрешения за множество файлове
Можем да зададем разрешение за няколко файла наведнъж, като използваме командата chmod. За да промените файловото разрешение за множество файлове, укажете файловия модел с командата chmod. Например, ако искаме да зададем разрешение за четене и запис за всички текстови файлове, посочете *. txt модел с команда chmod.
За да видите разрешенията за всички текстови файлове от текущата работна директория, изпълнете командата по-долу:
ls -l *.txt
Той ще изброи всички текстови файлове с техния режим на разрешение. Помислете за резултата по-долу:
От горния резултат много файлове имат разрешение само за четене за други потребители.
За да зададете разрешение за четене и запис за други потребители, изпълнете командата по-долу:
chmod o+w *.txt
Той ще зададе разрешение за четене и запис за други потребители на текстовите файлове. Помислете за резултата по-долу:
Числова стенография
Можем да използваме цифровите стойности вместо букви, за да посочим разрешенията. За указване на разрешението се използва трицифрена стойност. Най-лявата цифра представлява собственика (u), а средната цифра представлява членовете на групата (g). Най-дясната цифра представлява останалите (o).
Следващата таблица представя цифрите и техните разрешения:
Цифри | Разрешения |
---|---|
000 | Няма разрешение |
001 | Разрешение за изпълнение |
010 | Разрешение за писане |
011 | Разрешения за писане и изпълнение |
100 | Разрешение за четене |
101 | Разрешения за четене и изпълнение |
110 | Разрешения за четене и запис |
111 | Разрешения за четене, писане и изпълнение |
Символни режими
Също така, командата chmod приема по-фина символична нотация, която позволява промяна на конкретни режими. Символният режим се състои от три елемента, които се обединяват, за да образуват един текстов низ:
$ chmod [references] [operator] [modes] file...
Програмата chmod прилага оператор, за да определи как трябва да бъдат подредени файловите режими. Следните оператори са одобрени:
Оператор | Описание | |
---|---|---|
+ | Той добавя описаното към описаните класове. | |
- | Той премахва описания режим от описаните класове. | |
= | Това означава, че описаните режими трябва да бъдат създадени същите режими за описаните класове. |
Режимите показват кои разрешения ще бъдат премахнати или предоставени от описаните класове. Има основно три общи режима, които са свързани с общите разрешения:
Име | Режим | Описание |
---|---|---|
Прочети | r | Той чете файл или изброява съдържанието на директория. |
пишете | в | Той записва в директория или файл. |
изпълни | х | Той рекурсира дърво на директория или изпълнява файл. |
специално изпълнение | х | Това не е разрешение, но вместо това може да се използва вместо x. Той използва разрешенията за изпълнение за директории въпреки текущите им разрешения и използва разрешенията за изпълнение за файл, който има зададен поне бит за разрешения за изпълнение. Полезно е, ако се използва с оператора '+' и без да се задава разрешение за изпълнение, което би се случило, ако просто използваме chmod -R a+rx ., докато можем да приложим chmod -R a+rx . с х по-скоро. |
Множество модификации могат да бъдат описани чрез изолиране на множество символни режими заедно със запетаи. Командата chmod ще инспектира umask ако не е посочен потребител.
вол срещу бик
Специални режими
Освен това командата chmod може да промени специалните режими и допълнителните разрешения на директория или файл. Символните режими прилагат 's' за обозначаване на режимите setgid и setuid и 't' за обозначаване на залепващия режим. Режимът се използва само за правилните класове, независимо дали други класове са споменати или не.
Почти всички операционни системи цифрово поддържат специалната спецификация на режима, по-специално в осмичен, но някои не го правят. Към тези системи могат да се прилагат само символните режими.
Някои примери за командния ред:
командване | Описание |
---|---|
chmod a+r publicComments.txt | Той ще добави разрешение за четене за всеки клас (т.е. група, собственик и други). |
chmod a-x publicComments.txt | Това ще премахне разрешението за изпълнение за всеки клас. |
chmod a+rx viewer.sh | Той ще добави разрешенията за изпълнение и четене за всеки клас. |
chmod u=rw, g=r, o=internalPlan.txt | Той ще зададе разрешенията за запис и четене за потребителя, ще чете за групата и ще отхвърли достъпа за други. |
chmod -R u+w, go-w документи | То ще включи разрешението за запис в директорията с документи и всяко нейно съдържание за собственика и ще изтрие разрешението за запис за другите и групата. |
chmod и=rw groupAgreements.txt | Той ще зададе разрешенията за запис и четене за група и потребител. |
chmod 664 global.txt | Той ще зададе разрешенията за запис и четене за група и потребител и ще даде разрешение за четене на други. |
chmod 744 Show_myCV.sh | Той ще зададе разрешенията за изпълнение, запис и четене за потребителя и ще даде разрешение за четене на група и други. |