Права доступу Linux Mint

Тепер торкнемося одного з найбільш важливих питань, з якими стикається користувач при знайомстві з Linux Мова піде про права доступу Файли в Linux, як, втім, і процеси, створені користувачем, мають двох власників: користувача (user owner) і групу-користувача (group owner) Крім цього визначаються права для інших (other), тобто тих, які не увійшли до перших два списки Кожен користувач може бути членом одразу кількох груп, одна з яких називається первинною (primary), а всі інші – додатковими (supplementary) Наявність груп дає певну гнучкість в організації доступу до конкретного файлу Наприклад, щоб дозволити запис дисків в Linux Mint,

досить додати користувача до групи cdrom Аналогічно можна організувати

спільне використання деякого ресурсу: досить створити нову групу і включити в неї всіх, кому це дійсно необхідно Зазвичай власником

файлу є користувач, який його створив, а власник-група встановлюється рівною первинній групі користувача, який створив файл

ПРИМІТКА

У деяких версіях Unix власник-група успадковується від власника-групи каталогу, в якому створюється файл

Переглянути поточні права можна за допомогою команди ls-l, як це ми робили раніше:

$ Ls-l soundmрЗ

-Rw-r – r-1 grinder grinder 6706501 2010-05-11 00:29 soundmрЗ

У першій позиції показуються права доступу за категоріями що означає

-Rw-r – r -, розберемо трохи нижче У третій і четвертій (тобто grinder grinder)

виводяться власник-користувач і група

Щоб змінити власників файлу, використовується команда chown, що приймає в якості параметрів імя нового власника або групу і список файлів Формат такий:

$ sudo chown new_owner file1 file2 ..

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

$ sudo chown -R user *

У прикладі власником всіх файлів в поточному каталозі і підкаталогах буде користувач user Команда chown дозволяє встановити і групу-власника Для

цього потрібно відразу за імям власника без пробілів та інших знаків поставити двокрапку і написати назву необхідної групи:

$ sudo chown — R sergej:video *

Допускається і такий варіант запису:

$ sudochown — R  :video *

Крім chown для зміни власника групи можна використовувати команду chgrp, синтаксис використання даної команди аналогічний до попередньої:

