Отримавши тут відповідь на моє запитання та зробивши деякі дослідження щодо результату, я знайшов статтю, яка дуже добре пояснює це. Я хотів би поділитися тут частинами цієї статті для подальшого використання.
Перегляд дозволів
Для того, щоб chmod
змінити дозволи дозволу на файл чи каталог, спершу потрібно знати, що таке поточний режим доступу. Ви можете переглянути вміст каталогу в терміналі за допомогою cd
цього каталогу, а потім скористатися:
$ ls -l
-l
Перемикач має важливе значення , тому що використання ls
без нього буде відображати тільки імена файлів або папок в каталозі.
Нижче наведено приклад використання ls -l
в моєму домашньому каталозі:
total 128
drwxr-xr-x 2 peter users 4096 Jul 5 21:03 Desktop
drwxr-xr-x 6 peter users 4096 Jul 5 17:37 Documents
drwxr-xr-x 2 peter users 4096 Jul 5 13:45 Downloads
drwxr-xr-x 2 peter users 4096 Jun 24 03:36 Movies
drwxr-xr-x 2 peter users 4096 Jun 24 03:38 Music
drwxr-xr-x 2 peter users 4096 Jun 26 00:09 Pictures
-rw-r--r-- 1 peter users 354 Jul 6 17:15 chmodtest
Що означають стовпці
Перший стовпець - тип кожного файлу:
-
позначає звичайний файл.
d
позначає каталог, тобто папку, що містить інші файли або папки.
p
позначає названу трубу (він же FIFO).
l
позначає символічну ланку.
Букви після цього - це дозволи, цей перший стовпчик - це те, що нас буде найбільше цікавити. Другий - скільки посилань у файлі, ми можемо сміливо його ігнорувати. Третій стовпець має два значення / імена: Перший (у моєму прикладі "peter") - це ім'я користувача, якому належить файл. Друге значення ("користувачі" у прикладі) - це група, до якої належить власник (Докладніше про групи).
Наступний стовпець - це розмір файлу чи каталогу в байтах та інформації, після яких - дати та час останнього зміни файлу чи каталогу, і звичайно назва файлу чи каталогу.
Що означають дозволи
Перші три букви після першого -
або d
- це дозволи, які має власник. Наступні три букви - це дозволи, які стосуються групи. Останні три листи - це дозволи, які стосуються всіх інших.
Кожен набір із трьох літер складається з r
w
та x
. r
завжди в першій позиції, w
завжди в другій позиції і x
завжди в третій позиції. r
є дозволом читання, w
є дозволом на запис та x
є дозволом на виконання. Якщо -
на місці одного з цих літер є дефіс ( ), це означає, що дозвіл не надається, а якщо лист присутній, то він надається.
Папки
У випадку папок біти режиму можна інтерпретувати так:
r
(read) означає здатність читати зміст даного каталогу,
w
(запис) означає можливість запису змісту даного каталогу (створення нових файлів, папок; перейменування, видалення існуючих файлів, папок), якщо і лише якщо встановлено біт виконання. В іншому випадку цей дозвіл є безглуздим.
x
(Виконати) означає можливість вводити заданий каталог за допомогою команди cd та доступу до файлів, папок у цьому каталозі.
Зміна дозволів за допомогою команди chmod
chmod
це команда в Linux та інших Unix-подібних операційних системах. Це дозволяє змінювати дозволи (або режим доступу) для файлу чи каталогу.
Ви можете змінювати дозволи двома різними способами: - на основі тексту - на chmod
основі чисельностіchmod
Текстовий метод
Для зміни режиму дозволу або доступу до файлу ми використовуємо команду chmod у терміналі. Нижче наведена загальна структура команди:
chmod who=permissions filename
Де хто є хтось із ряду листів, і кожен означає, кому ви збираєтесь надати дозвіл. Вони такі:
u - The user that owns the file.
g - The group the file belongs to.
o - The other users i.e. everyone else.
a - all of the above - use this instead of having to type ugo.
Права доступу є такими ж , як уже обговорювалося ( r
, w
і x
).
Команда chmod дозволяє нам додавати та віднімати дозволи з існуючого набору, використовуючи + або - замість =. Це відрізняється від наведених вище команд, які в основному переписують дозвіл (тобто змінити дозвіл r--
на rw-
, вам все ще потрібно включити r
, а також w
після того , як =
в chmod
команді. Якщо ви пропустили r
, це прибере r
дозвіл як вони перезаписуються символом =. Використовуючи + і - уникайте цього, додаючи або відбираючи поточний набір дозволів).
Метод числення
chmod
також можна встановити дозволи, використовуючи числа.
Використання номерів - це ще один метод, який дозволяє одночасно редагувати дозволи для всіх трьох власників, груп та інших. Основна структура коду така:
chmod xxx file/directory
Де xxx - це трицифрове число, де кожна цифра може бути будь-якою від 1 до 7. Перша цифра стосується дозволів для власника, друга цифра стосується дозволів для групи, а третя цифра стосується дозволів для всіх інших.
У цьому позначенні чисел значення r, w і x мають власне числове значення:
r=4
w=2
x=1
Щоб придумати трицифрове число, потрібно врахувати, які дозволи мати власник, група та користувач, а потім підсумовувати їх значення. Наприклад, скажіть, що я хотів дозволити власнику каталогу дозволу на читання-запис та виконання, і я хотів згрупувати та всіх інших, які щойно читали та виконували дозволи. Я б придумав такі числові значення:
Owner: rwx = 4+2+1=7
Group: r-x = 4+0+1=5 (or just 4+1=5)
Other: r-x = 4+0+1=5 (or just 4+1=5)
Final number = 755
$ chmod 755 filename
Це еквівалент використання наступного:
chmod u=rwx filename
chmod go=rx filename
Більшість папок / каталогів встановлено на 755, щоб дозволити власнику читати й записувати та виконувати, але забороняти писати всім іншим, а файли зазвичай 644, щоб дозволити власникові читати й писати, а просто читати для всіх інших, зверніться до останнього зауважте про відсутність дозволів x з невиконаними файлами - це та сама справа.