Introduktion til OS X Adgangskontrollister (ACL'er)

De fleste UNIX-systemer bruger standard POSIX-tilladelser (Portable Operating System Interface), når de administrerer adgang til filer. Standard POSIX-tilladelser er uafhængige af hvilket filsystem de bruges på (forudsat at systemet understøtter dem), og enhver, der er bekendt med Linux eller UNIX, vil være bekendt med dem, da de er standardmåden til at indstille meget grundlæggende adgangskontrol til filer og mapper.

I det væsentlige kan du definere ejeren af ​​en fil eller et bibliotek, den gruppe, der ejer den, og "andet" (alle, der ikke er den ejer, eller et medlem af den ejer gruppe). Du kan yderligere definere, om hver af disse har læst, skrevet eller udført tilladelse til filen eller biblioteket. Med en fil betyder disse tilladelser, at brugeren kan læse filen, skrive til den, ændre eller slette den eller udføre den som et program. For mapper betyder disse tilladelser, at brugeren kan læse indholdet af et bibliotek (men ikke nødvendigvis indholdet af filerne i biblioteket), kan skrive til kataloget (oprette og slette filer) eller køre (tillader brugeren at gå gennem det katalogtræ for at få adgang til filer eller undermapper, selvom det ikke alene giver tilladelse til at se indholdet af kataloget).

De fleste operativsystemer understøtter også en eller anden form for adgangskontrollister (eller ACL'er). Ofte afhænger dette også af, hvilket filsystem der er i brug, eller hvilken implementering der kan bruges på hvilket filsystem (de to primære ACL-typer er POSIX.1e ACL'er og NFSv4 ACL'er). Mac OS X er ikke anderledes, og som med OS X 10.4 har den understøttet NFSv4 ACL'er, når de bruges med HFS + -filsystemet. Brug af disse ACL'er på OS X er ganske enkle; du bruger måske endda dem uden at vide det.

ACL'er består af ACE'er (adgangskontrolindgange), og hver ACL kan indeholde mere end en ACE. ACL'er giver meget mere fleksibilitet og finkornet kontrol over tilladelser til filer og mapper end standard POSIX-tilladelser. For eksempel inkluderer nogle af de funktioner, ACL'er giver filer, læse-, skrive-, eksekverings- og tilføjelsestilladelser ( vedhæftning giver kun mulighed for at tilføje til en eksisterende fil, ikke ændre eksisterende indhold eller fjerne det). Nogle funktioner til mapper inkluderer oversigt over poster, søgning af poster, tilføjelse af en fil, tilføjelse af en undermappe eller sletning af indhold. En anden dejlig funktion ved ACL'er kaldes "arv", hvor du kan indstille en arvstilladelse, så et katalogs filindhold kan arve et sæt ACL'er, mens kataloger arver et andet sæt.

Som du kan se, er ACL'er meget magtfulde. For eksempel, hvis du havde et bibliotek, der indeholdt udviklere manualer, kan du muligvis gøre biblioteket skrivbart til udviklere og skrivebeskyttet til salgsfolk. Du vil måske også give praktikanter adgang til nogle af filerne, men du vil ikke gøre dem til en del af udvikleren eller salgsgruppen, fordi disse to grupper har adgang til for mange andre filer. I dette scenarie kan du muligvis gøre biblioteket ejet af en bestemt bruger eller rod (administrator) bruger og gruppeejet af "udviklere" -gruppen med filer og mapper, der kan skrives af både ejer og gruppe. Du vil derefter bruge ACL'er til at anvende skrivebeskyttet tilladelser til bestemte filer til gruppen "salg", og kunne også bruge ACL'er til at anvende skrivebeskyttet adgang til de eksplicitte brugere, der er praktikanter (i modsætning til at oprette en ny gruppe for praktikanter) . Med standard POSIX-tilladelser ville dette ikke være let muligt.

Hvis du har brugt kommandoen Finder Get Info i en fil eller bibliotek, har du sandsynligvis bemærket ruden Deling og tilladelser nederst. Som standard viser det standardindstillingerne for POSIX-tilladelser:

Disse tilladelser på kommandolinjen ville svare til et ejerskab af "vdanen: personale" og tilstand 0750 (eller 0640, hvis dette var en fil). Dette kan ses på kommandolinjen som:

 drwxr-xr-x 2 vdanen personale 68 mar 11 22:30 Ny 

For at tilføje ACL'er til dette bibliotek kan du enten bruge chown- og chmod-kommandoerne eller Finder. Brug af chown / chmod giver meget mere fleksibilitet, da Finder begrænser dig ganske lidt og gør visse antagelser for dig. For at give adgang til dette bibliotek til medlemmer af administratorgruppen som Read Only, ville du f.eks. Klikke på knappen + i ruden Deling og tilladelser, vælge bruger eller gruppe og derefter indstille det relevante privilegium:

Medlemmerne af admin-gruppen har skrivebeskyttet adgang til denne mappe. Ikke meget svært at indstille i Finder, er det? Vi kan også observere ACL'erne på kommandolinjen ved hjælp af -le-kontakten til ls-kommandoen:

 % / bin / ls -le 
 i alt 288 
 drwxr-xr-x + 2 vdanen personale 68 mar 11 22:30 Ny 
 0: gruppe: admin tilladt liste, søgning, readattr, readextattr, readsecurity 

Finder gav flere tilladelser end bare "listen" eller "søg" -tilladelserne; det giver også administratorgruppen mulighed for at læse udvidede attributter og ACL'er.

For at opnå det samme på kommandolinjen, skal du bruge:

 % mkdir Ny2 
 % / bin / chmod + a "admin tillad læse, readattr, readextattr, readsecurity" New2 
 % / bin / ls -le 
 i alt 288 
 drwxr-xr-x + 2 vdanen personale 68 mar 11 23:06 Ny2 
 0: gruppe: admin tilladt liste, readattr, readextattr, readsecurity 
 % / bin / chmod + a "admin tillad søgning" New2 
 % / bin / ls -le 
 i alt 288 
 drwxr-xr-x + 2 vdanen personale 68 mar 11 23:06 Ny2 
 0: gruppe: admin tillade liste, søgning, readattr, readextattr, readsecurity 

Som du kan se, gik den oprindelige chmod-kommando glip af en ACL; det er let nok at tilføje en ny post senere. Og hvis du har brug for at fjerne en, er det også let:

 % / bin / chmod -a "admin tillad søgning" New2 

Administratorgruppen har nu ikke længere søgetilladelser i dette bibliotek. Du vil bemærke, at jeg i begge tilfælde specificerer en eksplicit sti til kommandoerne ls og chmod. Dette skyldes, at jeg har Fink installeret, og GNU-værktøjerne, der er installeret via Fink, ikke forstår OS X ACL'er, og disse kommandoer fungerer ikke med dem (standard PATH på systemet sætter / sw / bin før / bin /, så når jeg skriver "ls", er det "/ sw / bin / ls", der udføres i stedet for "/ bin / ls").

Mac OS X Server (og formodentlig også Lion) har en mere sofistikeret GUI-frontend til at manipulere ACL'er end Finder, men for de fleste basale opgaver er Finder tilstrækkelig. Det håndterer dog ikke arv, hvilket er en skam. Det giver dig mulighed for at anvende de tilladelser, der er indstillet i et bibliotek til filer og mapper inden for det ved at bruge menuen "Anvend på lukkede poster ..." fra gear-rullemenuen, der uden tvivl opnår noget lignende; Hvis du dog ændrer mappetilladelser, skal du anvende dem igen, og også hvis du tilføjede nye mapper eller filer osv.

Chmod manpage (”man chmod”) giver en meget god forklaring af ACL'er og hvordan man anvender dem. ACE'er i en ACL overholder rækkefølge, så du kan bruge chown til at specificere, hvor en specifik ACE skal placeres inden for ACL, og selvfølgelig kan du få en meget mere specifik, end du kunne med Finder.

ACL'er på OS X fungerer meget på samme måde som ACL'er på andre POSIX-systemer, inklusive Linux. Tilladelserne kan afvige noget, ligesom mekanismen til implementering og styring af dem, men fordelene er identiske. Denne ACL-understøttelse i OS X er også kompatibel med visse versioner af Windows og Windows Server.

UPDATE: Dette indlæg er redigeret for at rette flere forkerte anvendelser af chown til chmod. - Ed.

© Copyright 2021 | mobilegn.com