filsystemer bruker tillatelser og muligheter for å regulere nivået av interaksjon som system prosesser kan ha med filer og kataloger.

Advarsel: Når den brukes med hensyn til sikkerhet, rettigheter og attributter bare forsvare seg mot angrep lansert fra oppstartet system. For å beskytte lagrede data fra angriperne med fysisk tilgang til maskinen, må man også gjennomføre data-på-resten kryptering.,

Visning tillatelser

Bruke ls-kommandoen er -l alternativet hvis du vil vise tillatelsene (eller fil-modus) er stilt til innholdet i en katalog, for eksempel:

$ ls -l /sti/til/katalog

Den første kolonnen er det vi må fokusere på., Taking an example value of drwxrwxrwx+, the meaning of each character is explained in the following tables:

d rwx rwx rwx +
The file type, technically not part of its permissions. See info ls -n "What information is listed" for an explanation of the possible values., tillatelsene som eier har over filen, forklart nedenfor. tillatelsene som konsernet har over filen, forklart nedenfor. tillatelsene at alle andre brukere har over filen, forklart nedenfor. Et enkelt tegn som angir om en alternativ tilgang metoden gjelder kun for filen. Når denne karakteren er en plass, det er ingen alternative tilgang metoden. En . tegn angir en fil med et sikkerhets-sammenheng, men ingen andre alternative tilgang metoden., En fil med en annen kombinasjon av alternative tilgang metoder er merket med en + karakter, for eksempel i tilfelle av tilgangskontroll.,

Hver av de tre tillatelse treklanger (rwx i eksemplet ovenfor) kan bestå av følgende tegn:

Tegn Effekt på filer Effekt på kataloger
Les tillatelse (første tegnet) - – filen ikke kunne leses., – katalogen innholdet kan ikke vises.
r – filen kan leses. – katalogen innholdet kan bli vist.
Skriv tillatelse (andre tegn) - – filen kan ikke endres. – katalogen innholdet kan ikke endres.
w – filen kan bli endret., – katalogen innholdet kan bli endret (opprette nye filer eller mapper, endre navn på eller slette eksisterende filer eller mapper); krever utføre tillatelse til å være stille, ellers er dette tillatelse ikke har noen effekt.
– Utfør tillatelse (tredje tegn) - – filen kan ikke utføres. – katalogen kan ikke nås med cd.
x – filen kan utføres., – katalogen kan nås med cd; dette er bare tillatelse bit som i praksis kan bli vurdert til å være «arvet» fra stamfar kataloger, faktisk hvis en hvilken som helst mappe på banen ikke har x bit set, den endelige filen eller mappen kan ikke nås enten er, uavhengig av sine tillatelser, se path_resolution(7) for mer informasjon.,
s Den setuid bit når den blir funnet i brukerens triade; den setgid bit når den er funnet i gruppen triade; det er ikke funnet i andre triade; det innebærer også at x er satt.
S Samme som s, men x er ikke stille; sjeldne på vanlige filer, og ubrukelig på mapper.,
t The sticky bit; it can only be found in the others triad; it also implies that x is set.
T Same as t, but x is not set; rare on regular files, and useless on folders.

See info Coreutils -n "Mode Structure" and chmod(1) for more details.,

Tips: Du kan vise tillatelser langs en vei med namei -l path.

Eksempler

La oss se på noen eksempler for å klargjøre:

drwx------ 6 archie users 4096 Jul 5 17:37 Documents

Archie har full tilgang til Dokumenter-mappen. Han kan vise, opprette filer og endre navn, slette filer i Dokumenter, uavhengig av filrettigheter. Hans evne til å få tilgang til en fil, avhenger av fil ‘ s tillatelse.

dr-x------ 6 archie users 4096 Jul 5 17:37 Documents

Archie har full tilgang, med mindre han kan ikke opprette, endre navn, slette en fil., Han kan vise filene og (hvis filen har tillatelse utdanner) kan få tilgang til en eksisterende fil i Dokumenter.