$ chgrp audio /home/user/*

Права доступу

Володіння файлом визначає ті операції, які той чи інший користувач може вчинити над файлом Найбільш очевидні з них – це зміна власника і групи для деякого файлу Дані операції може проробити суперкористувач і власник файлу (для деяких – лише суперкористувач) Причому групу, якщо ви є власником файлу, можна змінити тільки на свою первинну (за замовчуванням має те ж назву, як і імя відповідного користувача) Всі ці обмеження введені з кількох причин По-перше, для того щоб ніхто не міг підсунути небудь шкідливий файл або скрипт, а по-друге, щоб, якщо на компютері встановлено ліміт дискового простору для конкретного користувача, не можна було перевищити його, просто перевизначивши власника

Крім володіння файлом права доступу визначають базові операції, які можна вчинити над файлом Їх три:

• Read – доступ на читання

• Write – доступ на запис

• eXecute – доступ на виконання

Букви, виділені верхнім регістром, якраз і показуються у виводі команди ls-l в першій позиції Всі зазначені операції встановлюються для кожної з трьох категорій окремо Причому змінити їх може, знову ж таки, тільки владелецпользователь і суперкористувач

Для установки відповідних прав використовується команда chmod Застосовується вона у двох формах: абсолютної, коли ігноруються старі права і встановлюються нові, і відносній, коли до наявних прав додаються нові (або забираються старі) Абсолютна форма припускає завдання прав доступу у вісімковій формі Щоб отримати повний код необхідного режиму файлу, треба просто скласти значення кодів, наведених у табл 41

Таблиця 41 Код команди chmod

12 5

Вісімковий код

Режим файлу

0001

Право на виконання для всіх

0002

Право на запис для всіх

0004

Право на читання для всіх

0010

Право на виконання для групи

0020

Право на запис для групи

0040

Право на читання для групи

0100

Право на виконання для власника

0200

Право на запис для власника

Продовження

Таблиця 41 (продовження)

Вісімковий код

Режим файлу

0400

Право на читання для власника

1000

Включення біта збереження завдання

2000

Якщо файлом, виконуваних включення бита, є SGID

4000

Якщо файлом, виконуваних включення бита, є SUID

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

$   chmod   755   fil e

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

Відносна форма команди вимагає конкретної вказівки класів доступу (і – власник, g – група, про – решта, а – всі разом), відповідні права доступу (r – читання, w – запис, х – виконання) і операцію, яку необхідно провести для списку файлів (+ – додати, – видалити, = – привласнити) для відповідного списку файлів Наприклад, команда

$   sud o   chmod   u+w,    ug+r ,    a+x   fil e

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

До слова, викликавши властивості файлу або каталогу і перейшовши на вкладку Права, ви можете змінити групу і параметри доступу до файлу для тих обєктів, власниками яких ви є (рис 44)

Для каталогів права доступу мають трохи інший зміст Каталог, як говорилося вище, це файл, що містить імена всіх файлів, які є в даному каталозі Так от, право на читання каталогу дозволяє всього лише отримати імена файлів, що знаходяться в даному каталозі А от для того, щоб отримати іншу додаткову інформацію, треба право на виконання Щоб перейти всередину каталогу, необхідно мати право на виконання До речі, через наявність цих особливостей можна домогтися так званого ефекту dark directory, коли створюємо в каталозі файли, які доступні, тільки якщо користувач знає точно імя відповідного файлу Право на запис для каталогу дозволяє змінювати його вміст, тобто видаляти і записувати файли, при цьому права доступу

до конкретного файлу ігноруються

Рис 44 Зміна параметрів доступу до файлу

Права доступу

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

Групу, в яку входить користувач, можна змінити, відредагувавши файл / etc / group Усередині файл складається з ряду рядків виду

cdrom: х: 24: grinde r

тобто в цьому рядку описана група cdrom, в яку входить користувач grinder Щоб додати в цю групу користувача user, просто дописуємо його логін через кому:

cdrom: х: 24: grinder, use r

Цифра 24 означає GID (group id) – цифрове значення групи

ПРИМІТКА

Нова група створюється командою addgroup, обліковий запис – adduser

Крім цього Linux Mint пропонує графічний інструмент управління групами та обліковими записами, який можна викликати з меню Адміністрування •

Користувачі та групи (рис 45)

Рис 45 Управління групами та обліковими записами

З його допомогою можна дуже просто додати новий обліковий запис або групу і встановити членство в групах

Дані про обліковий запис зберігаються у файлі / etc / passwd Формат такий: username: пароль: uid: gid: ui d коментар: домашній каталог: shel l Наприклад:

grinder: х: 1000:1000: grinder,,, :/ home / grinder :/ bin / bas h

ПРИМІТКА

Всі звичайні облікові записи мають UID починаючи з 1000

Тепер дізнаємося, навіщо це потрібно Наприклад, дивимося дані пристрої, що виводить звук:

$ ls -l /dev/dsp

crw-rw—-+ 1 root audio 14, 3 2010-06-10 11:59 /dev/dsp

тобто вважати дані може тільки користувач root і всі, хто входить до групи audio Отже, якщо у вас не програється звук і система видає, що не може отримати доступ, просто перевірте свої права

Справедливості заради потрібно відзначити, що права доступу має не користувач, а процес, запущений ім Не вдаючись у подробиці, поясню, що кожен користувач, зареєструвавшись у системі, отримує свою копію поточного процесу shell, який має встановлені ідентифікатори RID і RGID – реальні ідентифікатори користувача та первинної групи користувача А всі процеси, запущені користувачем (Дочірні), успадковують всі змінні, в тому числі RID і RGID

У нас залишилися нерозглянутими три режими файлу: біт збереження задачі (stisky bit), а також прапори SUID і SGID Зі stisky bit все просто, цей біт вказує на необхідність збереження копії виконується програми в памяті після завершення виконання Даний режим дозволяє заощадити час на запуску програми при частому використанні, але в сучасних системах застосування цього режиму зустрічається рідко

Прапори SUID і SGID дозволяють змінити (розширити) права користувача (групи), що запустив програму, на час її виконання Як вже говорилося, запущене застосування має такі ж права доступу до системних ресурсам, як і користувач, що запустив програму А установки цих прапорів дозволяють призначити права доступу виходячи з прав доступу власника файлу Отже, якщо власником запущеного додатку є root, то будь-який, незалежно від того, хто запустив програму, буде мати права суперкористувача Разом з тим при установці прапора SUID успадковуються права власника файлу, a SGID – групи-власника

Буква s у виведенні команди ls-l означає, що встановлений прапор SUID, а власником файлу є – root, і тепер, хто б не запустив утиліту на виконання, на час роботи програми він тимчасово отримує права суперкористувача, тобто право провести запис в захищений системний файл Природно, утиліта повинна (і робить це) виробляти зміна облікової записи тільки що запустив її користувача Як ви розумієте, вимоги з безпеки до програм, що використовують даний метод, мають бути підвищеними

Для установки бітів SUID / SGI D в символьній формі використовується буква s, sticky bit встановлюється буквою-t, а за допомогою букви l можна встановити

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

ПРИМІТКА Е

Зазвичай sticky bit встановлений в каталозі / tmp Це зроблено для того, щоб видалити файл міг тільки користувач, що створив його При установці біта SGID для каталогу всі новостворені файли будуть тепер успадковувати групу не по користувачеві, що створив його, а по групі – власнику каталогу

Джерело: Яремчук С А Linux Mint на 100% – СПб: Питер, 2011 – 240 е: ил – (Серія «На 100%»)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*