Hvor mange af os har haft behov for at "begrænse adgangen" til filerne i en bestemt mappe / mappe, eller vi er simpelthen nødt til at forhindre nogle i at se, slette eller ændre indholdet i en bestemt fil? Mere end en, ikke? Kan vi opnå det i vores elskede pingvin? Svaret er: Selvfølgelig ja D.
Indledning
Mange af os, der kommer fra Windows, var vant til at håndtere dette "problem" på en meget anden måde. For at nå dette mål måtte vi ty til uortodokse "teknikker", såsom at skjule filen gennem dens attributter, flytte vores information til det mest afsidesliggende sted i vores team (inden for 20,000 mapper) for at forsøge at fraråde vores "fjende" XD, ændre eller eliminere filtypen, eller den mest "almindelige" praksis, downloade et program, der giver os mulighed for at "lukke" vores bibliotek bag en dejlig dialogboks, der beder os om et kodeord for at få adgang til det. Vi havde et meget bedre alternativ? Ingen.
Jeg er meget ked af mine "Windoleros" venner (jeg siger det med stor hengivenhed, så ingen bliver fornærmet, ok ?;)), men i dag er jeg nødt til at lære mig selv lidt med Windows: P, da jeg vil forklare hvorfor dette OS tillader ikke native denne funktionalitet.
Hvor mange af jer har bemærket, at når vi sidder bag en "Windows" -computer (selvom det ikke er vores), bliver vi automatisk ejere af alt, hvad computeren indeholder (billeder, dokumenter, programmer osv.)? Hvad mener jeg? Ved blot at tage "kontrol over Windows" kan vi kopiere, flytte, slette, oprette, åbne eller ændre mapper og filer til venstre og højre, uanset om vi er "ejere" af disse oplysninger eller ej. Dette afspejler en stor sikkerhedsfejl i operativsystemet, ikke? Nå, alt dette skyldes, at Microsofts operativsystemer ikke var designet fra bunden til at være flerbruger. Da versionerne af MS-DOS og nogle versioner af Windows blev frigivet, stolede de fuldt ud på, at slutbrugeren ville være ansvarlig for at "beskytte" deres respektive computer, så ingen andre brugere havde adgang til de oplysninger, der er gemt i den ... gå naive ¬ ¬. Nu WinUsers venner, du ved hvorfor der er dette "mysterium": D.
På den anden side er GNU / Linux, som er et system, der er grundlæggende designet til netværk, sikkerheden af de oplysninger, som vi gemmer på vores computere (for ikke at nævne på serverne) afgørende, da mange brugere har eller muligvis har adgang til del af softwareressourcerne (både applikationer og information) og hardware, der administreres på disse computere.
Nu kan vi se, hvorfor behovet for et tilladelsessystem? Lad os komme ind på emnet;).
I GNU / Linux er tilladelser eller rettigheder, som brugerne kan have over bestemte filer indeholdt i det, etableret i tre klart differentierede niveauer. Disse tre niveauer er som følger:
<° Ejerens tilladelser.
<° Gruppetilladelser.
<° Tilladelser fra resten af brugerne (eller også kaldet "de andre").
For at være klar over disse begreber er der i netværkssystemer (såsom pingvinen) altid figuren af administrator, superbruger eller root. Denne administrator har ansvaret for at oprette og fjerne brugere samt etablere de privilegier, som hver af dem har i systemet. Disse rettigheder oprettes både for hver brugers HOME-bibliotek og for de mapper og filer, som administratoren beslutter, at brugeren skal have adgang til.
Ejertilladelser
Ejeren er den bruger, der genererer eller opretter en fil / mappe i deres arbejdskatalog (HJEM) eller i et andet katalog, som de har rettigheder til. Hver bruger har beføjelse til som standard at oprette de filer, de ønsker i deres arbejdsmappe. I princippet er han og kun han den, der har adgang til oplysningerne i de filer og mapper, der er i din HOME-bibliotek.
Gruppetilladelser
Det mest normale er, at hver bruger tilhører en arbejdsgruppe. På denne måde administreres alle brugere, der hører til den, når en gruppe administreres. Med andre ord er det lettere at integrere flere brugere i en gruppe, der får visse rettigheder i systemet, end at tildele rettighederne uafhængigt til hver bruger.
Tilladelser fra resten af brugerne
Endelig kan rettighederne til filerne i et hvilket som helst bibliotek også indehaves af andre brugere, der ikke tilhører den arbejdsgruppe, hvor den pågældende fil er integreret. Med andre ord kaldes brugere, der ikke tilhører den arbejdsgruppe, hvor filen er placeret, men som tilhører andre arbejdsgrupper, andre systembrugere.
Meget flot, men hvordan kan jeg identificere alt dette? Enkelt, åbn en terminal og gør følgende:
$ ls -l
Bemærk: De er små bogstaver "L"
Det ser ud som følgende:
Som du kan se, viser eller "viser" denne kommando indholdet i mit HJEM, hvad vi har at gøre med er de røde og grønne linjer. Den røde boks viser os, hvem der er ejer, og den grønne boks angiver, hvilken gruppe hver af de ovennævnte filer og mapper tilhører. I dette tilfælde kaldes både ejeren og gruppen "Perseus", men de kan godt have stødt på en anden gruppe såsom "salg". For resten skal du ikke bekymre dig for nu, vi vil se senere: D.
Tilladelsestyper i GNU / Linux
Før vi lærer, hvordan tilladelser indstilles i GNU / Linux, skal vi vide, hvordan de forskellige typer filer, som systemet kan have, kan differentieres.
Hver fil i GNU / Linux identificeres med 10 tegn, som kaldes Máscara. Af disse 10 tegn henviser den første (fra venstre mod højre) til filtypen. De følgende 9, fra venstre mod højre og i blokke på 3, henviser til de tilladelser, der gives henholdsvis til ejeren, gruppen og resten eller andre. Et screenshot til at demonstrere alle disse ting:
Filernes første tegn kan være følgende:
| Undskyld mig | identificerer |
| - | Arkiv |
| d | Vejviser |
| b | Speciel blokfil (enhedsspecielle filer) |
| c | Specialtegnfil (tty-enhed, printer ...) |
| l | Linkfil eller link (blødt / symbolsk link) |
| p | Kanal specialfil (rør eller rør) |
De næste ni tegn er tilladelserne til systembrugere. Hvert tredje tegn henvises til ejeren, gruppen og andre brugertilladelser.
De tegn, der definerer disse tilladelser, er følgende:
| Undskyld mig | identificerer |
| - | Uden tilladelse |
| r | Læs tilladelse |
| w | Skriv tilladelse |
| x | Tilladelse til udførelse |
Filtilladelser
<° Læsning: det giver dig grundlæggende mulighed for at se indholdet af filen.
<° Skriv: giver dig mulighed for at ændre indholdet af filen.
<° Udførelse: gør det muligt for filen at blive udført som om det var et eksekverbart program.
Directory tilladelser
<° Læs: Det gør det muligt at vide, hvilke filer og mapper kataloget, der har denne tilladelse, indeholder.
<° Skriv: giver dig mulighed for at oprette filer i biblioteket, enten almindelige filer eller nye mapper. Du kan slette mapper, kopiere filer i biblioteket, flytte, omdøbe osv.
<° Udførelse: giver dig mulighed for at gå gennem biblioteket for at kunne undersøge dets indhold, kopiere filer fra eller til det. Hvis du også har læse- og skrivetilladelser, kan du udføre alle mulige handlinger på filer og mapper.
Bemærk: Hvis du ikke har eksekveringstilladelse, har vi ikke adgang til den mappe (selvom vi bruger kommandoen "cd"), da denne handling nægtes. Det giver også mulighed for at afgrænse brugen af en mappe som en del af en sti (f.eks. Når vi passerer stien til en fil, der findes i den mappe som en reference. Antag, at vi vil kopiere filen "X.ogg", som er i mappen " / home / perseo / Z ”- som mappen“ Z ”ikke har eksekveringstilladelse for - gør vi følgende:
$ cp /home/perseo/Z/X.ogg /home/perseo/Y/
at få en fejlmeddelelse med dette, der fortæller os, at vi ikke har tilstrækkelige tilladelser til at få adgang til filen: D). Hvis eksekveringstilladelsen til et bibliotek er deaktiveret, vil du kunne se dets indhold (hvis du har læst tilladelse), men du vil ikke være i stand til at få adgang til nogen af objekterne i det, fordi denne mappe er en del af det nødvendige sti til at finde ud af placeringen af dine objekter.
Tilladelsesstyring i GNU / Linux
Indtil videre har vi set, hvad tilladelser er til i GNU / Linux, nedenfor vil vi se, hvordan man tildeler eller trækker tilladelser eller rettigheder.
Før vi starter, skal vi huske på, at når vi registrerer eller opretter en bruger i systemet, giver vi dem automatisk privilegier. Disse privilegier vil selvfølgelig ikke være samlede, dvs. at brugere normalt ikke har de samme tilladelser og rettigheder som superbrugeren. Når brugeren oprettes, genererer systemet som standard brugerens rettigheder til filadministration og mappestyring. Disse kan åbenbart ændres af administratoren, men systemet genererer mere eller mindre gyldige privilegier for de fleste af de operationer, som hver bruger udfører på deres bibliotek, deres filer og i andre brugeres kataloger og filer. Disse er generelt følgende tilladelser:
<° For filer: - rw-r-- r--
<° For mapper: - rwx rwx rwx
Bemærk: de er ikke de samme tilladelser for alle GNU / Linux-distributioner.
Disse privilegier giver os mulighed for at oprette, kopiere og slette filer, oprette nye mapper osv. Lad os se alt dette i praksis: D:
Lad os tage "Advanced CSS.pdf" -filen som et eksempel. Bemærk, at det ser ud som følger: -rw-r--r-- ... Avanceret CSS.pdf. Lad os se nærmere på.
| Tipo | bruger | Group | Resten af brugere (andre) | Filnavn |
| - | RW | r-- | r-- | Avanceret CSS.pdf |
Dette betyder, at:
<° Type: Arkiv
<° Brugeren kan: Læs (se indhold) og skriv (rediger) filen.
<° Den gruppe, som brugeren tilhører, kan: Læs (kun) filen.
<° Andre brugere kan: Læs (kun) filen.
For de nysgerrige, der i øjeblikket undrer sig over, hvad de andre felter på listen opnået af ls -l henviser til, er svaret her:
Hvis du vil vide mere om de hårde og bløde / symbolske links, her er forklaringen og deres diferencias.
Nå venner, vi kommer til den mest interessante og tunge del af det pågældende emne ...
Tilladelsesopgave
Kommandoen chmod ("Skift tilstand") tillader ændring af masken, så flere eller færre handlinger kan udføres på filer eller mapper, med andre ord, med chmod kan du fjerne eller fjerne rettigheder for hver type bruger. Hvis typen af bruger, som vi vil fjerne, sætte eller tildele privilegier, ikke er specificeret, hvad der sker, når operationen udføres, er at påvirke alle brugere samtidigt.
Den grundlæggende ting at huske er, at vi giver eller fjerner tilladelser på disse niveauer:
| Parameter | Nivel | beskrivelse |
| u | ejer | ejer af filen eller biblioteket |
| g | gruppe | gruppe, som filen tilhører |
| o | andre | alle andre brugere, der ikke er ejeren eller gruppen |
Tilladelsestyper:
| Undskyld mig | identificerer |
| r | Læs tilladelse |
| w | Skriv tilladelse |
| x | Tilladelse til udførelse |
Giv ejeren tilladelse til at udføre:
$ chmod u+x komodo.sh
Fjern eksekveringstilladelse fra alle brugere:
$ chmod -x komodo.sh
Giv læse- og skrivetilladelse til andre brugere:
$ chmod o+r+w komodo.sh
Efterlad kun læst tilladelse til den gruppe, som filen tilhører:
$ chmod g+r-w-x komodo.sh
Tilladelser i oktalt numerisk format
Der er en anden måde at bruge kommandoen chmod på, som for mange brugere er “mere behagelig”, selvom det på forhånd er noget mere komplekst at forstå ¬¬.
Kombinationen af værdier for hver brugergruppe danner et oktalt tal, “x” bit er 20, der er 1, w bit er 21, der er 2, r bit er 22, der er 4, vi har derefter:
<° r = 4
<° w = 2
<° x = 1
Kombinationen af bits til eller fra i hver gruppe giver otte mulige kombinationer af værdier, det vil sige summen af bitene på:
| Undskyld mig | Oktal værdi | beskrivelse |
| - - - | 0 | du har ikke nogen tilladelse |
| - - x | 1 | kun udføre tilladelse |
| - w - | 2 | skriv kun tilladelse |
| - wx | 3 | skrive og udføre tilladelser |
| r - - | 4 | kun læse tilladelse |
| r - x | 5 | læse og udføre tilladelser |
| rw - | 6 | læse- og skrivetilladelser |
| rwx | 7 | alle tilladelser er indstillet, læst, skrevet og udført |
Når du kombinerer bruger-, gruppe- og andre tilladelser, får du et trecifret nummer, der udgør fil- eller bibliotektilladelser. Eksempler:
| Undskyld mig | værdi | beskrivelse |
| rw- --- -— | 600 | Ejeren har læse- og skrivetilladelser |
| rwx --x --x | 711 | Ejeren læser, skriver og udfører, gruppen og andre udfører kun |
| rwx rx rx | 755 | Den læse, skrive og udføre ejer, gruppe og andre kan læse og udføre filen |
| rwx rwx rwx | 777 | Filen kan læses, skrives og udføres af alle |
| r-- --- -— | 400 | Kun ejeren kan læse filen, men hverken kan ændre eller udføre den, og selvfølgelig kan hverken gruppen eller andre gøre noget i den. |
| rw-r-- --- | 640 | Ejerbruger kan læse og skrive, gruppe kan læse fil, og andre kan ikke gøre noget |
Særlige tilladelser
Der er stadig andre typer tilladelser at overveje. Disse er tilladelsesbiten SUID (Set User ID), tilladelsesbiten SGID (Set Group ID) og den sticky bit (sticky bit).
setuid
Setuid-biten kan tildeles eksekverbare filer og tillader, at når en bruger udfører filen, får processen tilladelser fra ejeren af den udførte fil. Det klareste eksempel på en eksekverbar fil med setuid-bit er:
$ su
Vi kan se, at biten er tildelt som "s" i følgende optagelse:
For at tildele denne bit til en fil ville det være:
$ chmod u+s /bin/su
Og for at fjerne det:
$ chmod u-s /bin/su
Bemærk: Vi skal bruge denne bit med ekstrem forsigtighed, da det kan forårsage en eskalering af privilegier i vores system ¬¬.
setgid
Setid-bit gør det muligt at erhverve privilegierne for den gruppe, der er tildelt filen, den kan også tildeles til mapper. Dette vil være meget nyttigt, når flere brugere i samme gruppe har brug for at arbejde med ressourcer i samme bibliotek.
For at tildele denne bit gør vi følgende:
$ chmod g+s /carpeta_compartida
Og for at fjerne det:
$ chmod g-s /carpeta_compartida
klæbrig
Denne bit tildeles normalt i mapper, som alle brugere har adgang til, og gør det muligt at forhindre en bruger i at slette filer / mapper til en anden bruger i den pågældende mappe, da alle har skrivetilladelse.
Vi kan se, at biten er tildelt som "t" i følgende optagelse:
For at tildele denne bit gør vi følgende:
$ chmod o+t /tmp
Og for at fjerne det:
$ chmod o-t /tmp
Nå venner, nu ved du, hvordan du bedre kan beskytte dine oplysninger, med dette håber jeg, at du holder op med at se efter alternativer til mappe Lock o Mappevagt at i GNU / Linux har vi slet ikke brug for dem XD.
P.S: Denne særlige artikel blev efterspurgt af en vens fætters nabo XD, jeg håber, jeg har besvaret dine spørgsmål...