d-wx------ 6 archie users 4096 Jul 5 17:37 Documents

Archie kan ikke gjøre ‘ls’ i Dokumenter, men hvis han vet navnet på en eksisterende fil, så han kan vise, gi nytt navn til, slette eller (hvis filen har tillatelse utdanner ham) få tilgang til den. Også han er i stand til å opprette nye filer.

d--x------ 6 archie users 4096 Jul 5 17:37 Documents

Archie er bare i stand til (hvis filen har tillatelse utdanner ham) få tilgang til disse filene i Dokumenter som han kjenner. Han kan ikke liste allerede eksisterende filer eller opprette, endre navn, slette noen av dem.,

Du bør huske på at vi utdype katalog tillatelser, og det har ingenting å gjøre med individuelle tillatelser fil. Når du oppretter en ny fil det er katalogen som endres. Det er derfor du trenger skrivetilgang til katalogen.

La oss se på et annet eksempel, denne gang av en fil, ikke en katalog:

-rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

Her kan vi se det første brevet er ikke d, men -. Så vi vet at det er en fil, ikke en katalog., Neste eier tillatelsene er rw- så eieren har evnen til å lese og skrive, men ikke utføre. Dette kan virke merkelig at eieren ikke har alle tre tillatelser, men x tillatelse er ikke nødvendig, så det er en tekst/data-filen, for å bli lest av et tekstredigeringsprogram, for eksempel Gedit, EMACS, eller programvare som R, og ikke en kjørbar i sin egen rett (hvis det finnes noe sånt som python-programmering-koden så er det meget vel kan være)., Konsernets tillatelser er satt til r--, slik at gruppen har evnen til å lese filen, men ikke skrive/redigere den på noen som helst måte — det er egentlig som å sette noe å lese-bare. Vi kan se at den samme-tillatelser gjelde for alle andre også.

Endre tillatelser

chmod er en kommando i Linux og andre Unix-lignende operativsystemer som gjør det mulig å endre tillatelser (eller tilgang modus) av en fil eller en katalog.

Tekst metode

Hvis du vil endre tillatelser — eller access-modus — for en fil, kan du bruke kommandoen chmod i en terminal., Nedenfor er kommandoen generelle struktur:

chmod who=permissions filename

Der who er noen fra et utvalg av brev, hver dvs. som blir gitt tillatelse. De er som følger:

  • u: brukeren som eier filen.
  • g: brukeren gruppe som filen tilhører.
  • o: andre brukere, dvs. alle andre.
  • a: alle de ovennevnte; bruk denne i stedet for å skrive ugo.,

tillatelsene er den samme som nevnt i #Vise tillatelser (r, w og x).

Nå har du en titt på noen eksempler ved hjelp av denne kommandoen., Tenk deg at du ble veldig beskyttende av Dokumenter-mappe og ønsket å nekte alle, men deg selv tillatelse til å lese, skrive og utføre (eller i dette tilfellet søk/se) i det:

Før: drwxr-xr-x 6 archie users 4096 Jul 5 17:37 Documents

$ chmod g= Documents$ chmod o= Documents

Etter: drwx------ 6 archie users 4096 Jul 6 17:32 Documents

Her fordi du ønsker å nekte tillatelser, kan du ikke sette noen bokstaver etter = der tillatelsene ville bli inngått. Nå kan du se at bare eieren tillatelsene er rwx og alle andre tillatelser er -.,

Dette kan gjenopprettes med:

Før: drwx------ 6 archie users 4096 Jul 6 17:32 Documents

$ chmod g=rx Documents$ chmod o=rx Documents

Etter: drwxr-xr-x 6 archie users 4096 Jul 6 17:32 Documents

