Основи привілеїв linux і використання umask на vps

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

вступ

Привілеї в Linux дозволяють власнику файлу або каталогу обмежувати доступ, ґрунтуючись на відношенні користувача до файлу. По суті, привілеї створюють своєрідну схему управління, яка надає різні рівні доступу для різних користувачів.

Команда umask визначає привілеї, присвоєні за замовчуванням файлам, створеним кожним користувачем. Вона може бути змінена, щоб забезпечити суворі обмеження доступу або, навпаки, пом'якшити привілеї для сценаріїв спільного використання файлів, в залежності від потреб системи і користувача.

Даний посібник пояснює основи привілеїв Linux, а також демонструє переваги правильного конфігурації umask. Також воно коротко розглядає команду chmod як супутній інструмент.

привілеї власника

Перше, що потрібно запам'ятати, щоб зрозуміти права Linux, - дана ОС в основі є багато користувачів.

cat / etc / passwd
root: x: 0: 0: root: / root: / bin / bash
daemon: x: 1: 1: daemon: / usr / sbin: / bin / sh
bin: x: 2: 2: bin: / bin: / bin / sh
sys: x: 3: 3: sys: / dev: / bin / sh
sync: x: 4: 65534: sync: / bin: / bin / sync
games: x: 5: 60: games: / usr / games: / bin / sh
man: x: 6: 12: man: / var / cache / man: / bin / sh
lp: x: 7: 7: lp: / var / spool / lpd: / bin / sh
mail: x: 8: 8: mail: / var / mail: / bin / sh
news: x: 9: 9: news: / var / spool / news: / bin / sh
uucp: x: 10: 10: uucp: / var / spool / uucp: / bin / sh
.

Файл / etc / passwd містить рядки для кожного користувача, створеного в даній ОС. Перше поле кожного рядка - ім'я унікального користувача. Як можна бачити, багато імен користувачів пов'язані з різними сервісами та додатками.

Робота сервісів як окремих користувачів дозволяє управляти доступом сервісів, привласнюючи їм різні призначені для користувача права. Багато програм налаштовані на створення користувача і виконання всіх дій з його допомогою.

привілеї групи

Це виведе всі групи, в яких на даний момент створені учасником. За замовчуванням учасник може належати до однієї або двох групах, а ім'я однієї з них може збігатися з ім'ям даного користувача.

Перше поле кожного рядка - ім'я групи.

Linux дозволяє привласнювати привілеї власника файлу групі. Завдяки цьому можна привласнити призначені для користувача права групі людей, так як тільки один користувач може володіти файлом.

інші привілеї

В даному контексті під «іншими» мається на увазі будь-який користувач, який не володіє файлом і не перебуває в групі, яка володіє файлом.

типи привілеїв

Для каталогів права на читання потрібні, щоб переглядати список (ls) вмісту, права на зміну - щоб змінювати вміст каталогу, права на запуск - щоб змінювати каталоги (cd) всередині каталогу.

Linux являє ці типи привілеїв, використовуючи два окремих символічні позначення: літерні і восьмеричні.

літерні позначення

Буквені позначення легко зрозуміти, вони використовуються декількома поширеними програмами для подання привілеїв.

Кожне право представлено однією буквою:

  • r - право на читання;
  • w - право на зміну;
  • x - право на запуск.

Важливо пам'ятати про те, що буквені позначення прав завжди вказуються в даному порядку. Надане право позначається відповідною буквою. Якщо певний доступ обмежений, це позначається за допомогою тире (-).

Спочатку права надаються власнику файлу, потім групі, і тільки потім іншим користувачам. Таким чином, є три групи з трьох значень.

Команда ls використовує літерні позначення при запуску з опцією «-l» (long-format):

Перше поле виведеного результату являє привілеї файлу.

Ці дані позначаються за допомогою 10 символів. Перший насправді не є значенням привілеї, він вказує на тип файлу (тире для звичайного файлу, d - для каталогу, і т.д.). Наступні 9 символів представляють описані вище права. Три групи, що представляють власника, групу і інших користувачів, кожна зі значеннями, що визначають права на читання, зміна і запуск.

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

вісімкові позначення

Коротшим, але менш зрозумілим способом подання привілеїв є вісімкове позначення.

Для позначення кожного типу прав використовується певне число, таким чином, йому задається чисельне значення:

  • 4 = право на читання;
  • 2 = право на зміну;
  • 1 = право на запуск.

Наприклад, якщо власник файлу має права на читання і зміна, то вони будуть представлені значенням 6 в стовпці власника файлу. Якщо група має тільки право на читання, то це право буде представлено символом 4.

