filsystemer bruger tilladelser og attributter til at regulere niveauet for interaktion, som systemprocesser kan have med filer og mapper.

advarsel: når tilladelser og attributter bruges til sikkerhedsmæssige formål, forsvarer de kun mod angreb, der er lanceret fra det opstartede system. For at beskytte de lagrede data mod angribere med fysisk adgang til maskinen skal man også implementere data-at-rest-kryptering.,

Visning tilladelser

Brug kommandoen ls s -l indstilling for at få vist tilladelser (eller fil-tilstand) er indstillet for indholdet af en mappe, for eksempel:

$ ls -l /sti/til/mappe

Den første kolonne er, hvad vi skal 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., tilladelserne, som ejeren har over filen, forklaret nedenfor. tilladelserne, som gruppen har over filen, forklaret nedenfor. tilladelserne, som alle de andre brugere har over filen, forklaret nedenfor. et enkelt tegn, der angiver, om en alternativ adgangsmetode gælder for filen. Når denne karakter er et mellemrum, er der ingen alternativ adgangsmetode. A . tegn angiver en fil med en sikkerhedskontekst, men ingen anden alternativ adgangsmetode., En fil med enhver anden kombination af alternative adgangsmetoder er markeret med et+ tegn, for eksempel i tilfælde af adgangskontrollister.,

Hver af de tre tilladelse treklange (rwx i ovenstående eksempel) kan bestå af følgende tegn:

Karakter Effekt på filer Effekt på mapper
Læs tilladelse (første tegn) - filen kan ikke læses., katalogets indhold kan ikke vises.
r filen kan læses. katalogets indhold kan vises.
Skriv tilladelse (andet tegn) - filen kan ikke ændres. katalogets indhold kan ikke ændres.
w filen kan ændres., mappens indhold kan ændres (Opret nye filer eller mapper, Omdøb eller Slet eksisterende filer eller mapper); kræver, at e .ecute-tilladelsen også indstilles, ellers har denne tilladelse ingen virkning.
Execute tilladelse (tredje tegn) - filen kan ikke udføres. mappen kan ikke tilgås med cd.
x filen kan udføres., Den mappe, som kan tilgås med cd; dette er den eneste tilladelse smule, at det i praksis kan anses for at være “arvet” fra de overordnede mapper, i virkeligheden, hvis nogen mapper i stien ikke har x – bit, den endelige filen eller mappen ikke kan åbnes enten, uanset dens rettigheder; se path_resolution(7) for at få flere oplysninger.,
s setuid-bit, når de findes i brugerens treklang; den setgid smule, når der findes i gruppen treklang; det findes ikke i andre treklang; det indebærer også, at x er indstillet.
S Samme som s, men x er ikke sat; sjælden på almindelige filer, og ubrugelig 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.,Tip: Du kan se tilladelser langs en sti med namei -l path.

Eksempler

Lad os se nogle eksempler for at præcisere:

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

Archie har fuld adgang til Dokumenter-mappen. Han kan liste, oprette filer og omdøbe, slette enhver fil i dokumenter, uanset filtilladelser. Hans evne til at få adgang til en fil afhænger af filens tilladelse.

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

Archie har fuld adgang, medmindre han ikke kan oprette, omdøbe, slette en fil., Han kan liste filerne og (hvis filens tilladelse giver) kan få adgang til en eksisterende fil i dokumenter.

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

Archie kan ikke gøre ‘ls’ I dokumenter, men hvis han kender navnet på en eksisterende fil, kan han liste, omdøbe, slette eller (hvis filens tilladelse giver ham) få adgang til den. Han er også i stand til at oprette nye filer.

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

Archie er kun i stand til (hvis filens tilladelse giver ham) adgang til disse filer i dokumenter, som han kender til. Han kan ikke liste allerede eksisterende filer eller oprette, omdøbe, slette nogen af dem.,

Du skal huske på, at vi uddyber mappetilladelser, og det har intet at gøre med de enkelte filtilladelser. Når du opretter en ny fil, er det den mappe, der ændres. Derfor har du brug for at skrive tilladelse til biblioteket.

Lad os se på et andet eksempel, denne gang af en fil, ikke en mappe:

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

Her kan vi se, at det første bogstav er ikke d men -. Så vi ved, at det er en fil, ikke en mappe., Dernæst er ejerens tilladelser rw- så ejeren har evnen til at læse og skrive, men ikke udføre. Dette kan synes mærkeligt, at ejeren ikke har alle tre tilladelser, men x tilladelse er ikke nødvendig, da det er en tekst/data-fil, der skal læses af en tekst editor som Gedit, EMACS, eller software, som R, og ikke en eksekverbar i sin egen ret (hvis det indeholdt noget python programmering af kode, så er det meget vel kunne være)., Gruppens tilladelser er indstillet til r--, så gruppen har evnen til at læse filen, men ikke skrive/redigere den på nogen måde — det er i det væsentlige som at indstille noget til skrivebeskyttet. Vi kan se, at de samme tilladelser også gælder for alle andre.

ændring af tilladelser

chmod er en kommando i Linu.og andre Uni.-lignende operativsystemer, der gør det muligt at ændre tilladelserne (eller adgangstilstand) for en fil eller mappe.

Tekstmetode

for at ændre tilladelser — eller adgangstilstand — for en fil skal du bruge kommandoen chmod i en terminal., Nedenfor er kommandoen ‘ s generelle struktur:

chmod who=permissions filename

Hvor who er enhver fra en række breve, der hver symboliserer, som der er givet tilladelse. De er som følger:

  • u: brugeren, der ejer filen.
  • g: den brugergruppe, som filen tilhører.
  • o: de andre brugere, dvs.alle andre.
  • a: alle ovenstående; brug dette i stedet for at skrive ugo.,

De tilladelser, er de samme som beskrevet i #Visning af tilladelser (r w og x).

nu har et kig på nogle eksempler ved hjælp af denne kommando., Antag, at du blev meget beskyttende over de Dokumenter, bibliotek og ønskede at fratage alle andre end dig selv, tilladelser til at læse, skrive og udføre (eller i dette tilfælde søge/se) i det:

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

$ chmod g= Documents$ chmod o= Documents

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

Her, fordi du ønsker at nægte tilladelser, du ikke sætte nogen bogstaver efter = hvor tilladelserne vil blive optaget. Nu kan du se, at kun ejeren tilladelserne er rwx og alle andre tilladelser -.,

Dette kan ændres med:

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

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

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

I det næste eksempel, du ønsker at tildele til at læse og udføre tilladelser til gruppen, og andre brugere, så du sætter bogstaverne for de tilladelser (r og x) efter =, med og uden mellemrum.

Du kan forenkle dette for at sætte mere end en who brev i samme kommando, e.,g:

$ chmod go=rx Documents
Bemærk: Det er ikke ligegyldigt i hvilken rækkefølge du sætte who bogstaver eller tilladelse bogstaver i en chmod kommando: du kunne have chmod go=rx file eller chmod og=xr file. Det er det samme.,ider et andet eksempel, antag, at du ønsker at ændre en foobar fil, så du har læse-og skriverettigheder, og andre brugere i gruppen users, der kan være kolleger, der arbejder på foobar, kan også læse fra og skrive til det, men andre brugere kan kun læse det:

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

$ chmod g=rw foobar

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

Dette er præcis som i det første eksempel, men med en fil, ikke en mappe, og du giver skriveadgang (bare for at give et eksempel på tildeling af hvert tilladelse).,

Sms-metode genveje

chmod kommandoen kan tilføje og trække tilladelser fra en eksisterende ved hjælp af + eller - i stedet for =. Dette er forskelligt fra de ovenstående kommandoer, som især re-skrive-tilladelser (fx at ændre en tilladelse fra r-- til rw-, du stadig nødt til at inkludere r samt w efter = i kommandoen chmod aktiveringen., Hvis du gik glip af r, ville det fjerne r tilladelsen, da de skrives om med =. Brug af + og - undgår dette ved at tilføje eller fjerne det aktuelle sæt tilladelser).,>Tidligere: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod a-w foobar

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

En anden genvej er den specielle X tilstand: dette er ikke en egentlig fil-tilstand, men det er ofte brugt i forbindelse med -R mulighed for at indstille den eksekverbare bit kun for biblioteker, og lade det være uændret for almindelige filer, for eksempel:

$ chmod -R a+rX ./data/

Kopiering af tilladelser

Det er muligt at fortælle chmod til at kopiere tilladelser fra én klasse, siger ejeren, og give dem samme rettigheder til gruppen eller endda alle., For at gøre dette, i stedet for at sætte r w, eller x efter = sagt på en anden, der letter. e.g:

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

$ chmod g=u foobar

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

Denne kommando i det væsentlige svarer til at “ændre tilladelserne for gruppen (g=), at være det samme som at eje bruger (=u). Bemærk, at du ikke kan kopiere et sæt tilladelser samt give nye f. eks.,:

$ chmod g=wu foobar

i så fald kaster chmod en fejl.

numerisk metode

chmod kan også indstille tilladelser ved hjælp af tal.brug af tal er en anden metode, der giver dig mulighed for at redigere tilladelserne for alle tre ejere, grupper og andre på samme tid samt setuid, setgid og sticky bits. Denne grundlæggende struktur i koden, er dette:

$ chmod xxx filename

Hvor xxx er et 3-cifret tal, hvor hvert ciffer kan være alt fra 0 til 7., Det første ciffer gælder tilladelser for ejer, det andet ciffer gælder tilladelser for gruppe, og det tredje ciffer gælder tilladelser for alle andre.

I dette nummer notation, værdier r w og x har deres eget nummer-værdi:

r=4w=2x=1

for At komme op med et 3-cifret nummer, du nødt til at overveje, hvilke tilladelser du ønsker, ejer, gruppe, og alle andre til at have, og så er alt deres værdier op., du ønsker gruppe og alle andre har bare læst og tilladelser til at køre, vil du komme op med de numeriske værdier, der kan lide det:

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

Dette svarer til at bruge følgende:

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

for At få vist de eksisterende tilladelser på en fil eller mappe i numerisk form, brug den statistiske listeeditor(1) – kommando:

$ stat -c %a filename

Hvor % – en indstilling angiver output i numerisk form.,

de Fleste mapper og mapper er indstillet til 755 for at tillade læsning, skrivning og udførelse til ejeren, men de nægter at skrive til alle andre, og filer er normalt 644 for at tillade læsning og skrivning for ejeren, men bare at læse for alle andre; se sidste anmærkning om manglende x tilladelser med ikke eksekverbare filer: det er det samme her.,

for At se det i aktion med eksempler overveje det foregående eksempel, der har været brugt, men med denne numeriske metode, der anvendes i stedet:

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

$ chmod 664 foobar

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

Hvis dette var en eksekverbar antallet ville være 774 hvis du ønsker at give eksekverbare tilladelse til ejer og gruppe. Alternativt, hvis du ønskede, at alle kun skulle have læst tilladelse, ville nummeret være 444., Behandling af r 4, w 2 og x 1 er nok den nemmeste måde at finde ud af numeriske værdier for hjælp chmod xxx filename, men der er også en binær metode, hvor hvert tilladelse har et binært tal, og så er det til gengæld konverteret til et tal. Det er lidt mere indviklet, men her inkluderet for fuldstændighed.,

Overvej dette tilladelsessæt:

-rwxr-xr--

Hvis du lægger en 1 under hvert tilladelse, og et 0 for hver en ikke givet, ville resultatet være noget i retning af dette:

-rwxrwxr-x 111111101

Du kan derefter konvertere disse binære tal:

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

værdien af ovenstående vil derfor være 775.

Overvej vi ønskede at fjerne skrivbar tilladelse fra gruppe:

-rwxr-xr-x 111101101

Den værdi, vil derfor være 755, og du ville bruge chmod 755 filename for at fjerne den skrivbare tilladelse., Du vil bemærke, at du får det samme trecifrede nummer, uanset hvilken metode du bruger. Uanset om du bruger tekst eller tal vil afhænge af personlige præferencer og skrivehastighed. Læse og skrive (og udføre) tilladelse til ejeren, men nægte at skrive tilladelse til alle andre, kan det være hurtigere at bruge chmod 755/644 filename. Men hvis du ændrer tilladelserne til noget ud af normen, kan det være enklere og hurtigere at bruge tekstmetoden i modsætning til at forsøge at konvertere den til tal, hvilket kan føre til en fejl., Det kan hævdes, at der ikke er nogen reel signifikant forskel i hastigheden af begge metoder for en bruger, der kun skal bruge chmod lejlighedsvis.

Du kan også bruge den numeriske metode til at sætte setuid setgid og sticky bits ved hjælp af fire cifre.

setuid=4setgid=2sticky=1

For eksempel: chmod 2777 filename vil læse/skrive/executable bits for alle, og også gøre setgid smule.

Bulk chmod

generelt mapper og filer bør ikke have de samme tilladelser., Hvis det er nødvendigt at ændre et mappetræ i bulk, skal du bruge find til selektivt at ændre det ene eller det andet.

for At chmod kun mapper til 755:

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

for At chmod kun filer til 644:

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

Ændring af ejerskab

chown ændringer ejeren af en fil eller mappe, som er hurtigere og lettere end at ændre tilladelser i nogle tilfælde.

overvej følgende eksempel, lav en ny partition med GParted til backup data. Gparted gør alt dette som root, så alt tilhører root som standard., Dette er alt sammen godt og godt, men når det kommer til at skrive data til den monterede partition, nægtes tilladelse for almindelige brugere.

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 enheden i /dev ejes af root, som er mount placering (/media/Backup)., For at ændre ejeren af mount placering, kan man gøre følgende:

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

# chown archie /media/Backup

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

Nu er den partition, kan have data, der skrives til den af den nye ejer, archie, uden at ændre tilladelser (som ejer treklang allerede havde rwx tilladelser).

Bemærk:

  • chown rydder altid setuid-og setgid-bits.
  • ikke-root-brugere kan ikke bruge chown til at “give væk” filer, de ejer til en anden bruger.,

adgangskontrollister

adgangskontrollister giver en yderligere, mere fleksibel tilladelsesmekanisme for filsystemer ved at tillade at indstille tilladelser for enhver bruger eller gruppe til enhver fil.

Umask

umask-værktøjet bruges til at styre filoprettelsesmasken, som bestemmer den oprindelige værdi af filtilladelsesbits for nyoprettede filer.,

filattributter

bortset fra filtilstandsbitene, der styrer bruger og gruppe, læser, skriver og udfører tilladelser, understøtter flere filsystemer filattributter, der muliggør yderligere tilpasning af tilladte filoperationer. Dette afsnit beskriver nogle af disse attributter, og hvordan man arbejder med dem.

advarsel: filattributter bevares som standard ikke af cp, rsync og andre lignende programmer.,

chattr og lsattr

For ext2 og ext3-filsystemer, den e2fsprogs pakke indeholder de programmer, lsattr og chattr listen og ændre en fils egenskaber, hhv.,/li>

  • u: undeletable
  • A: ingen tid opdateringer
  • C: ingen copy on write
  • D: synkrone bibliotek opdateringer
  • S: synkron opdateringer
  • T: øverste mappe hierarki
  • For eksempel, hvis du ønsker at indstille den uforanderlige smule på nogle fil, skal du bruge følgende kommando:

    # chattr +i /path/to/file

    for At fjerne en attribut, om en fil skal du blot ændre + til -.,

    udvidede attributter

    fra 7attr(7): “udvidede attributter er navn:værdipar forbundet permanent med filer og mapper”. Der er fire udvidede attribut klasser: Sikkerhed, system, betroede og bruger.

    advarsel: som standard bevares udvidede attributter ikke af cp, rsync og andre lignende programmer, se #Preserving e .tended attributes.udvidede attributter bruges også til at indstille kapaciteter.

    bruger udvidede attributter

    bruger udvidede attributter kan bruges til at gemme vilkårlige oplysninger 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 at bevare udvidede attributter med teksteditorer skal du konfigurere dem til at afkorte filer ved at gemme i stedet for at bruge Omdøb(2).

    Tips og tricks

    Bevare root

    Brug --preserve-root flag for at forhindre chmod fra at handle rekursivt på /. Dette kan for eksempel forhindre en i at fjerne den eksekverbare bit systemwideide og dermed bryde systemet. Hvis du vil bruge dette flag hver gang, skal du indstille det i et alias. Se også .,

    Se også

    • wikipedia:Chattr
    • Linux Fil Tilladelse Forvirring
    • Linux Fil Tilladelse Forvirring del 2
    • wikipedia:Udvidet filattributter#Linux
    • Udvidede attributter: det gode, det ikke er så gode, de dårlige.
    • Backup og gendannelse af filtilladelser i Linu?
    • Hvorfor er “chmod-r 777 /” destruktiv?

    Skriv et svar

    Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *