Рекомендуємо, 2024

Вибір Редакції

Розуміння прав доступу до Linux і використання chmod

Протягом останніх кількох місяців я брав курс на Linux, і один з аспектів Linux, який мене завжди бентежить, - це те, як дозволено працювати. Наприклад, коли один раз завантажує файл на мій веб-сервер і отримує помилку, мені повідомив веб-хост, щоб змінити права доступу до файлу до 755.

Я не мав поняття, що це означало, хоча зміна дозволів вирішила проблему. Тепер я зрозумів, що права доступу до Linux не все так складно, потрібно просто зрозуміти систему. У цій статті я розповім про дозволи на Linux на високому рівні і покажу вам, як використовувати команду chmod для зміни дозволів на файли та папки.

Дозволи та рівні Linux

У Linux існують в основному три дозволи, про які, як правило, треба турбуватися: читання, запис і виконання. Всі три з них досить зрозумілі. Тепер, коли ці дозволи застосовуються до файлу, вони застосовуються до рівнів.

У Linux існує три рівні дозволів: власник, група та інше. Власником є ​​користувач, який володіє файлом / папкою, група включає інших користувачів у групі файлу, а інший просто представляє всіх інших користувачів, які не є власником або групою.

Читання, запис і виконання відображаються як символічні символи або вісімкові числа. Наприклад, якщо ви робите ls -l у каталозі з деякими файлами, ви побачите символічне представлення дозволів.

Дозволи записуються наступним чином: перший біт - це тире або буква d. Dash означає, що це файл, а d - каталог. Зверніть увагу, що перший біт також може бути l, якщо ім'я файлу є посиланням. Далі є три групи з трьох бітів. Перший біт у кожній групі призначений для читання, другий - для запису, а третій - для виконання. Перші три біти призначені для власника, другі три біти для групи, а треті три - для інших. Ось більш візуальне пояснення.

Якщо замість листа ви побачите тире, це означає, що власник, група чи всі інші користувачі не мають цього дозволу. У наведеному вище прикладі власник, група та всі інші мають права на читання та виконання.

Якщо ви подивитеся на вивід команди ls -l, ви помітите, що мій текстовий файл практики має такі права:

 -rw-rw-rw- 

Це означає, що кожен має права на читання / запис для файлу. Ось ще один приклад:

 drwxr - r-- 

Дивлячись на перший біт, ми бачимо, що дозволи для каталогу. Власник має права на читання / запис / виконання, але група та інші користувачі мають лише дозвіл на читання.

Вісімкове число

Ось так, як права доступу відображаються в Linux за допомогою символів. Другий спосіб представлення тих самих дозволів - використання восьмеричних чисел. Коли ми використовуємо команду chmod пізніше, ви побачите, що ви можете змінити дозволи, використовуючи символи або вісімкові числа.

Отже, як Linux представляє читання, запис і виконання за допомогою вісімкових чисел? В основному, він просто призначає номер кожному дозволу, як показано нижче.

Дозвіл на читання представлений 4, записується на 2 і виконується 1. Все, що вам потрібно зробити, це додати їх, щоб отримати вісімковий дозвіл. Наприклад, давайте розглянемо приклад вище, де кожен має всі дозволи:

 -rwxrwxrwx 

Власник має rwx, тому ми додамо 4 + 2 + 1, щоб отримати значення 7. Ми робимо те ж саме для групи і те ж саме для іншого. Остаточне вісімкове значення - 777. Давайте подивимося на приклад, де ми лише надавали дозвіл на читання / запис:

 -rw-rw-rw- 

Перше вісімкове число буде 4 + 2, оскільки ми додаємо читання і запис. Другий буде таким же, як і третій вісімковий номер. Тут ми маємо кінцеве вісімкове значення 666.

Тому тепер давайте спробуємо це зробити іншим шляхом. Скажімо, ми хочемо знати, які дозволи 755 ? Ну, це досить легко зрозуміти, якщо ви розбиваєте його на окремі номери. Перше число - 7, яке ми можемо отримати, лише додавши 4 + 2 + 1, тобто власник має дозвіл на читання / запис / виконання. П'ять можна отримати, додавши лише 4 + 1, тобто групу та інших користувачів прочитали та виконали дозволи.

Сподіваюся, це хороше пояснення того, як представляти дозволи в Linux за допомогою вісімкових номерів. Загалом, це досить просто.

Використання chmod для зміни прав доступу

Тепер, коли ми розуміємо, як читати дозволи, давайте поговоримо про те, як ми можемо їх змінити. Найпростішою утилітою для цієї мети є команда chmod. Ось як це працює. Найкращий спосіб пояснити команду - пройти приклад.

Почнемо з дозволів, про які ми говорили вище, а саме:

 -rw-rw-rw- 

Якщо ми хочемо додати дозвіл на виконання, для власника, групи та інших, ми можемо це зробити двома способами. Ми можемо використовувати метод символу або вісімковий метод. Для методу символу ми зробимо наступне, як показано нижче:

Точна команда

 chmod a + x ім'я файлу 

Синтаксис такий: буква або букви, що представляють власника ( u ), групу ( g ), інші ( o ) або всі ( a ), за якими слідує + для додавання дозволів або - для видалення дозволів, а потім для листа для дозвіл ( r для читання, w для запису і x для виконання).

У наведеному вище прикладі я додав дозвіл на виконання для всіх користувачів. Результат, який ви бачите на знімку екрана вище, це x для власника, групи та інших. Тепер, скажімо, я хотів би видалити права на запис і виконання лише для групи та інших користувачів.

Як ви можете бачити тут, я використав наступну команду для цього:

 chmod go-wx ім'я файлу 

Оскільки я хочу змінити дозволи для групи та інших, я використовую літеру g та літеру o . Я хочу видалити дозволи, тому я використовую знак - . Нарешті, я хочу видалити права на запис і виконання, тому я використовую w і x . Ось зручний столик для використання символу:

Отже, це все, що потрібно для використання методу символів. Тепер давайте поговоримо про вісімковий метод, який я вважаю трохи легшим. Вісьменник хороший, тому що ви можете додавати або видаляти дозволи в один раз.

Якщо ми почнемо з наступних дозволів на файл, давайте подивимося, як ми можемо змінити їх за допомогою вісімкового методу:

 -rw-rw-rw- 

Вище можна побачити, що я використав наступну команду:

 ім'я файлу chmod 744 

Це в основному говорить, що власник отримує дозвіл на читання / запис / виконання, а група та інші отримують дозвіл на читання. Як ви можете бачити, легко додавати або видаляти дозволи в одній простій команді. Давайте продовжимо й скажемо, що я хочу знову змінити дозволи.

Тепер я використав наступну команду, знову дуже просту:

 chmod 640 ім'я файлу 

Тут ми надали власнику права на читання / запис, лише дозволу на читання групи, а в іншій групі немає дозволів. Для позначення відсутності дозволів використовується нуль. Досить просто, а?

На закінчення, це дуже простий огляд дозволів Linux, і він може стати набагато складнішим, ніж це, але для початківців це хороше місце для початку. У майбутньому я буду публікувати більше статей з більш розширених дозволів. Якщо у Вас виникли питання, не соромтеся коментувати. Насолоджуйтесь!

Top