bestandssystemen gebruiken machtigingen en attributen om het niveau van interactie te regelen dat systeemprocessen kunnen hebben met bestanden en mappen.

waarschuwing: bij gebruik voor veiligheidsdoeleinden beschermen machtigingen en attributen alleen tegen aanvallen die vanaf het opstartsysteem worden gestart. Om de opgeslagen gegevens te beschermen tegen aanvallers met fysieke toegang tot de machine, moet men ook data-at-rest encryptie implementeren.,

Weergavemachtigingen

Gebruik de ls-opdracht -l optie om de machtigingen (of bestandsmodus) voor de inhoud van een map te bekijken, bijvoorbeeld:

$ ls-l/path/to/directory

de eerste kolom is waar we ons op moeten richten., 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., de rechten die de eigenaar heeft over het bestand, hieronder uitgelegd. de rechten die de groep heeft over het bestand, hieronder uitgelegd. de rechten die alle andere gebruikers hebben over het bestand, hieronder uitgelegd. een enkel teken dat aangeeft of een alternatieve toegangsmethode op het bestand van toepassing is. Als dit teken een spatie is, is er geen alternatieve toegangsmethode. Een . teken geeft een bestand aan met een beveiligingscontext, maar geen andere alternatieve toegangsmethode., Een bestand met een andere combinatie van alternatieve toegangsmethoden wordt gemarkeerd met een + teken, bijvoorbeeld in het geval van toegangscontrolelijsten.,

Elk van de drie rechten drieklanken (rwx in het bovenstaande voorbeeld) kan worden gemaakt van de volgende tekens:

Character Effect op bestanden Effect op directories
Lees toestemming (eerste teken) - Het bestand kan niet worden gelezen., de inhoud van de map kan niet worden weergegeven.
r het bestand kan worden gelezen. de inhoud van de map kan worden weergegeven.
schrijftoegang (tweede teken) - het bestand kan niet worden gewijzigd. de inhoud van de map kan niet worden gewijzigd.
w het bestand kan worden gewijzigd., de inhoud van de map kan worden gewijzigd (nieuwe bestanden of mappen aanmaken; bestaande bestanden of mappen hernoemen of verwijderen); vereist dat de uitvoerrechten ook worden ingesteld, anders heeft deze rechten geen effect.
uitvoerrechten (derde teken) - het bestand kan niet worden uitgevoerd. de map is niet toegankelijk met cd.
x het bestand kan worden uitgevoerd., de map kan worden benaderd met cd; dit is de enige permissiebit die in de praktijk kan worden beschouwd als “overgenomen”van de vooroudermappen, in feite als een map in het pad niet de x bitset heeft, kan het uiteindelijke bestand of de uiteindelijke map ook niet worden benaderd, ongeacht de permissies; zie path_resolution(7) voor meer informatie.,
s de setuid bit wanneer deze in de groep triade wordt gevonden; de setgid bit wanneer deze in de andere triade wordt gevonden; het betekent ook dat x is ingesteld.
S hetzelfde als s, maar x is niet ingesteld; zeldzaam op gewone bestanden, en nutteloos op mappen.,
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: U kunt machtigingen bekijken langs een pad met namei -l path.

voorbeelden

laten we enkele voorbeelden bekijken om te verduidelijken:

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

Archie heeft volledige toegang tot de map Documenten. Hij kan een lijst maken, bestanden maken en hernoemen, elk bestand in documenten verwijderen, ongeacht bestandsrechten. Zijn vermogen om toegang te krijgen tot een bestand hangt af van de toestemming van het bestand.

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

Archie heeft volledige toegang, behalve dat hij geen bestand kan aanmaken, hernoemen of verwijderen., Hij kan een lijst van de bestanden en (als de toestemming van het bestand machtigt) kan toegang krijgen tot een bestaand bestand in documenten.

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

Archie kan ‘ls’ niet in documenten doen, maar als hij de naam van een bestaand bestand kent, mag hij een lijst maken, een andere naam geven, verwijderen of (als de toestemming van het bestand hem machtigt) er toegang toe hebben. Ook is hij in staat om nieuwe bestanden te maken.

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

Archie is alleen in staat om (als de toestemming van het bestand hem machtigt) toegang te krijgen tot die bestanden in documenten waarvan hij weet. Hij kan niet een lijst van reeds bestaande bestanden of maken, hernoemen, verwijderen van een van hen.,

houd er rekening mee dat we dieper ingaan op directory permissies en het heeft niets te maken met de individuele bestand permissies. Wanneer u een nieuw bestand maakt, verandert de map. Daarom heb je schrijfrechten nodig voor de directory.

laten we eens kijken naar een ander voorbeeld, deze tijd van een bestand, geen Map:

Hier kunnen we zien dat de eerste letter niet d maar -is. Dus we weten dat het een bestand is, geen map., Vervolgens zijn de rechten van de eigenaar rw- dus de eigenaar heeft de mogelijkheid om te lezen en schrijven, maar niet uit te voeren. Dit lijkt misschien vreemd dat de eigenaar niet alle drie de rechten heeft, maar de x toestemming is niet nodig omdat het een tekst / data bestand is, om gelezen te worden door een teksteditor zoals Gedit, EMACS, of software zoals R, en niet een uitvoerbaar bestand op zichzelf (als het iets als python programmeercode bevat dan zou het heel goed kunnen zijn)., De rechten van de groep zijn ingesteld op r--, dus de groep heeft de mogelijkheid om het bestand te lezen, maar het op geen enkele manier te schrijven/bewerken — het is in wezen als iets instellen op Alleen-lezen. We kunnen zien dat dezelfde rechten ook van toepassing zijn op alle anderen.

machtigingen wijzigen

chmod is een commando in Linux en andere Unix-achtige besturingssystemen dat het mogelijk maakt om de machtigingen (of toegangsmodus) van een bestand of map te wijzigen.

Tekstmethode

om de rechten — of toegangsmodus — van een bestand te wijzigen, gebruikt u het commando chmod in een terminal., Hieronder vindt u de algemene structuur van het commando:

chmod who=permissions filename

waarbij who uit een reeks letters komt, die elk aangeven wie de toestemming krijgt. Ze zijn als volgt:

  • u: de gebruiker die eigenaar is van het bestand.
  • g: de gebruikersgroep waartoe het bestand behoort.
  • o: de andere gebruikers, dat wil zeggen alle anderen.
  • a: al het bovenstaande; Gebruik dit in plaats van ugote typen.,

de permissies zijn dezelfde als besproken in # Viewing permissions (r, w en x).

bekijk nu enkele voorbeelden met dit commando., Stel, je werd zeer beschermend van de Documenten-map en wilde ontkennen iedereen maar zelf, de machtigingen lezen, schrijven en uitvoeren (of in dit geval zoeken/kijken) in het:

Voor: drwxr-xr-x 6 archie users 4096 Jul 5 17:37 Documents

$ chmod g= Documents$ chmod o= Documents

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

Hier omdat u wilt weigeren machtigingen, je zet geen brieven na de = waar machtigingen zouden worden ingevoerd. Nu kunt u zien dat alleen de permissies van de eigenaar rwx zijn en alle andere permissies zijn -.,

Dit kan worden teruggedraaid met:

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

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

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

In het volgende voorbeeld wilt verlenen van machtigingen voor lezen en uitvoeren aan de groep, en andere gebruikers, dus je zet de letters in voor de machtigingen (r en x) na de = geen spaties.

u kunt dit vereenvoudigen om meer dan één who letter in hetzelfde commando te plaatsen, e.,g:

$ chmod go=rx Documents
Opmerking: Het maakt niet uit in welke volgorde u de who letters of de toestemming letters in een chmod Commando: u kunt chmod go=rx file of chmod og=xr file. Het is allemaal hetzelfde.,ider een tweede voorbeeld stel, u wilt wijzigen van een foobar bestand, zodat u de machtigingen lezen en schrijven, en collega-gebruikers in de groep users die kan worden collega ‘ s die werken op: foobar, kunnen ook lezen en schrijven, maar andere gebruikers kunnen alleen te lezen:

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

$ chmod g=rw foobar

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

Dit is precies hetzelfde als het eerste voorbeeld, maar met een bestand niet in een map, en u verleent de machtiging schrijven (net zo als een voorbeeld te geven van de verlening van elke machtiging).,

Tekstmethode sneltoetsen

het chmod commando laat toe machtigingen van een bestaande set toe te voegen en af te trekken met + of - in plaats van . Dit verschilt van de bovenstaande commando ‘ s, die in wezen de permissies herschrijven (bijvoorbeeld om een machtiging te wijzigen van r-- naar rw-, moet u nog steeds r en w na de in het chmod Commando aanroep., Als u r hebt gemist, zou het de r toestemming wegnemen omdat ze opnieuw worden geschreven met . Het gebruik van + en - vermijdt dit door het toevoegen of verwijderen van de huidige set rechten).,>Voor: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod a-w foobar

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

Een andere snelkoppeling is de speciale X modus: dit is niet een werkelijke modus file maar het wordt vaak gebruikt in combinatie met de -R optie om de uitvoerbare bit alleen voor mappen, en laat het ongewijzigd voor gewone bestanden, bijvoorbeeld:

$ chmod -R a+rX ./data/

Kopiëren machtigingen

Het is mogelijk om te vertellen chmod kopie van de rechten van de ene klas, zegt de eigenaar, en die dezelfde rechten aan de groep of zelfs alle., Om dit te doen, zet u in plaats van r, w, of x na de een andere who-letter. bijvoorbeeld:

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

$ chmod g=u foobar

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

Dit commando vertaalt zich in wezen naar “change the permissions of group (g=), naar hetzelfde zijn als de eigenaar (=u). Merk op dat u een set van machtigingen niet kunt kopiëren, evenals het verlenen van nieuwe e.g.,:

$ chmod g=wu foobar

In dat geval geeft chmod een fout.

numerieke methode

chmod kan ook machtigingen instellen met behulp van getallen.

het gebruik van getallen is een andere methode waarmee u de rechten voor alle drie de eigenaar, de groep en anderen tegelijkertijd kunt bewerken, evenals de setuid, setgid en sticky bits. Deze basisstructuur van de code is als volgt:

$ chmod xxx filename

waarbij xxx een 3-cijferig getal is waarbij elk cijfer iets van 0 tot 7 kan zijn., Het eerste cijfer is van toepassing op Machtigingen voor de eigenaar, het tweede cijfer is van toepassing op Machtigingen voor de groep en het derde cijfer is van toepassing op Machtigingen voor alle anderen.

In deze getalnotatie hebben de waarden r, w, en x hun eigen getalwaarde:

r=4w=2x=1

om met een 3-cijferig getal te komen moet u overwegen wat machtigingen waarvan u wilt dat de eigenaar, de groep en alle anderen over machtigingen beschikken en vervolgens hun waarden optellen., wilt u de groep en iedereen om machtigingen voor lezen en uitvoeren, u zou komen met de numerieke waarden als volgt:

  • Eigenaar: rwx=4+2+1=7
  • Groep: r-x=4+0+1=5
  • Andere: r-x=4+0+1=5
$ chmod 755 filename

Dit is het equivalent van het gebruik van de volgende:

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

Om de bestaande rechten van een bestand of map in numerieke vorm, gebruik het stat(1) commando:

$ stat -c %a filename

Waar de %met een optie naar output in numerieke vorm.,

de Meeste mappen en mappen zijn ingesteld op 755 om te kunnen lezen, schrijven en uitvoeren voor de eigenaar, maar weigeren te schrijven naar iedereen, en bestanden worden gewoonlijk 644 om het lezen en schrijven van voor de eigenaar, maar alleen te lezen voor iedereen; zie de laatste opmerking over het ontbreken van x machtigingen met niet-uitvoerbare bestanden: het is hetzelfde hier.,

om dit Te zien in actie met voorbeelden denk aan het vorige voorbeeld dat is gebruikt, maar met dit numerieke methode toegepast in plaats:

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

$ chmod 664 foobar

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

Als dit een uitvoerbare het nummer zou worden 774 als je wilde verlenen uitvoerbaar toestemming van de eigenaar en groep. Als alternatief, als je wilt dat iedereen alleen leesrechten heeft, zou het nummer 444zijn., De behandeling r 4, w 2 en x als 1 is waarschijnlijk de makkelijkste manier om de numerieke waarden voor het gebruik van chmod xxx filename, maar er is ook een binaire methode, waarbij elke machtiging heeft een binair getal, en dat is op zijn beurt omgezet naar een getal. Het is een beetje meer ingewikkeld, maar hier opgenomen voor volledigheid.,

Overweeg deze rechten:

-rwxr-xr--

Als je een 1 onder elke verleende toestemming, en een 0 voor elk niet verleend, het resultaat zou iets als dit:

-rwxrwxr-x 111111101

vervolgens kunt U deze omzetten van binaire getallen:

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

De waarde van het bovenstaande zou dus 775.

bedenk dat we de schrijfbare rechten uit groep wilden verwijderen:

-rwxr-xr-x 111101101

de waarde zou daarom 755 zijn en u zou chmod 755 filename gebruiken om de schrijfbare rechten te verwijderen., U zult merken dat u hetzelfde driecijferige nummer krijgt, ongeacht welke methode u gebruikt. Of u tekst of nummers gebruikt, hangt af van persoonlijke voorkeur en typesnelheid. Als u een map of bestand wilt herstellen naar de standaard permissies zoals Lees-en schrijfrechten (en uitvoerrechten) voor de eigenaar, maar schrijfrechten voor alle anderen wilt weigeren, kan het sneller zijn om chmod 755/644 filenamete gebruiken. Als u echter de machtigingen wijzigt naar iets dat buiten de norm valt, kan het eenvoudiger en sneller zijn om de tekstmethode te gebruiken in tegenstelling tot het proberen om het te converteren naar getallen, wat kan leiden tot een fout., Er kan worden gesteld dat er geen echt significant verschil is in de snelheid van beide methoden voor een gebruiker die alleen chmod af en toe hoeft te gebruiken.

u kunt ook de numerieke methode gebruiken om de setuid, setgid, en sticky bits in te stellen met behulp van vier cijfers.

setuid=4setgid=2sticky=1

bijvoorbeeld, chmod 2777 filename zal lezen/schrijven/uitvoerbare bits voor iedereen instellen en ook de setgid bit inschakelen.

Bulk chmod

over het algemeen zouden mappen en bestanden niet dezelfde rechten moeten hebben., Als het nodig is om een mapstructuur in bulk te wijzigen, gebruik dan find om selectief de ene of de andere te wijzigen.

naar chmod alleen mappen tot 755:

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

naar chmod alleen bestanden tot 644:

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

het veranderen van eigendom

chown verandert de eigenaar van een bestand of map, wat in sommige gevallen sneller en gemakkelijker is dan het wijzigen van de rechten.

beschouw het volgende voorbeeld, het maken van een nieuwe partitie met GParted voor back-upgegevens. Gparted doet dit allemaal als root zodat alles standaard bij root hoort., Dit is allemaal goed en wel, maar als het gaat om het schrijven van gegevens naar de gemount partitie, wordt Toestemming geweigerd voor reguliere gebruikers.

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

zoals u kunt zien is het apparaat in /dev eigendom van root, evenals de koppellocatie (/media/Backup)., Wijzigen van de eigenaar van de mount locatie kan men het volgende doen:

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

# chown archie /media/Backup

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

Nu de partitie kan data geschreven is door de nieuwe eigenaar, archie, zonder het wijzigen van de machtigingen (als de eigenaar triade-al rwx machtigingen).

opmerking:

  • chown wist altijd de setuid en setgid bits.
  • niet-root gebruikers kunnen chown niet gebruiken om bestanden die ze bezitten aan een andere gebruiker weg te geven.,

toegangscontrolelijsten

toegangscontrolelijsten biedt een extra, flexibeler machtigingsmechanisme voor bestandssystemen door toe te staan om machtigingen voor elke gebruiker of groep in te stellen op elk bestand.

Umask

het hulpprogramma umask wordt gebruikt om het masker voor het aanmaken van bestanden te beheren, dat de initiële waarde bepaalt van bestandsrechten voor nieuw aangemaakte bestanden.,

Bestandsattributen

behalve de bestandsmodus-bits die de lees -, schrijf-en uitvoerrechten van gebruikers en groepen beheren, ondersteunen verschillende bestandssystemen bestandsattributen die verdere aanpassing van toegestane bestandsoperaties mogelijk maken. Deze sectie beschrijft enkele van deze attributen en hoe ermee te werken.

waarschuwing: standaard worden bestandskenmerken niet bewaard door cp, rsync en andere soortgelijke programma ‘ s.,

chattr en lsattr

voor ext2-en ext3-bestandssystemen bevat het e2fsprogs-pakket de programma ‘ s lsattr en chattr die respectievelijk de kenmerken van een bestand weergeven en wijzigen.,/li>

  • u: undeletable
  • A: geen atime updates
  • C: geen kopie op schrijven
  • D: synchrone map updates
  • S: synchrone updates
  • T: top van de directory-hiërarchie
  • bijvoorbeeld, als u wilt instellen van de onveranderlijke beetje op een bestand, gebruik je het volgende commando:

    # chattr +i /path/to/file

    Voor het verwijderen van een kenmerk van een bestand wijzigen + tot -.,

    uitgebreide attributen

    uit xattr(7): “uitgebreide attributen zijn naam:waardeparen die permanent geassocieerd zijn met bestanden en mappen”. Er zijn vier uitgebreide attribuutklassen: beveiliging, systeem, vertrouwd en gebruiker.

    waarschuwing: standaard worden uitgebreide attributen niet bewaard door cp, rsync en andere soortgelijke programma ‘ s, zie #Extended attributen behouden.

    uitgebreide attributen worden ook gebruikt om mogelijkheden in te stellen.

    gebruiker uitgebreide attributen

    gebruiker uitgebreide attributen kunnen worden gebruikt om willekeurige informatie over een bestand op te slaan., 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.,

    om uitgebreide attributen met tekstverwerkers te behouden, moet u deze configureren om bestanden af te snijden bij het opslaan in plaats van hernoemen(2) te gebruiken.

    Tips en trucs

    Root

    Gebruik de--preserve-root vlag om te voorkomen datchmod recursief werkt op/. Dit kan bijvoorbeeld voorkomen dat men het uitvoerbare bit systemwide verwijdert en daarmee het systeem breekt. Om deze vlag elke keer te gebruiken, zet je deze in een alias. Zie ook .,

    zie ook

    • wikipedia:chattr
    • verwarring met Linux-bestandsrechten
    • verwarring met Linux-bestandsrechten deel 2
    • wikipedia: Extended file attributen#Linux
    • Extended attributen: the good, the not so good, the bad.
    • bestandsrechten back-uppen en herstellen in Linux
    • Waarom is” chmod-R 777 / ” destructief?

    Geef een reactie

    Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *