Hur många av oss har haft behovet av att "begränsa åtkomst" till filerna i en viss katalog / mapp eller så behöver vi helt enkelt hindra vissa från att visa, radera eller ändra innehållet i en viss fil? Mer än en, eller hur? Kan vi uppnå det i vår älskade pingvin? Svaret är: Såklart ja : D
Inledning
Många av oss som kommer från Windows var vana vid att hantera detta "problem" på ett helt annat sätt, för att uppnå detta mål var vi tvungna att tillgripa oortodoxa "tekniker", som att dölja filen genom dess attribut, flytta vår information till den mest avlägsna platsen i vårt team (inom 20,000 XNUMX mappar) för att försöka avskräcka vår "fiende" XD, ändra eller eliminera filtillägget, eller den mest "vanliga" praxis, ladda ner ett program som låter oss "stänga" vår katalog bakom en trevlig dialogruta som ber oss om ett lösenord för att komma åt det. Vi hade ett mycket bättre alternativ? Nej.
Jag är mycket ledsen för mina "Windolero" -vänner (jag säger det med stor tillgivenhet så att ingen blir förolämpad, ok ?;)), Men idag måste jag lära mig lite med Windows: P, eftersom jag kommer att förklara varför detta operativsystem inte tillåter infödd denna funktionalitet.
Hur många av er har märkt att när vi sitter bakom en ”Windows” -dator (även om den inte är vår) blir vi automatiskt ägare till allt som datorn innehåller (bilder, dokument, program etc.)? Vad menar jag? Tja, helt enkelt genom att ta "kontroll över Windows" kan vi kopiera, flytta, ta bort, skapa, öppna eller ändra mappar och filer åt vänster och höger, oavsett om vi är "ägare" av denna information eller inte. Detta speglar ett stort fel i operativsystemets säkerhet, eller hur? Tja, allt beror på att Microsofts operativsystem inte var designade från grunden för att vara fleranvändare. När versionerna av MS-DOS och vissa versioner av Windows släpptes, litade de helt och hållet på att slutanvändaren skulle vara ansvarig för att "skydda" sin respektive dator så att ingen annan användare hade tillgång till den information som lagrades i den ... bli naiv ¬ ¬. Nu WinUsers vänner, du vet redan varför det finns detta "mysterium": D.
Å andra sidan är GNU / Linux, som är ett system som är utformat i grunden för nätverkande, säkerheten för den information som vi lagrar på våra datorer (för att inte tala om servrarna) är grundläggande, eftersom många användare har eller kan ha tillgång till en del av mjukvaruresurserna (både applikationer och information) och hårdvara som hanteras på dessa datorer.
Nu kan vi se varför behovet av ett tillståndssystem? Låt oss gå in på ämnet;).
I GNU / Linux fastställs behörigheter eller rättigheter som användare kan ha över vissa filer som finns i den i tre tydligt differentierade nivåer. Dessa tre nivåer är som följer:
<° Ägarens tillstånd.
<° Gruppbehörigheter.
<° Behörigheter för övriga användare (eller även kallade "de andra").
För att vara tydlig med dessa begrepp finns det i nätverkssystem (som pingvinen) alltid figuren som administratör, superanvändare eller root. Denna administratör ansvarar för att skapa och ta bort användare samt fastställa de behörigheter som var och en av dem har i systemet. Dessa behörigheter fastställs både för varje användares HOME-katalog och för de kataloger och filer som administratören beslutar att användaren kan komma åt.
Ägartillstånd
Ägaren är användaren som genererar eller skapar en fil / mapp i sin arbetskatalog (HEM) eller i någon annan katalog som de har rättigheter till. Varje användare har möjlighet att som standard skapa de filer de vill ha i sin arbetskatalog. I princip är han och bara han den som har tillgång till informationen i filerna och katalogerna i sin HEM-katalog.
Gruppbehörigheter
Det mest normala är att varje användare tillhör en arbetsgrupp. På det här sättet, när en grupp hanteras, hanteras alla användare som tillhör den. Med andra ord är det lättare att integrera flera användare i en grupp som vissa behörigheter beviljas i systemet än att tilldela behörigheterna oberoende till varje användare.
Behörigheter för övriga användare
Slutligen kan behörigheterna för filerna i någon katalog också innehas av andra användare som inte tillhör den arbetsgrupp där filen i fråga är integrerad. Med andra ord kallas användare som inte tillhör den arbetsgrupp där filen finns, men som tillhör andra arbetsgrupper, andra systemanvändare.
Mycket trevligt, men hur kan jag identifiera allt detta? Enkelt, öppna en terminal och gör följande:
$ ls -l
Obs: De är små bokstäver "L"
Det kommer att se ut ungefär som följande:
Som du kan se visar eller "listar" detta kommando innehållet i mitt HEM, det vi har att göra med är de röda och gröna linjerna. Den röda rutan visar oss vem som är ägare och den gröna rutan anger vilken grupp var och en av de filer och mappar som tidigare listats tillhör. I det här fallet kallas både ägaren och gruppen "Perseus", men de kan mycket väl ha stött på en annan grupp som "försäljning". För resten, oroa dig inte för nu, vi kommer att se senare: D.
Typer av behörigheter i GNU / Linux
Innan vi lär oss hur behörigheter ställs in i GNU / Linux måste vi veta hur de olika typerna av filer som systemet kan ha kan differentieras.
Varje fil i GNU / Linux identifieras med 10 tecken som kallas mask. Av dessa tio tecken hänvisar det första (från vänster till höger) till filtypen. Följande 10, från vänster till höger och i block om 9, hänvisar till behörigheterna som beviljas respektive ägaren, gruppen och resten eller andra. En skärmdump för att visa alla dessa saker:
Det första tecknet i filerna kan vara följande:
| Ursäkta mig | identifierar |
| - | Arkiv |
| d | katalog |
| b | Specialblockfil (Specialfiler för enheter) |
| c | Specialteckenfil (tty-enhet, skrivare ...) |
| l | Länkfil eller länk (mjuk / symbolisk länk) |
| p | Kanal specialfil (rör eller rör) |
De kommande nio tecknen är behörigheterna till systemanvändarna. Var tredje tecken, ägare, grupp och andra användarbehörigheter hänvisas.
Tecknen som definierar dessa behörigheter är följande:
| Ursäkta mig | identifierar |
| - | Utan tillåtelse |
| r | Läs tillstånd |
| w | Skriv tillstånd |
| x | Tillstånd för utförande |
Filbehörigheter
<° Läsning: det låter dig i princip se innehållet i filen.
<° Skriv: låter dig ändra innehållet i filen.
<° Utförande: låter filen köras som om det vore ett körbart program.
Katalogbehörigheter
<° Läs: Låter dig veta vilka filer och kataloger katalogen som har denna behörighet innehåller.
<° Skriv: låter dig skapa filer i katalogen, antingen vanliga filer eller nya kataloger. Du kan radera kataloger, kopiera filer i katalogen, flytta, byta namn, etc.
<° Exekvering: låter dig gå över katalogen för att kunna granska dess innehåll, kopiera filer från eller till den. Om du också har läs- och skrivbehörigheter kan du utföra alla möjliga åtgärder på filer och kataloger.
Obs: Om du inte har exekveringsbehörighet kommer vi inte att kunna komma åt den katalogen (även om vi använder kommandot "cd", eftersom denna åtgärd kommer att nekas. Det gör det också möjligt att avgränsa användningen av en katalog som en del av en sökväg (som när vi passerar sökvägen till en fil som finns i den katalogen som referens. Antag att vi vill kopiera filen "X.ogg" som finns i folder "/ home / perseo / Z" - för vilken mappen "Z" inte har exekveringsbehörighet - skulle vi göra följande:
$ cp /home/perseo/Z/X.ogg /home/perseo/Y/
med detta får vi ett felmeddelande som säger att vi inte har tillräckliga behörigheter för att komma åt filen: D). Om körningstillståndet för en katalog är avaktiverat kommer du att kunna se dess innehåll (om du har läsbehörighet), men du kommer inte att kunna komma åt något av objekten i den, eftersom den här katalogen är en del av det nödvändiga sökväg för att lösa platsen för dina objekt.
Behörighetshantering i GNU / Linux
Hittills har vi sett vad behörigheter är för i GNU / Linux, nedan ser vi hur man tilldelar eller subtraherar behörigheter eller rättigheter.
Innan vi börjar måste vi komma ihåg att när vi registrerar eller skapar en användare i systemet, ger vi dem automatiskt behörighet. Dessa behörigheter kommer naturligtvis inte att vara fullständiga, det vill säga att användarna normalt inte har samma behörigheter och rättigheter som superanvändaren. När användaren skapas genererar systemet som standard användarens behörigheter för filhantering och kataloghantering. Uppenbarligen kan dessa ändras av administratören, men systemet genererar mer eller mindre giltiga behörigheter för de flesta av de operationer som varje användare kommer att utföra i sin katalog, sina filer och i andra användares kataloger och filer. Dessa är i allmänhet följande behörigheter:
<° För filer: - rw-r-- r--
<° För kataloger: - rwx rwx rwx
Obs: de är inte samma behörigheter för alla GNU / Linux-distributioner.
Dessa behörigheter tillåter oss att skapa, kopiera och ta bort filer, skapa nya kataloger etc. Låt oss se allt detta i praktiken: D:
Låt oss ta filen "Advanced CSS.pdf" som ett exempel. Låt oss observera att det ser ut som följer: -rw-r--r-- ... Avancerad CSS.pdf. Låt oss ta en närmare titt.
| Tipo | användaren | Grupp | Övriga användare (andra) | Filnamn |
| - | rw | r-- | r-- | Avancerad CSS.pdf |
Detta betyder att:
<° Typ: Arkiv
<° Användaren kan: Läs (visa innehåll) och skriv (modifiera) filen.
<° Den grupp som användaren tillhör kan: Läs (endast) filen.
<° Andra användare kan: Läs (endast) filen.
För de nyfikna som just nu undrar vad de andra fälten i listan som erhållits av ls -l hänvisar till, här är svaret:
Om du vill veta mer om de hårda och mjuka / symboliska länkarna, här är förklaringen och deras diferencias.
Tja vänner, vi kommer till den mest intressanta och tunga delen av ämnet i fråga ...
Tillståndstilldelning
Kommandot chmod ("Ändra läge") gör det möjligt att ändra masken så att mer eller mindre operationer kan utföras på filer eller kataloger, med andra ord, med chmod kan du ta bort eller ta bort rättigheter för varje typ av användare. Om typen av användare som vi vill ta bort, sätta eller tilldela behörigheter inte anges, vad som kommer att hända när operationen utförs är att påverka alla användare samtidigt.
Det grundläggande att komma ihåg är att vi ger eller tar bort behörigheter på dessa nivåer:
| Parameter | Nivå | beskrivning |
| u | ägare | ägare till filen eller katalogen |
| g | grupp | grupp som filen tillhör |
| o | Otros | alla andra användare som inte är ägare eller grupp |
Tillståndstyper:
| Ursäkta mig | identifierar |
| r | Läs tillstånd |
| w | Skriv tillstånd |
| x | Tillstånd för utförande |
Ge ägaren tillstånd att köra:
$ chmod u+x komodo.sh
Ta bort körbehörighet från alla användare:
$ chmod -x komodo.sh
Ge läs- och skrivbehörighet till andra användare:
$ chmod o+r+w komodo.sh
Lämna endast läsbehörighet till den grupp som filen tillhör:
$ chmod g+r-w-x komodo.sh
Behörigheter i oktalt numeriskt format
Det finns ett annat sätt att använda chmod-kommandot som för många användare är "bekvämare", även om det på förhand är något mer komplicerat att förstå ¬¬.
Kombinationen av värden för varje användargrupp bildar ett oktalt tal, "x" -biten är 20 som är 1, w-biten är 21 som är 2, r-biten är 22 som är 4, vi har då:
<° r = 4
<° w = 2
<° x = 1
Kombinationen av bitar på eller av i varje grupp ger åtta möjliga kombinationer av värden, det vill säga summan av bitarna på:
| Ursäkta mig | Oktalvärde | beskrivning |
| - - - | 0 | du har inget tillstånd |
| - - x | 1 | endast utföra tillstånd |
| - w - | 2 | skriv endast tillstånd |
| - wx | 3 | skriva och utföra behörigheter |
| r - - | 4 | läs endast tillstånd |
| r - x | 5 | läsa och utföra behörigheter |
| rw - | 6 | läs- och skrivbehörigheter |
| rwx | 7 | alla behörigheter ställs in, läs, skriv och kör |
När användar-, grupp- och andra behörigheter kombineras får du ett tresiffrigt nummer som utgör fil- eller katalogbehörigheter. Exempel:
| Ursäkta mig | valor | beskrivning |
| rw- --- -- | 600 | Ägaren har läs- och skrivbehörighet |
| rwx --x --x | 711 | Ägaren läser, skriver och kör, gruppen och andra kör bara |
| rwx rx rx | 755 | Läs-, skriv- och exekveringsägaren, gruppen och andra kan läsa och köra filen |
| rwx rwx rwx | 777 | Filen kan läsas, skrivas och köras av vem som helst |
| r-- --- -- | 400 | Endast ägaren kan läsa filen, men varken kan ändra eller utföra den och naturligtvis kan varken gruppen eller andra göra något i den. |
| rw-r-- --- | 640 | Ägare kan läsa och skriva, grupp kan läsa filer och andra kan inte göra någonting |
Särskilda behörigheter
Det finns fortfarande andra typer av tillstånd att överväga. Dessa är SUID (Set User ID) behörighetsbit, SGID (Set Group ID) behörighetsbit och sticky bit (sticky bit).
setuid
Setuid-biten kan tilldelas körbara filer och tillåter att när en användare kör filen, förvärvar processen behörigheterna för ägaren till den körda filen. Det tydligaste exemplet på en körbar fil med setuid-biten är:
$ su
Vi kan se att biten tilldelas som "s" i följande fångst:
För att tilldela denna bit till en fil skulle det vara:
$ chmod u+s /bin/su
Och för att ta bort det:
$ chmod u-s /bin/su
Obs: Vi måste använda den här biten med yttersta försiktighet eftersom den kan orsaka en eskalering av privilegier i vårt system ¬¬.
setgid
Setid-biten tillåter förvärv av behörigheterna för den grupp som tilldelats filen, den kan också tilldelas till kataloger. Detta kommer att vara mycket användbart när flera användare i samma grupp behöver arbeta med resurser inom samma katalog.
För att tilldela denna bit gör vi följande:
$ chmod g+s /carpeta_compartida
Och för att ta bort det:
$ chmod g-s /carpeta_compartida
klibbig
Denna bit tilldelas vanligtvis i kataloger som alla användare har tillgång till, och gör det möjligt att förhindra att en användare tar bort filer / kataloger till en annan användare i den katalogen, eftersom alla har skrivbehörighet.
Vi kan se att biten tilldelas som "t" i följande fångst:
För att tilldela denna bit gör vi följande:
$ chmod o+t /tmp
Och för att ta bort det:
$ chmod o-t /tmp
Tja vänner, nu vet du hur du bättre kan skydda din information, med detta hoppas jag att du slutar leta efter alternativ till Folder Lock o Mappvakt att i GNU / Linux behöver vi dem inte alls XD.
P.S: Just den här artikeln efterfrågades av en väns kusins granne XD, jag hoppas att jag har svarat på dina frågor...