Подібно літерним, восьмеричні позначення може містити додатковий перший символ, який вказує на тип файлу. За ним слідує значення прав власника, групи, потім інших користувачів.

Команда chmod є дуже важливою програмою при використанні вісімкових позначень.

Використання команди Chmod

Найпопулярніший спосіб зміни прав доступу до файлу - використання вісімкового значення за допомогою команди chmod. Щоб продемонструвати роботу команди, створимо порожній файл в домашньому каталозі:

cd
touch testfile

ls -l testfile
-rw-rw-r-- 1 demouser demouser 0 Jul 10 17:23 testfile

Якщо інтерпретувати значення, можна побачити, що власник файлу і група мають права на читання і зміна, а інші користувачі - тільки права на читання.

Якщо перевести це в вісімкову систему числення, власник і група матимуть значення прав 6 (4 для читання, плюс 2 для зміни), а іншим користувачам присвоєно значення 4 (для читання). В кінцевому вигляді права представлені кодоном 664.

Припустимо, цей файл містить bash-скрипт, який потрібно запустити як власник. Тепер потрібно, щоб ніхто взагалі, в тому числі члени групи, не мав права на зміну файлу і навіть на його читання.

Потрібні в даному випадку привілеї можна представити у вигляді літерного позначення таким чином: -rwxr--. Тепер переведіть ці значення в вісімкову систему і змініть права за допомогою chmod:

chmod 740 testfile
ls -l testfile
-rwxr ----- 1 demouser demouser 0 Jul 10 17:23 testfile

Як можна бачити, права були присвоєні вірно.

При необхідності повернути колишні привілеї можна задати chmod наступне:

chmod 664 testfile
ls -l testfile
-rw-rw-r-- 1 demouser demouser 0 Jul 10 17:23 testfile

Установка привілеїв за замовчуванням з Umask

Команда umask визначає права за замовчуванням нових файлів, грунтуючись на «базових» правах, встановлених для каталогів і файлів.

Базові права файлів встановлюються значенням 666, що означає право на читання і зміна для всіх користувачів. Право на запуск не надається за замовчуванням, оскільки більшість файлів не створені для запуску (крім того, привласнення права на запуск може стати причиною проблем безпеки сервера).

Права каталогів за замовчуванням представлені значенням 777, що означає права на читання, зміна і запуск для віх користувачів.

Umask діє шляхом застосування віднімається «маски» з базовими правами, як показано вище. Розглянемо її роботу на прикладі.

Припустимо, потрібно, щоб власник і члени групи-власника мали право на зміну нових каталогів, а інші користувачі - немає; тоді значення прав будет775.
Тепер потрібен триплет, що показує різницю між базовими і потрібними правами. Це число 002.

Отримане число є значенням umask, яке потрібно застосувати. За збігом, це значення команди за замовчуванням в багатьох системах, як можна було помітити при створенні файлу за допомогою команди touch раніше. Спробуйте знову:

touch test2
ls -l test2
-rw-rw-r-- 1 demouser demouser 0 Jul 10 18:30 test2

За допомогою команди umask можна визначити іншу umask.

Щоб убезпечити систему, можна зробити так, щоб користувачі, які не володіють файлом, взагалі не мали ніяких прав. Це можна зробити за допомогою значення umask 077:

umask 077
touch restricted
ls -l restricted
-rw ------- 1 demouser demouser 0 Jul 10 18:33 restricted

Якщо є процес, який створює контент загального користування, то можна встановити повні прав доступу на кожен файл і каталог, створений ним:

umask 000
touch openfile
ls -l openfile
-rw-rw-rw- 1 demouser demouser 0 Jul 10 18:36 openfile

За замовчуванням umask будуть застосовуватися тільки до поточної сесії оболонки. При наступному вході в систему будь-яким новим файлів і каталогів будуть задані вихідні параметри, встановлені дистрибутивом системи.

Щоб налаштування umask залишалися в силі навіть після перезавантаження, їх потрібно внести в файл .bashrc:

Знайдіть вже встановлене значення umask і змініть його. Якщо такого значення поки немає, внесіть в кінці файлу рядок з необхідним значенням:

застереження

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

З іншого боку, надаючи занадто багато прав, система наражається на небезпеку.

Тому рекомендується не редагувати привілеї поза домашнього каталогу в разі, якщо ви не обізнані про наслідки, які можуть виникнути у зв'язку з неправильними конфігураціями.

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

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

Схожі статті