Команда Linux chmod використовується для зміни прав доступу до файлів і каталогів. Це означає змінити режим . Він не може змінити дозвіл символічних посилань. Він навіть ігнорує символічні посилання, які зустрічаються при рекурсивному обході каталогу.
В Linux файлова система, кожен файл пов'язаний з певним власником і має права доступу для різних користувачів. Класи користувачів можуть бути:
- власник
- член групи
- Інші (Всі інші)
Дозволи на файли в Linux бувають трьох типів:
- читати (р)
- написати (ш)
- виконати (x)
Коротка історія Chmod
По-перше, команда chmod представлена в AT&T UNIX версії 1 системним викликом chmod. Списки керування доступом були включені до кількох файлових систем разом із цими найпоширенішими режимами, щоб підвищити гнучкість, оскільки системи зростали за типами та кількістю користувачів.
Версія chmod, організована в GNU coreutils, була визначена Джимом Меєрінгом і Девідом Макензі. Ця команда присутня як ізольований пакет для Microsoft Windows як елемент базової колекції портів Win32 UnxUtils базових GNU Unix-подібних утиліт. Крім того, команда chmod була доставлена до ОС IBM i.
Давайте подивимося, як змінити права доступу до файлу за допомогою команди chmod.
Синтаксис:
клас проти об'єкта java
Основний синтаксис команди chmod такий:
chmod
Зазвичай реалізовані варіанти:
Цільовий об’єкт впливає, якщо згадується символічне посилання. Типово не використовуються файлові режими, пов’язані безпосередньо з символьними посиланнями.
Основний компонент дозволу chmod:
Наприклад, rwxr-x---
Усі групи з трьох символів визначають дозволи для всіх класів:
Опції:
Команда chmod підтримує такі параметри командного рядка:
-c, --зміни: Це схоже на опцію verbose, але відмінність полягає в тому, що повідомляється про внесення змін.
ой концепція в java
-f, --silent, --quiet: Він використовується для придушення повідомлень про помилки.
-v, --verbose: Він використовується для відображення діагностики для кожного обробленого файлу.
--no-preserve-root: Він використовується для того, щоб не використовувати символ зворотної косої риски ('/'), особливо (за замовчуванням).
--preserve-root: Якщо використовується цей параметр, він не працюватиме рекурсивно зі зворотною скісною рискою ('/').
--reference=RFILE: Він використовується для визначення режиму RFILE або значення MODE.
-R, --рекурсивний: Він використовується для рекурсивної зміни файлів і каталогів.
--довідка: Він використовується для відображення довідкового посібника з коротким описом використання та параметрів підтримки.
--версія: Він використовується для відображення інформації про версію.
Синтаксис дозволу на файл
Якщо ви новий користувач, вас можуть заплутати різні типи літер, які використовуються для встановлення дозволу на файл. Отже, перш ніж продовжувати роботу з командою chmod, давайте розберемося з синтаксисом дозволу на файл.
Щоб встановити дозвіл для файлу або каталогу, ми повинні вказати наступні речі:
- Хто: Хто ми. (користувач)
- Що: які зміни ми збираємося внести (наприклад, додати або видалити дозвіл)?
- Який: який із дозволів?
Інструкція дозволу представлена такими індикаторами, як u+x, u-x. Де «u» означає «користувач», «+» означає додавання, «-» означає видалення, «x» означає виконуваний файл (який).
що таке команда експорту в Linux
Значення користувача може бути:
u: власник файлу
g: член групи
o: інші
а: все
Типи дозволів можуть бути 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 | Це не дозвіл, але замість цього його можна використовувати замість x. Він використовує дозволи на виконання для каталогів, незважаючи на їхні поточні дозволи, і використовує дозволи на виконання для файлу, який має принаймні встановлений біт дозволу на виконання. Це корисно, якщо використовувати з оператором «+» і без встановлення дозволу на виконання, що сталося б, якби ми просто використали chmod -R a+rx ., тоді як ми можемо реалізувати chmod -R a+rx . з x швидше. |
Кілька модифікацій можна описати шляхом виділення кількох символьних режимів разом із комами. Команда 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 | Він встановлює дозволи на запис і читання для користувача, ser на читання для групи та забороняє доступ для інших. |
chmod -R u+w, go-w документи | Він включатиме дозвіл на запис до каталогу документів і кожен його вміст для власника та видаляє дозвіл на запис для інших і групи. |
chmod and=rw groupAgreements.txt | Він встановить дозволи на запис і читання для групи та користувача. |
chmod 664 global.txt | Він встановить дозволи на запис і читання для групи та користувача та надасть дозвіл на читання іншим. |
chmod 744 Show_myCV.sh | Він встановить дозволи на виконання, запис і читання для користувача та надасть дозвіл на читання групі та іншим. |