logo

Команда Chmod в Linux/Unix с примери

Командата 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 

Общоприложените опции са:

    -R:Това означава рекурсивно, т.е. добавяне на обекти към поддиректории.-IN:Това означава подробни, модифицирани обекти за показване (немодифицираните обекти не се показват).

Целевият обект се влияе, ако се споменава символна връзка. Файловите режими, свързани директно със самите символни връзки, обикновено не се използват.

Основният компонент на разрешението chmod:

Например, rwxr-x---

Всички групи от три знака определят разрешения за всички класове:

    rwx:Най-левите три знака указват разрешенията за собственика на файла (т.е. потребителския клас).r-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 

Помислете за резултата по-долу:

Linux chmod команда

От горния резултат разрешението за достъп на „Demo.txt“ е променено.

Задаване на разрешения за множество файлове

Можем да зададем разрешение за няколко файла наведнъж, като използваме командата chmod. За да промените файловото разрешение за множество файлове, укажете файловия модел с командата chmod. Например, ако искаме да зададем разрешение за четене и запис за всички текстови файлове, посочете *. txt модел с команда chmod.

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

 ls -l *.txt 

Той ще изброи всички текстови файлове с техния режим на разрешение. Помислете за резултата по-долу:

Linux chmod команда

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

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

 chmod o+w *.txt 

Той ще зададе разрешение за четене и запис за други потребители на текстовите файлове. Помислете за резултата по-долу:

Linux chmod команда

Числова стенография

Можем да използваме цифровите стойности вместо букви, за да посочим разрешенията. За указване на разрешението се използва трицифрена стойност. Най-лявата цифра представлява собственика (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 Той ще зададе разрешенията за изпълнение, запис и четене за потребителя и ще даде разрешение за четене на група и други.