Разрешения Linux Mint, Всичко за поправка и настройка на компютър
Сега нека се докоснем до един от най-важните въпроси, с които се сблъсква потребителят, когато се запознава с Linux. Става дума за права за достъп. Файловете в Linux, както и процесите, създадени от потребителя, имат двама собственици: потребител (собственик на потребител) и потребителска група (собственик на група). Освен това се определят правата за останалите (други), тоест тези, които не са включени в първите два списъка. Всеки потребител може да бъде член на няколко групи наведнъж, една от които се нарича основна (основна), а всички останали - допълнителни (допълнителни). Наличието на групи дава известна гъвкавост при организиране на достъпа до конкретен файл. Например, за да разрешите записването на дискове в Linux Mint,
просто добавете потребителя към групата cdrom. По същия начин човек може да организира
споделяне на някакъв ресурс: достатъчно е да създадете нова група и да включите в нея всички, които наистина се нуждаят от нея. Обикновено притежавани
файл е потребителят, който го е създал, а групата собственик е зададена на основната група на потребителя, който е създал файла.
В някои версии на Unix собственикът на групата се наследява от собственика на групата на директорията, където е създаден файлът.
Можете да видите текущите разрешения с помощта на командата ls -l, както направихме по-рано:
-rw-r–r-1 мелница мелница 6706501 2010-05-11 00:29 sound.mr3
-rw-r–r–, ще анализираме малко по-надолу. В третия и четвъртия (т.е. мелница мелница)
потребителят-собственик и групата се показват.
За да промените собствениците на файл, използвайте командата chown, която приема като параметри името на новия собственик или група и списък с файлове. Форматът е:
$ sudo chown нов_собственик файл1 файл2 ...
Вместо името на файла може да има и имедиректория, но собственикът на файловете в директорията няма да се промени и за да направите това, добавете флага -R. Когато използвате която и да е команда на shell, могат да се използват регулярни изрази, ако има нужда да изберете файлове, които отговарят на определени критерии:
$ sudo chown -R потребител *
В примера всички файлове в текущата директория и поддиректории ще бъдат собственост на потребителя. Командата chown също ви позволява да зададете групата собственици. За
За да направите това, веднага след името на собственика без интервали и други знаци, поставете двоеточие и напишете името на необходимата група:
$ sudo chown -R sergej:видео *
Допуска се и следният вариант:
$ sudochown - R :видео *.
В допълнение към chown, можете да използвате командата chgrp, за да промените собственика на група, синтаксисът за използване на тази команда е подобен на предишния:
$ chgrp audio /home/user/*
Собствеността на файла определя операциите, които потребителят може да извърши върху файл. Най-очевидният от тях е промяната на собственика и групата за някакъв файл. Тези операции могат да се извършват от суперпотребителя и собственика на файла (за някои само суперпотребителя). Освен това групата, ако сте собственик на файла, може да бъде променена само на вашата основна (по подразбиране тя има същото име като името на съответния потребител). Всички тези ограничения се въвеждат по няколко причини. Първо, така че никой да не може да измъкне злонамерен файл или скрипт, и второ, така че ако компютърът има ограничение на дисковото пространство за конкретен потребител, то не може да бъде надвишено просто чрез предефиниране на собственика.
В допълнение към собствеността върху файла, разрешенията определят основните операции, които могат да се извършват върху файл. Има три от тях:
•Четене — достъп за четене;
• Write - достъп за запис;
• eXecute - изпълнение на достъп.
Командата chmod се използва за задаване на подходящите разрешения. Използва се в две форми: абсолютна, когато старите права се игнорират и се установяват нови, и относителна, когато нови права се добавят към съществуващите права (или старите се премахват). Абсолютната форма предполага, че разрешенията са дадени в осмична форма. За да получите пълния код на необходимия файлов режим, трябва само да добавите стойностите на кодовете, дадени в таблицата. 4.1.
Таблица 4.1. chmod команден код
Право на изпълнение за всеки
Права за запис за всички
Правото на четене за всеки
Изпълнете надясно за група
Разрешение за групово писане
Групово разрешение за четене
Право на изпълнение за собственик
Разрешение за писане за собственик
Таблица 4.1 (продължение)
Разрешение за четене за собственика
Активиране на бит за запазване на задача
Ако битовият файл е активиран, е SGID
Ако файлът, който е активиран, е SUID
Така командата
$ chmod 755 файл
задава следните права за достъп: ако това е изпълним файл, тогава всеки (т.е. собственикът, групата и други) има право да го стартира за изпълнение и да чете съдържанието, а собственикът допълнително има право да променя съдържанието - да пише.
Относителната форма на командата изисква специфична индикация на класовете за достъп (u - собственик, g - група, o - останалите и - всички заедно), съответните права за достъп (r - четене, w - запис, x - изпълнение) и операцията, която трябва да се извърши върху списъка с файлове (+ - добавяне, - изтриване, = - присвояване) за съответния списък с файлове. Например,екип
$ sud o chmod u+w, ug+r, a+x файл
Между другото, като извикате свойствата на файл или директория и отидете в раздела Разрешения, можете да промените настройките за група и достъп до файлове за тези обекти, които притежавате (фиг. 4.4).
За директориите разрешенията имат малко по-различно значение. Директория, както бе споменато по-горе, е файл, съдържащ имената на всички файлове, които са в тази директория. И така, правото да четете директория ви позволява само да получите имената на файловете, намиращи се в тази директория. Но за да получите друга допълнителна информация, имате нужда от право на изпълнение. За да навигирате в директория, трябва да имате разрешение за изпълнение. Между другото, поради наличието на тези функции е възможно да се постигне така нареченият ефект на тъмна директория, когато създаваме файлове в директорията, които са достъпни само ако потребителят знае точното име на съответния файл. Правото за запис за директория ви позволява да променяте нейното съдържание, тоест да изтривате и записвате файлове, докато правата за достъп
към конкретен файл се игнорират.
Ориз. 4.4. Промяна на опциите за споделяне на файлове
Забележете още нещо. Правата за достъп се проверяват в следния ред: суперпотребител, собственик, група собственици и други. Следователно, ако вие, като собственик, сте забравили да зададете разрешение за писане за себе си, но го зададете за всички останали, тогава не очаквайте да можете да пишете нещо в него, дори ако сте член на групата, просто защото всички останали могат, а вие сте собственикът. Системата, когато поиска необходимия ресурс, ще провери кой го е поискал в горната последователност и ще разреши само разрешени операции, допълнителна проверка на правата просто няма да бъде извършена.
група, вкоито потребителят въвежда, могат да бъдат променени чрез редактиране на /etc/group. Вътре файлът се състои от поредица от редове на формуляра
т.е. този ред описва групата cdrom, която включва потребителския grinder. За да добавите потребителя към тази група, просто добавете неговото име за вход, разделено със запетаи:
Числото 24 означава GID (group id) - цифровата стойност на групата.
В допълнение, Linux Mint предлага графичен инструмент за управление на групи и акаунти, който може да бъде достъпен от менюто Администриране •
Потребители и групи (Фигура 4.5).
Ориз. 4.5. Управление на групи и акаунти
Това прави много лесно добавянето на нов акаунт или група и задаването на членство в група.
Информацията за акаунта се съхранява във файла /etc/passwd. Форматът е: потребителско име: парола: uid: gid: ui d коментар: начална директория: shell l Например:
мелница:x:1000:1000:мелница. /home/grinder:/bin/bas h
Всички обикновени акаунти имат UID, започващи от 1000.
Сега нека разберем защо е необходимо това. Например, разглеждаме данните на устройството, което извежда звук:
crw-rw—-+ 1 root аудио 14, 3 2010-06-10 11:59 /dev/dsp
това означава, че само root потребителят и всички в аудио групата могат да четат данните. Следователно, ако не възпроизвеждате звук и системата казва, че няма достъп, просто проверете правата си.
Честно казано, трябва да се отбележи, че не потребителят има права за достъп, а стартираният от него процес. Без да навлизам в подробности, ще обясня, че всеки потребител, след като се регистрира в системата, получава своето копие на текущия процес на обвивката, който има зададени идентификатори RID и RGID - истинските идентификатори на потребителя и основната група на потребителя. И всички процесистартирани от потребителя (децата) наследяват всички променливи, включително RID и RGID.
Оставихме три файлови режима неразгледани: битът за запазване на задачата (stisky bit), както и флаговете SUID и SGID. С бита stisky всичко е просто, този бит показва необходимостта от запазване на копие на изпълняваната програма в паметта след приключване на изпълнението. Този режим ви позволява да спестите време при стартиране на програмата с честа употреба, но в съвременните системи използването на този режим е рядко.
Флаговете SUID и SGID ви позволяват да промените (разширите) правата на потребителя (групата), който е стартирал програмата, за времето на нейното изпълнение. Както вече споменахме, работещо приложение има същите права за достъп до системните ресурси като потребителя, който е стартирал програмата. Задаването на тези флагове ви позволява да зададете права за достъп въз основа на правата за достъп на собственика на файла. Следователно, ако собственикът на работещо приложение е root, тогава всеки, независимо от това кой е стартирал това приложение, ще има права на суперпотребител. Въпреки това, когато флагът SUID е зададен, правата на собственика на файла се наследяват и SGID на групата собственици.
Буквата s в изхода на командата ls -l означава, че флагът SUID е зададен и файлът е собственост на root и сега всеки, който стартира помощната програма за изпълнение, временно получава права на суперпотребител за продължителността на програмата, тоест правото да пише в защитен системен файл. Естествено, помощната програма трябва (и променя) само акаунта на потребителя, който я е стартирал. Както разбирате, изискванията за сигурност за програмите, използващи този метод, трябва да бъдат увеличени.
s се използва за задаване на битовете SUID/SGI D в символна форма, лепкавият бит се задава с -t имогат да се задават букви l
заключване на файл за елиминиране на възможни конфликти, когато множество процеси се опитват да работят върху един и същ файл.
Залепващият бит обикновено се инсталира в директорията /tmp. Това се прави така, че само потребителят, който го е създал, да може да изтрие файла. Като зададете SGID бита на директория, всички новосъздадени файлове вече ще наследяват групата не от потребителя, който я е създал, а от групата, която притежава директорията.
Източник: Yaremchuk S. A. Linux Mint 100%. - Санкт Петербург: Питър, 2011. - 240 д.: ил. - (Серия "100%").