I neste eksempel, du vil gi lese-og tillatelse til å kjøre gruppen, og andre brukere, så du setter bokstavene for tillatelser (r og x etter = uten mellomrom.

Du kan forenkle dette for å sette mer enn en who bokstav i den samme kommandoen, e.,g:

$ chmod go=rx Documents
Merk: Det spiller ingen rolle i hvilken rekkefølge du sette who bokstaver eller tillatelse bokstaver i en chmod kommando: du kunne ha chmod go=rx file eller chmod og=xr file. Det er alt det samme.,ider et annet eksempel, la oss anta at du ønsker å endre en foobar fil, slik at du har lese-og skriverettigheter, og andre brukere i gruppen users som kan være kolleger som arbeider på foobar, kan også lese og skrive til det, men at andre brukere kan bare lese det:

Før: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod g=rw foobar

Etter: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

Dette er akkurat som i det første eksemplet, men med en fil, ikke en katalog, og du gi skrivetilgang (akkurat slik som å gi et eksempel på å gi hver tillatelse).,

Tekst metode snarveier

chmod-kommandoen kan legge til og trekke fra tillatelser fra et eksisterende sett med + eller - i stedet for =. Dette er forskjellig fra de ovennevnte kommandoer, som i hovedsak re-skrive tillatelser (for eksempel for å endre en tillatelse fra r-- til rw-, du fortsatt trenger å inkludere r samt w etter = i kommandoen chmod gang., Hvis du gikk glipp r, ville det ta bort r tillatelse etter hvert som de blir re-skrevet med =. Ved hjelp av + og - unngår dette ved å legge til eller ta bort fra dagens sett med tillatelser).,>Før: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod a-w foobar

Etter: -r--r--r-- 1 archie users 5120 Jun 27 08:28 foobar

En annen snarvei er de spesielle X modus: dette er ikke en vanlig fil-modus, men det er ofte brukt i forbindelse med -R alternativet for å angi den kjørbare bit bare for kataloger, og la det være uendret for vanlige filer, for eksempel:

$ chmod -R a+rX ./data/

Kopiere tillatelser

Det er mulig å fortelle chmod til å kopiere tillatelser fra en klasse, sier eier, og gi de samme tillatelser til en gruppe eller til alle., For å gjøre dette, i stedet for å sette r, w, eller x etter =, sagt på en annen som brev. e.g:

Før: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod g=u foobar

Etter: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

Denne kommandoen i hovedsak kan oversettes til «endre tillatelsene for gruppe (g=), til å være det samme som å eie bruker (=u). Merk at du ikke kan kopiere et sett med tillatelser, samt gi nye f.eks.,:

$ chmod g=wu foobar

I det tilfelle chmod kaste en feil.

Numerisk metode

chmod kan også angi tillatelser ved hjelp av tall.

ved Hjelp av tall, er en annen metode som lar deg redigere tillatelsene for alle tre eier, gruppe og andre på samme tid, så vel som setuid, setgid, og klebrig biter. Denne grunnleggende strukturen i koden er dette:

$ chmod xxx filename

Der xxx er en 3-sifret tall der hvert tall kan være alt fra 0 til 7., Det første sifferet gjelder tillatelser for eieren, det andre sifferet gjelder tillatelser for gruppen, og den tredje siffer gjelder tillatelser for alle andre.

I dette nummeret notasjon, verdier r, w, og x har sitt eget nummer verdi:

r=4w=2x=1

for Å komme opp med en 3-sifrede nummeret som du trenger for å vurdere hvilke tillatelser du ønsker eier, gruppe, og alle andre skal ha, og deretter totale verdier opp., du vil gruppen og alle andre til å ha bare lese og kjøretillatelser, du ville komme opp med tallverdier slik:

  • Eier: rwx=4+2+1=7
  • Gruppe: r-x=4+0+1=5
  • Andre: r-x=4+0+1=5
$ chmod 755 filename

Dette er tilsvarende med følgende:

$ chmod u=rwx filename$ chmod go=rx filename

for Å vise eksisterende tillatelser på en fil eller mappe i numerisk form, bruk stat(1) kommando:

$ stat -c %a filename

Hvor %a alternativet angir utdataformatet i numerisk form.,

de Fleste mapper og kataloger er satt til 755 for å tillate lesing, skriving og kjøring til eieren, men nekte å skrive til alle andre, og filene er normalt 644 for å tillate lesing og skriving for eieren, men bare å lese for alle andre; se siste note mangel på x tillatelser med ikke-kjørbare filer: det er det samme her.,

for Å se dette i aksjon med eksempler vurdere forrige eksempel, som har vært brukt, men med denne numeriske metoden som brukes i stedet:

Før: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod 664 foobar

Etter: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

Hvis dette var en kjørbar tallet ville være 774 hvis du ønsket å gi kjørbare tillatelse til eier og gruppe. Alternativt, hvis du ønsket alle å bare ha lest tillatelse tallet ville være 444., Behandling av r 4, w 2, og x 1 er trolig den enkleste måten å regne ut den numeriske verdier for å bruke chmod xxx filename, men det er også en binær metode, der hver tillatelse har et binært tall, og deretter som i sin tur er konvertert til et tall. Det er litt mer tvetydig, men her er inkludert for fullstendighet.,

bør du Vurdere denne tillatelsen sett:

-rwxr-xr--

Hvis du putter en 1 under hver tillatelse er gitt, og en 0 for hver en som ikke er gitt, ville resultatet bli noe som dette:

-rwxrwxr-x 111111101

Du kan deretter konvertere disse binære tall:

000=0 100=4001=1 101=5010=2 110=6011=3 111=7

verdien av det ovenfor, vil derfor være 775.

Anser vi ønsket å fjerne den skrivbare tillatelse fra gruppen:

-rwxr-xr-x 111101101

Den verdien som ville derfor være 755 og du ville bruke chmod 755 filename for å fjerne den skrivbare tillatelse., Du vil merke at du får den samme tre-sifret tall uansett hvilken metode du bruker. Enten du bruker teksten eller tallene vil avhenge av personlig smak og skrive hastighet. Når du ønsker å gjenopprette en mappe eller en fil til standardtillatelsene for eksempel lese og skrive (og kjøre) tillatelse til eieren, men nekte tillatelse til å skrive til alle andre, kan det være raskere å bruke chmod 755/644 filename. Men hvis du endrer tillatelsene til noe ut av normen, kan det være enklere og raskere å bruke teksten metode, i motsetning til å prøve å konvertere det til tall, som kan føre til en feil., Det kan hevdes at det ikke er noen reell betydelig forskjell i hastigheten av metode for en bruker som bare har behov for å bruke chmod på anledning.

Du kan også bruke den numeriske metoden for å angi setuid, setgid, og sticky biter med fire sifre.

setuid=4setgid=2sticky=1

For eksempel, chmod 2777 filename vil sette lese – /skrive – /kjørbare biter for alle, og også aktivere setgid bit.

Bulk chmod

Vanligvis kataloger og filer som ikke skal ha de samme rettigheter., Hvis det er nødvendig for å bulk endre en katalog treet, bruker finn for å velge endre det ene eller det andre.

for Å chmod bare kataloger for å 755:

$ find directory -type d -exec chmod 755 {} +

for Å chmod bare filer til 644:

$ find directory -type f -exec chmod 644 {} +

Endre eierskap

chown endringer eier av en fil eller katalog, som er raskere og enklere enn å endre tillatelser i noen tilfeller.

Tenk deg følgende eksempel, å lage en ny partisjon med GParted for sikkerhetskopiering av data. Gparted gjør alt dette som root, slik at alt tilhører rot som standard., Dette er vel og bra, men når det kommer til skriving av data til det montert partisjon, kan tillatelse nektes for vanlige brukere.

brw-rw---- 1 root disk 8, 9 Jul 6 16:02 sda9drwxr-xr-x 5 root root 4096 Jul 6 16:01 Backup

Som du kan se enheten i /dev er eid av root, som er mount sted (/media/Backup)., For å endre eier av mount sted kan man gjøre følgende:

Før: drwxr-xr-x 5 root root 4096 Jul 6 16:01 Backup

# chown archie /media/Backup

Etter: drwxr-xr-x 5 archie root 4096 Jul 6 16:01 Backup

Nå partisjonen kan ha data som skrives til det ved den nye eieren, archie, uten å endre tillatelser (som eier triade allerede hadde rwx tillatelser).

Merk:

  • chown alltid tømmer setuid og setgid biter.
  • Ikke-root brukere ikke kan bruke chown for å «gi bort» – filer som de eier til en annen bruker.,

Access Control Lists

tilgangskontroll gir en ekstra, mer fleksibel tillatelse mekanisme for filsystemer ved å tillate slik angir du tillatelser for en hvilken som helst bruker eller gruppe til en hvilken som helst fil.

Umask

umask-verktøyet brukes til å kontrollere fil-oppretting-modus maske, som bestemmer den første verdien av filen tillatelse biter for nyopprettede filer.,

– Fil attributter

Bortsett fra fil-modus biter som styrer brukeren og gruppen lese, skrive og eksekvere tillatelser, flere filsystem-støtte filattributtene som gjør det mulig for ytterligere tilpasning av tillatte fil operasjoner. Denne delen beskriver noen av disse egenskapene og hvordan å arbeide med dem.

Advarsel: standard attributter er ikke bevart av cp, rsync, og andre lignende programmer.,

chattr og lsattr

For ext2 og ext3 filsystemer, den e2fsprogs pakken inneholder programmer lsattr og chattr at listen, og endre en fil attributter, henholdsvis.,/li>

  • u: undeletable
  • A: ingen atid oppdateringer
  • C: ingen kopi på skrive
  • D: synkron katalog oppdateringer
  • S: synkron oppdateringer
  • T: toppen av katalogen hierarki
  • For eksempel, hvis du ønsker å sette uforanderlige litt på noen filen, bruker du følgende kommando:

    # chattr +i /path/to/file

    for Å fjerne et attributt på en fil bare endre + til -.,

    Utvidede attributter

    Fra xattr(7): «Utvidede attributtene er navn:verdi-parene som er forbundet med permanent filer og mapper». Det er fire utvidet attributt klasser: sikkerhet, system, pålitelige og brukeren.

    Advarsel: standard, utvidede attributtene er ikke bevart av cp, rsync, og andre lignende programmer, kan du se #Bevare utvidede attributter.

    Utvidede attributtene er også brukt til å angi Evner.

    Bruker utvidede attributter

    Bruker utvidede attributter kan brukes til å lagre vilkårlig informasjon om en fil., To create one:

    $ setfattr -n user.checksum -v "3baf9ebce4c664ca8d9e5f6314fb47fb" foo.txt

    Use getfattr to display extended attributes:

    $ getfattr -d foo.txt
    # file: foo.txtuser.,3de557528">
    --preserve=mode,ownership,timestamps,xattr mv preserves by default1 tar --xattrs for creation and extraction bsdtar -p for extraction rsync --xattrs
    1. mv silently discards extended attributes when the target file system does not support them.,

    for Å bevare utvidede attributter med tekst redaktører du trenger for å konfigurere dem til å avkorte filer på å spare i stedet for å bruke navn(2).

    Tips og triks

    Bevare rot

    for --preserve-root flagg for å hindre chmod fra å handle med undermapper på /. Dette kan for eksempel hindre en fra å fjerne den kjørbare bit totalt og dermed bryte systemet. For å bruke dette flagget hver gang, satt det i et alias. Se også .,

    Se også:

    • wikipedia:Chattr
    • Linux-Fil Tillatelse Forvirring
    • Linux-Fil Tillatelse Forvirring del 2
    • wikipedia:Utvidede attributter#Linux
    • Utvidede attributter: det gode, det ikke er så gode, de dårlige.
    • Sikkerhetskopiering og gjenoppretting av fil tillatelser i Linux
    • Hvorfor er «chmod -R-777 /» destruktiv?

    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *