Kā darbojas Linux failu tiesības?
Ja jūs kādu laiku izmantojat Linux (un pat OS X), jūs, iespējams, esat saskārušies ar “atļauju” kļūdu. Bet ko tieši viņi ir, un kāpēc tie ir nepieciešami vai noderīgi? Ņemsim iekšējo izskatu.
Lietotāja atļaujas
Dienas laikā datori bija lielas mašīnas, kas bija neticami dārgas. Lai gūtu maksimālu labumu no tiem, tika izveidoti vairāki datoru termināli, kas ļāva daudziem lietotājiem vienlaicīgi darboties. Datu apstrāde un uzglabāšana tika veikta mašīnā, savukārt termināli paši bija nedaudz vairāk kā datu apskates un ievadīšanas līdzeklis. Ja jūs domājat par to, tas ir diezgan daudz kā mēs piekļūstam “mākoņa” datiem; apskatiet Amazon Cloud MP3 sistēmu, Gmail un Dropbox, un jūs pamanīsiet, ka, lai gan izmaiņas var veikt lokāli, viss tiek saglabāts attālināti.
(Attēls: Zenith Z-19 “mēms” termināls; kredīts: ajmexico)
Lai tas darbotos, atsevišķiem lietotājiem ir jābūt kontiem. Viņiem ir jābūt tiem pieejamai glabāšanas zonas daļai, un viņiem ir jāļauj palaist komandas un programmas. Ikvienam tiek piešķirtas īpašas “lietotāja atļaujas”, kas nosaka to, ko viņi var un ko nevar darīt, kur sistēmā, kurā tie darbojas, un kuriem nav piekļuves, un kuru failus viņi var un nevar modificēt. Katrs lietotājs tiek ievietots arī dažādās grupās, kas piešķir vai ierobežo turpmāku piekļuvi.
Piekļuve failam
Šajā viltīgajā daudzlietotāju pasaulē mēs jau esam izveidojuši robežas attiecībā uz to, ko lietotāji var darīt. Bet kā ar to, ko viņi var piekļūt? Nu, katram failam ir atļaujas un īpašnieks. Īpašnieka apzīmējums, kas parasti ir saistīts, kad fails tiek izveidots, paziņo, kurš lietotājs tas pieder, un tikai šis lietotājs var mainīt piekļuves atļaujas.
Linux pasaulē atļaujas tiek iedalītas trīs kategorijās: lasīt, rakstīt un izpildīt. Piekļuve lasīšanai ļauj apskatīt faila saturu, “rakstīt” pieeja ļauj mainīt faila saturu, un “izpildīt” ļauj izpildīt instrukciju kopumu, piemēram, skriptu vai programmu. Katra no šīm kategorijām tiek piemērota dažādām klasēm: lietotājam, grupai un pasaulei. “Lietotājs” nozīmē īpašnieku, “grupa” nozīmē jebkuru lietotāju, kas atrodas tajā pašā grupā kā īpašnieks, un “pasaule” nozīmē ikvienu un ikvienu.
Mapes var arī ierobežot ar šīm atļaujām. Piemēram, varat ļaut citām jūsu grupas personām skatīt direktorijus un failus savā mājas mapē, bet ne ikvienam, kas atrodas ārpus jūsu grupas. Jūs, iespējams, vēlēsieties ierobežot „rakstīt” piekļuvi tikai sev, ja vien jūs nevēlaties strādāt pie kāda kopīga projekta. Varat arī izveidot koplietojamu direktoriju, kas ļauj ikvienam skatīt un mainīt šajā mapē esošos failus.
Atļauju maiņa Ubuntu
GUI
Lai mainītu Ubuntu faila atļaujas, ar peles labo pogu noklikšķiniet uz faila un dodieties uz „Rekvizīti”.
Varat mainīt, vai īpašnieks, grupa vai citi var lasīt un rakstīt, lasīt tikai vai nedarīt neko. Varat arī atzīmēt izvēles rūtiņu, lai atļautu faila izpildi, un tas vienlaikus ļaus to izmantot īpašniekam, grupai un citiem.
Komandrinda
To var izdarīt arī ar komandrindu. Dodieties uz direktoriju, kurā ir faili, un ievadiet šādu komandu, lai skatītu visus saraksta failus:
ls -al
Blakus katram failam un direktorijai būs redzama īpaša sadaļa, kurā izklāstītas tās atļaujas. Tas izskatās šādi:
-rwxrw-r-
The r nozīmē "lasīt", w nozīmē "rakstīt" un x nozīmē “izpildīt”. Katalogi tiks sākti ar “d” nevis “-”. Jūs arī pamanīsiet, ka ir 10 vietas, kurās ir vērtība. Jūs varat ignorēt pirmo, un tad ir 3 komplekti no 3. Pirmais komplekts ir īpašniekam, otrais - grupai, un pēdējais kopums ir par pasauli.
Lai mainītu faila vai direktorijas atļaujas, apskatīsim chmod komandas pamatformu.
chmod [class] [operators] [atļaujas] fails
chmod [ugoa] [+ vai -] [rwx] fails
Sākumā tas var šķist sarežģīti, bet ticiet man, tas ir diezgan vienkārši. Pirmkārt, apskatīsim klases:
- u: tas ir īpašniekam.
- g: Tas attiecas uz grupu.
- o: Tas attiecas uz visiem citiem.
- a: Tas mainīs atļaujas visiem iepriekšminētajiem.
Tālāk operatori:
- +: Plus zīme pievienos sekojošās atļaujas.
- -: Mīnusa zīme noņems sekojošās atļaujas.
Vēl ar mani? Un pēdējā sadaļa ir tāda pati kā tad, kad mēs pārbaudījām faila atļaujas:
- r: ļauj piekļūt lasīšanai.
- w: Ļauj rakstīt piekļuvi.
- x: ļauj izpildīt.
Tagad, ielieciet to kopā. Pieņemsim, ka mums ir fails ar nosaukumu "todo.txt", kam ir šādas atļaujas:
-rw-rw-r-
Tas ir, īpašnieks un grupa var lasīt un rakstīt, un pasaule var tikai lasīt. Mēs vēlamies mainīt šīs atļaujas:
-rwxr-
Tas ir, īpašniekam ir pilnas atļaujas, un grupa var lasīt. To varam izdarīt 3 posmos. Pirmkārt, lietotājam tiks pievienota izpildes atļauja.
chmod u + x todo.txt
Tad mēs noņemsim grupas rakstīšanas atļauju.
chmod g-w todo.txt
Visbeidzot, mēs noņemsim lasīšanas atļaujas visiem pārējiem lietotājiem.
chmod o-r todo.txt
Mēs varam arī tos apvienot vienā komandā, piemēram:
chmod u + x, g-w, o-r todo.txt
Jūs varat redzēt, ka katra sadaļa ir atdalīta ar komatiem un nav atstarpju.
Šeit ir dažas noderīgas atļaujas:
- -rwxr-xr-x: īpašniekam ir pilnas atļaujas, grupa un citi lietotāji var lasīt faila saturu un izpildīt.
- -rwxr-r-: Īpašniekam ir pilnas atļaujas, grupa un citi lietotāji var lasīt tikai failu (noderīgi, ja nevēlaties, lai citi skatītu jūsu failus).
- -rwx-: Īpašniekam ir pilnas atļaujas, visiem pārējiem nav (noderīga personīgiem skriptiem).
- -rw-rw--: īpašnieks un grupa var lasīt un rakstīt (noderīgi sadarbībai ar grupas dalībniekiem).
- -rw-r-r-: Īpašnieks var lasīt un rakstīt, grupa un citi lietotāji var lasīt tikai failu (noderīgs personisko failu glabāšanai koplietojamā tīklā).
- -rw--: īpašnieks var lasīt un rakstīt, visiem pārējiem nav (noderīga personisko failu glabāšanai).
Ir dažas citas lietas, ko varat darīt ar chmod - piemēram, setuid un setgid -, bet viņi ir nedaudz padziļināti, un lielākā daļa lietotāju to tiešām nav nepieciešams izmantot.
Saknes vai super-lietotāja un sistēmas faili
Mūsdienās mēs ne vienmēr lietojam sistēmas, kurās ir vairāki lietotāji. Kāpēc mums joprojām jāuztraucas par atļaujām?
Nu, Unix un tā atvasinājumi - Linux, OS X, cita starpā, arī nošķir lietojumus, ko lieto lietotājs, lietas, ko vada administrators, vai administratora privilēģijas, un lietas, ko vada pati sistēma. Tāpēc sistēmai nepieciešamās lietas ir jāmaina vai jāizmanto administra- tūras privilēģijas. Tādā veidā jūs neko nejauši nejauši neizjaucat.
Ubuntu, lai veiktu izmaiņas sistēmas failos, lietojat “sudo” vai “gksudo”, lai iegūtu administratora privilēģiju ekvivalentu. Citos apgabalos jūs pārslēdzaties uz “root” vai “super-user”, kas efektīvi dara to pašu, līdz jūs atteiksieties.
Ņemiet vērā, ka abos šajos apstākļos faila atļauju maiņa var novest pie to, ka programmas nedarbojas, nejauši mainot faila īpašumtiesības uz root lietotāju (nevis īpašnieku) un padarot sistēmu mazāk drošu (piešķirot vairāk atļauju). Tādā veidā ieteicams nepārmainīt atļaujas failiem - īpaši sistēmas failiem - ja vien tas nav nepieciešams vai jūs zināt, ko jūs darāt.
Ir izveidotas datņu atļaujas, lai nodrošinātu lietotāju drošības sistēmu. Mācīšanās par to, kā viņi strādā, var palīdzēt izveidot pamata koplietošanu daudzlietotāju vidē, aizsargāt “publiskos” failus un dot jums priekšstatu par to, kad kaut kas noiet ar sistēmas failu īpašumtiesībām.
Domāju, ka jūs varat izskaidrot lietas vieglāk? Vai ir korekcija? Vai vēlaties atgādināt par vecajām dienām? Paņemiet pārtraukumu un nododiet savas domas komentāros.