Permissiounen am Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Moien alleguer. Dëst ass eng Iwwersetzung vun engem Artikel aus dem Buch RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 an EX300.

Drécken: Ech hoffen, datt den Artikel net nëmme fir Ufänger nëtzlech ass, awer och méi erfuerene Administrateuren hëlleft hir Wëssen ze streamline.

Also loosse mer goen.

Permissiounen am Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Fir Zougang zu Dateien op Linux ze kréien, ginn Permissiounen benotzt. Dës Permissiounen ginn un dräi Objekter zougewisen: de Dateiebesëtzer, de Gruppebesëtzer an en aneren Objet (dat ass all déi aner). An dësem Artikel léiert Dir wéi Dir Permissiounen ugewannt.

Dësen Artikel fänkt mat engem Iwwerbléck iwwer d'Basiskonzepter un, gefollegt vun enger Diskussioun iwwer Special Permissiounen an Access Control Lists (ACLs). Um Enn vun dësem Artikel decken mir d'Standardpermissiounen iwwer umask astellen, souwéi d'Verwaltung vun erweiderten Benotzerattributer.

Fichier Besëtz Gestioun

Ier Dir iwwer Permissiounen diskutéiert, sollt Dir d'Roll vum Datei- a Verzeichnisbesëtzer bewosst sinn. Eegentum vun Dateien an Verzeichnisser ass vital fir mat Permissiounen ëmzegoen. An dëser Rubrik léiert Dir als éischt wéi Dir de Besëtzer kënnt gesinn. Dir léiert dann wéi Dir de Gruppbesëtzer a Benotzer fir Dateien an Verzeichnisser ännert.

Weist de Besëtzer vun engem Fichier oder Verzeechnes

Am Linux huet all Datei an all Verzeechnes zwee Besëtzer: e Benotzer an e Gruppebesëtzer.

Dës Besëtzer ginn agestallt wann e Fichier oder Verzeechnes erstallt gëtt. De Benotzer deen d'Datei erstellt gëtt de Besëtzer vun där Datei, an déi primär Grupp, zu där dee selwechte Benotzer gehéiert, gëtt och de Besëtzer vun där Datei. Fir ze bestëmmen ob Dir als Benotzer d'Erlaabnis hutt fir Zougang zu engem Fichier oder Verzeechnes ze kréien, kontrolléiert d'Schuel fir d'Besëtzer.

Dëst geschitt an der folgender Uerdnung:

  1. D'Shell iwwerpréift fir ze kucken ob Dir de Besëtzer vun der Datei sidd op déi Dir Zougang wëllt. Wann Dir de Besëtzer sidd, kritt Dir Permissiounen an d'Schuel hält op ze kontrolléieren.
  2. Wann Dir net de Besëtzer vun der Datei sidd, kontrolléiert d'Shell fir ze kucken ob Dir Member vun enger Grupp sidd, déi Permissiounen op der Datei huet. Wann Dir Member vun dëser Grupp sidd, gitt Dir op d'Datei mat den Permissiounen, déi de Grupp agestallt huet, an d'Schuel stoppt ze kontrolléieren.
  3. Wann Dir weder e Benotzer nach de Besëtzer vun enger Grupp sidd, kritt Dir d'Rechter vun anere Benotzer (Aner).

Fir déi aktuell Besëtzer Uerderen ze gesinn, kënnt Dir de Kommando benotzen ls-l. Dëse Kommando weist de Benotzer an de Besëtzer vum Grupp. Hei ënnen kënnt Dir d'Besëtzer Astellunge fir Verzeichnisser am /home directory gesinn.

[root@server1 home]# ls -l
total 8
drwx------. 3  bob            bob            74     Feb   6   10:13 bob
drwx------. 3  caroline       caroline       74     Feb   6   10:13 caroline
drwx------. 3  fozia          fozia          74     Feb   6   10:13 fozia
drwx------. 3  lara           lara           74     Feb   6   10:13 lara
drwx------. 5  lisa           lisa           4096   Feb   6   10:12 lisa
drwx------. 14 user           user           4096   Feb   5   10:35 user

Benotzt de Kommando ls Dir kënnt de Besëtzer vun de Fichieren an engem bestëmmte Verzeechnes weisen. Heiansdo kann et nëtzlech sinn eng Lëscht vun all Dateien um System ze kréien, déi e bestëmmte Benotzer oder Grupp als Besëtzer hunn. Fir dëst kënnt Dir benotzen fannen. Argument fannen-Benotzer kann fir dësen Zweck benotzt ginn. Zum Beispill, de folgende Kommando lëscht all Dateien déi vum Benotzer linda gehéieren:

find / -user linda

Dir kënnt och benotzen fannen fir Dateien ze sichen déi eng bestëmmte Grupp als Besëtzer hunn.

Zum Beispill sicht de folgende Kommando no all Dateien, déi zu der Grupp gehéieren Benotzer:

find / -group users

Verännerung vum Besëtz

Fir déi entspriechend Permissiounen z'applizéieren, ass déi éischt Saach ze berücksichtegen d'Besëtzer. Et gëtt e Kommando fir dëst gekacht. D'Syntax vun dësem Kommando ass einfach ze verstoen:

chown кто что

Zum Beispill ännert de folgende Kommando de Besëtzer vum /home/account Verzeichnis op de Benotzer linda:

chown linda /home/account

Equipe gekacht huet verschidde Méiglechkeeten, eng vun deenen ass besonnesch nëtzlech: -R. Dir kënnt roden wat et mécht well dës Optioun och fir vill aner Kommandoen verfügbar ass. Dëst erlaabt Iech de Besëtzer rekursiv ze setzen, wat Iech erlaabt de Besëtzer vum aktuellen Verzeechnes an alles drënner ze setzen. De folgende Kommando ännert d'Besëtzer vum / Home Verzeichnis an alles drënner un de Linda Benotzer:

Elo kucken d'Besëtzer esou aus:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 account account 62 Sep 25 21:41 account
drwx------. 2 lisa    lisa    62 Sep 25 21:42 lisa

Loosst eis maachen:

[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#

Elo ass de Benotzer lisa de Besëtzer vum Kontverzeichnis ginn:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 lisa account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa    62 Sep 25 21:42 lisa

Änneren de Besëtzer vun engem Grupp

Et ginn zwou Méiglechkeeten d'Besëtzer vun engem Grupp z'änneren. Dir kënnt dat maachen mat gekacht, awer et gëtt e spezielle Kommando genannt chgrpdat mécht d'Aarbecht. Wann Dir de Kommando benotze wëllt gekacht, benotzen . oder : virun der Grupp Numm.

De folgende Kommando ännert all Besëtzer vun der /home/account group an d'Kontogrupp:

chown .account /home/account

kënnt Dir benotzen gekacht de Besëtzer vun engem Benotzer an/oder Grupp op verschidde Manéieren z'änneren. Hei sinn e puer Beispiller:

  • chown lisa myfile1 setzt de Benotzer lisa als Besëtzer vu myfile1.
  • chown lisa.sales myfile setzt de Benotzer lisa als Besëtzer vun der myfile Datei, a setzt och de Verkafsgrupp als Besëtzer vun der selwechter Datei.
  • chown lisa: Verkaf myfile d'selwecht wéi de fréiere Kommando.
  • chown .sales myfile setzt de Verkafsgrupp als Besëtzer vu myfile ouni de Benotzer vum Benotzer z'änneren.
  • chown: Verkaf myfile d'selwecht wéi de fréiere Kommando.

Dir kënnt de Kommando benotzen chgrpde Besëtzer vum Grupp z'änneren. Betruecht de folgende Beispill, wou Dir benotzt chgrp setzt de Besëtzer vum Kontverzeichnis op de Verkafsgrupp:

chgrp .sales /home/account

Wéi mat gekacht, Dir kënnt d'Optioun benotzen -R с chgrp, wéi och de Besëtzer vum Grupp rekursiv änneren.

Den Default Besëtzer verstoen

Dir hutt vläicht gemierkt datt wann e Benotzer eng Datei erstellt, d'Standardbesëtzung applizéiert gëtt.
De Benotzer, deen d'Datei erstellt, gëtt automatesch de Besëtzer vun där Datei, an de Benotzer seng primär Grupp gëtt automatesch de Besëtzer vun där Datei. Dëst ass normalerweis d'Grupp déi an der /etc/passwd Datei als primär Grupp vum Benotzer opgezielt ass. Wéi och ëmmer, wann de Benotzer Member vu méi wéi enger Grupp ass, kann de Benotzer déi effektiv primär Grupp änneren.

Fir déi aktuell effektiv primär Grupp ze weisen, kann de Benotzer de Kommando benotzen Gruppen:

[root@server1 ~]# groups lisa
lisa : lisa account sales

Wann den aktuellen Linda Benotzer déi effektiv primär Grupp ännere wëll, benotzt hien de Kommando neigrpgefollegt vum Numm vun der Grupp, déi hien als nei efficace Primärgrupp asetzen wëll. Nodeems Dir de Kommando benotzt neigrp déi primär Grupp wäert aktiv sinn bis de Benotzer e Kommando aginn Sortie oder net ausloggen.

Déi folgend weist wéi de Benotzer linda dëse Kommando benotzt, mat Verkaf als primär Grupp:

lisa@server1 ~]$ groups
lisa account sales
[lisa@server1 ~]$ newgrp sales
[lisa@server1 ~]$ groups
sales lisa account
[lisa@server1 ~]$ touch file1
[lisa@server1 ~]$ ls -l
total 0
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1

Nodeems Dir déi effektiv primär Grupp geännert hutt, hunn all nei Dateien, déi vum Benotzer erstallt sinn, dës Grupp als Gruppbesëtzer. Sortie.

Fir de Kommando ze benotzen neigrp, de Benotzer muss Member vun der Grupp sinn, déi se als primär Grupp benotze wëllen. Zousätzlech, kann e Grupp Passwuert fir eng Grupp benotzt ginn de Kommando benotzt gpasswd. Wann de Benotzer de Kommando benotzt neigrpawer net Member vun der Zilgrupp ass, freet d'Schuel d'Passwuert vum Grupp. Nodeems Dir dat richtegt Gruppepasswuert aginn hutt, gëtt eng nei efficace primär Grupp etabléiert.

Grondrechter Gestioun

De Linux Erlaabnis System gouf an den 1970er Joren erfonnt. Well d'Rechenbedierfnesser an deene Jore limitéiert waren, war de Basiserlaabnissystem zimlech limitéiert. Dëse Permissiounssystem benotzt dräi Permissiounen, déi op Dateien a Verzeichnisser applizéiert kënne ginn. An dëser Rubrik léiert Dir wéi Dir dës Permissiounen benotzt an ännert.

Liesen, Schreiwen an Ausféieren Permissiounen verstoen

Dräi Basis Permissiounen erlaben Iech Dateien ze liesen, ze schreiwen an auszeféieren. Den Effekt vun dësen Permissiounen ënnerscheet sech wann se op Dateien oder Verzeichnisser applizéiert ginn. Fir e Fichier gëtt d'Lieserlaabnis Iech d'Recht fir d'Datei opzemaachen fir ze liesen. Dofir kënnt Dir säin Inhalt liesen, awer dat heescht datt Äre Computer d'Datei opmaache kann fir eppes mat him ze maachen.

E Programmdatei, deen Zougang zu enger Bibliothéik brauch, muss zum Beispill liesen Zougang zu där Bibliothéik hunn. Et follegt datt d'Lieserlaabnis déi meescht Basis Erlaabnis ass déi Dir braucht fir mat Dateien ze schaffen.

Wann Dir op e Verzeichnis applizéiert gëtt, erlaabt d'Liesen Iech den Inhalt vun deem Verzeechnes ze weisen. Dir sollt bewosst sinn datt dës Erlaabnis Iech net erlaabt d'Dateien am Verzeechnes ze liesen. De Linux Permissiounssystem kennt keng Ierfschaft, an deen eenzege Wee fir eng Datei ze liesen ass d'Lieserlaabnes op dëser Datei ze benotzen.

Wéi Dir wahrscheinlech ka roden, schreift d'Erlaabnes, wann Dir op eng Datei applizéiert gëtt, erlaabt Iech op d'Datei ze schreiwen. An anere Wierder, et erlaabt Iech den Inhalt vun existente Dateien z'änneren. Wéi och ëmmer, et erlaabt Iech net nei Dateien ze kreéieren oder ze läschen oder Dateierechten z'änneren. Fir dëst ze maachen, musst Dir d'Schreiferlaabnes fir den Dossier ginn, wou Dir d'Datei erstellen wëllt. An Verzeichnisser erlaabt dës Erlaabnis Iech och nei Ënnerverzeechnungen ze kreéieren an ze läschen.

Erlaabnis ausféieren ass wat Dir braucht fir d'Datei auszeféieren. Et gëtt ni als Standard installéiert, wat Linux bal komplett immun géint Viren mécht. Nëmmen een mat Schreifrechter am Verzeechnes kann d'Ausféierungserlaabnes uwenden.

Déi folgend resüméiert d'Benotzung vun Basis Permissiounen:

Permissiounen am Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Benotzt chmod

De Kommando gëtt benotzt fir Permissiounen ze managen. Chmod. Benotzt Chmod Dir kënnt Permissiounen fir de Benotzer (Benotzer), Gruppen (Grupp) an anerer (aner) astellen. Dir kënnt dëse Kommando an zwee Modi benotzen: relativ Modus an absolute Modus. Am absolute Modus ginn dräi Ziffere benotzt fir Basis Permissiounen ze setzen.

Permissiounen am Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Wann Dir Permissiounen setzt, berechent de Wäert deen Dir braucht. Wann Dir wëllt liesen / schreiwen / ausféieren fir de Benotzer, liesen / ausféieren fir Grupp, a liesen / ausféieren fir anerer an / Somefile da benotzt Dir de folgende Kommando Chmod:

chmod 755 /somefile

Wann Dir benotzt Chmod op dës Manéier ginn all déi aktuell Permissiounen duerch d'Permissiounen ersat, déi Dir agestallt hutt.

Wann Dir d'Permissiounen relativ zu den aktuellen Permissiounen änneren wëllt, kënnt Dir benotzen Chmod am relativ Modus. Benotzt Chmod am relativen Modus schafft Dir mat dräi Indikatoren fir unzeginn wat Dir maache wëllt:

  1. Als éischt spezifizéiert Dir fir wien Dir Permissiounen wëllt änneren. Fir dëst ze maachen, kënnt Dir tëscht Benotzer wielen (u), Grupp (g) an anerer (o).
  2. Dir benotzt dann eng Ausso fir Permissiounen aus dem aktuellen Modus ze addéieren oder ze läschen, oder se absolut astellen.
  3. Um Enn benotzt Dir r, w и xfir ze spezifizéieren wéi eng Permissiounen Dir wëllt setzen.

Wann Dir Permissiounen am relativen Modus ännert, kënnt Dir den "zu" Deel iwwersprangen fir d'Erlaabnes fir all Objeten ze addéieren oder ze läschen. Zum Beispill gëtt dëse Kommando d'Ausféierungserlaabnes fir all Benotzer:

chmod +x somefile

Wann Dir am relativen Modus schafft, kënnt Dir och méi komplex Kommandoen benotzen. Zum Beispill füügt dëse Kommando d'Schreiferlaabnes fir eng Grupp un a läscht d'Lieserlaabnis fir anerer:

chmod g+w,o-r somefile

Wann Dir benotzt chmod -R o+rx /data Dir setzt d'Ausféierungserlaabnes fir all Verzeichnisser souwéi Dateien am /data Verzeichnis. Fir d'Ausféierungserlaabnes nëmme fir Verzeichnisser ze setzen an net fir Dateien, benotzt chmod -R o+ rX /data.

De Grousse X garantéiert datt Dateien keng Ausféierungserlaabnes kréien, ausser d'Datei huet schonn d'Ausféierungserlaabnes fir e puer Objeten agestallt. Dëst mécht X e méi clevere Wee fir mat Ausféierungsrechter ëmzegoen; dëst wäert vermeiden dës Erlaabnis op Dateien ze setzen wou se net gebraucht gëtt.

Erweidert Rechter

Zousätzlech zu de Basis Permissiounen, déi Dir just gelies hutt, huet Linux och eng Rei vu fortgeschratt Permissiounen. Dëst sinn net d'Permissiounen déi Dir als Standard gesat hutt, awer heiansdo bidden se eng nëtzlech Zousatz. An dëser Rubrik léiert Dir wat se sinn a wéi Dir se opstellt.

SUID, GUID a Sticky Bit Extended Permissiounen verstoen

Et ginn dräi fortgeschratt Permissiounen. Déi éischt vun dësen ass d'Erlaabnis fir e Benotzeridentifizéierer (SUID) ze setzen. An e puer spezielle Fäll kënnt Dir dës Erlaabnis op ausführbar Dateien uwenden. Par défaut, e Benotzer, deen en ausführbar leeft, leeft dës Datei mat hiren eegene Permissiounen.

Fir normal Benotzer heescht dat normalerweis datt d'Benotzung vum Programm limitéiert ass. Wéi och ëmmer, an e puer Fäll brauch de Benotzer speziell Permissiounen, nëmmen fir eng spezifesch Aufgab auszeféieren.

Betruecht zum Beispill eng Situatioun wou e Benotzer säi Passwuert muss änneren. Fir dëst ze maachen, muss de Benotzer säin neit Passwuert an d'/etc/shadow Datei schreiwen. Allerdéngs ass dës Datei net vun Net-root Benotzer schreiwen:

root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow

D'SUID Erlaabnis bitt eng Léisung fir dëse Problem. Den /usr/bin/passwd Utility benotzt dës Erlaabnis par défaut. Dëst bedeit datt wann Dir d'Passwuert ännert, de Benotzer temporär root gëtt, wat him erlaabt an d' /etc/shadow Datei ze schreiwen. Dir kënnt d'SUID Erlaabnis gesinn mat ls-l wéi s an enger Positioun wou Dir normalerweis erwaart ze gesinn x fir personaliséiert Permissiounen:

[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd

D'SUID Erlaabnis kann nëtzlech ausgesinn (an e puer Fäll ass et), awer gläichzäiteg ass et potenziell geféierlech. Wann net richteg applizéiert, kënnt Dir zoufälleg root Permissiounen ginn ewech. Dofir recommandéieren ech et nëmme mat der gréisster Suergfalt ze benotzen.

Meescht Administrateuren wäert et ni brauchen ze benotzen; Dir gesitt et nëmmen an e puer Dateien wou de Betribssystem et als Standard setzen soll.

Déi zweet speziell Erlaabnis ass de Gruppidentifizéierer (SGID). Dës Erlaabnis huet zwee Effekter. Wann op eng ausführbar Datei applizéiert gëtt, gëtt et dem Benotzer deen d'Datei ausféiert d'Permissiounen vum Gruppebesëtzer vun der Datei. Also SGID ka méi oder manner datselwecht maachen wéi SUID. Wéi och ëmmer, SGID gëtt praktesch net fir dësen Zweck benotzt.

Wéi mat SUID Erlaabnis, gëtt SGID op e puer Systemdateien als Standardastellung applizéiert.

Wann Dir op e Verzeichnis applizéiert gëtt, kann de SGID nëtzlech sinn, well Dir et benotze kënnt fir de Standardgruppbesëtzer fir Dateien an Ënnerverzeechnungen an deem Verzeichnis ze setzen. Par défaut, wann e Benotzer eng Datei erstellt, gëtt hir effektiv primär Grupp als Gruppebesëtzer fir dës Datei gesat.

Dëst ass net ëmmer ganz nëtzlech, besonnesch well Red Hat/CentOS Benotzer eng primär Grupp op eng Grupp mat dem selwechten Numm wéi de Benotzer gesat hunn, an vun deem de Benotzer deen eenzege Member ass. Also, par défaut, ginn d'Dateien, déi de Benotzer erstellt, a Masse gedeelt.

Stellt Iech eng Situatioun vir, wou d'Benotzer Linda a Lori an der Comptabilitéit schaffen a Member vun enger Grupp sinn Kont. Par défaut sinn dës Benotzer Member vun engem private Grupp vun deem si deen eenzege Member sinn. Wéi och ëmmer, béid Benotzer sinn Member vun der Kontogrupp, awer och als sekundäre Gruppparameter.

D'Standardsituatioun ass datt wann ee vun dëse Benotzer eng Datei erstellt, gëtt de primäre Grupp de Besëtzer. Dofir, par défaut, kann d'linda net Zougang zu Dateien erstallt vu lori, a vice versa. Wéi och ëmmer, wann Dir e gemeinsame Gruppeverzeichnis erstellt (soen /groups/account) a sécherzestellen datt d'SGID Erlaabnis op dee Verzeechnes applizéiert gëtt an datt de Gruppekonto als Gruppebesëtzer fir dee Verzeichnis gesat gëtt, all Dateien déi an deem Verzeichnis erstallt sinn an all vu sengen Ënnerverzeechnungen, kritt och de Gruppekonto als Gruppbesëtzer als Standard.

Aus dësem Grond ass d'SGID Erlaabnis eng ganz nëtzlech Erlaabnis fir op ëffentlech Gruppeverzeichnisser ze setzen.

SGID Erlaabnis am Ausgang gewisen ls-l wéi s op der Positioun wou Dir normalerweis Erlaabnis fannt fir e Grupp auszeféieren:

[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account

Déi drëtt vun de spezielle Permissiounen ass de Sticky Bit. Dës Erlaabnis ass nëtzlech fir Dateien aus zoufälleg Läschen ze schützen an engem Ëmfeld wou verschidde Benotzer Schreifzougang zum selwechte Verzeechnes hunn. Wann e Sticky Bit benotzt gëtt, kann e Benotzer nëmmen eng Datei läschen wann hien de Benotzer Besëtzer vun der Datei oder dem Verzeechnes ass deen d'Datei enthält. Aus dësem Grond gëtt et als Standard Erlaabnis fir den /tmp Verzeichnis benotzt a kann och nëtzlech sinn fir ëffentlech Gruppeverzeichnisser.

Ouni de Sticky Bit, wann de Benotzer Dateien an engem Verzeechnes erstellen kann, kënnen se och Dateien aus deem Verzeechnes läschen. An engem ëffentleche Gruppëmfeld kann dëst lästeg sinn. Stellt Iech d'Benotzer Linda a Lori vir, déi allebéid Schreifrechter an de /data/account-Verzeichnis hunn an dës Permissiounen kréien andeems se Member vun der Kontgrupp sinn. Dofir kann d'Linda Dateien erstallt vu Lori läschen a vice versa.

Wann Dir de Sticky Bit applizéiert, kann de Benotzer nëmmen Dateien läschen wann ee vun de folgende Konditioune wouer ass:

  • De Benotzer ass de Besëtzer vun der Datei;
  • De Benotzer ass de Besëtzer vum Verzeechnes wou d'Datei läit.

Wann Dir benotzt ls-l, Dir kënnt de klebrig bëssen gesinn als t an der Positioun wou Dir normalerweis Ausféierungserlaabnes fir anerer gesinn:

[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/

Erweidert Rechter uwenden

Fir SUID, SGID a Sticky Bit z'applizéieren, kënnt Dir och benotzen Chmod. SUID huet en numeresche Wäert vu 4, SGID huet en numeresche Wäert vun 2, a Sticky Bit huet en numeresche Wäert vun 1.

Wann Dir dës Permissiounen gëlle wëllt, musst Dir e véier Zifferen Argument addéieren Chmod, deem seng éischt Ziffer op speziell Permissiounen bezitt. Déi folgend Linn, zum Beispill, füügt SGID Erlaabnis an de Verzeichnis a set rwx fir Benotzer an rx fir Grupp an anerer:

chmod 2755 /somedir

Dëst ass éischter onpraktesch wann Dir déi aktuell Permissiounen muss gesinn, déi agestallt sinn ier Dir schafft Chmod am absolute Modus. (Dir riskéiert d'Permissiounen ze iwwerschreiwe wann Dir net.) Also ech recommandéieren am relativen Modus ze lafen wann Dir eng vun de spezielle Permissiounen gëlle musst:

  1. Fir SUID benotzen chmod u+s.
  2. Fir SGID benotzen chmod g+s.
  3. Fir Sticky Bit benotzt chmod +t, gefollegt vum Numm vun der Datei oder dem Verzeichnis fir deen Dir Permissiounen astellen wëllt.

Den Dësch resüméiert alles wat Dir wësse musst iwwer d'Verwaltung vu spezielle Permissiounen.

Permissiounen am Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Beispill fir mat spezielle Rechter ze schaffen

An dësem Beispill benotzt Dir speziell Permissiounen fir et méi einfach ze maachen fir Gruppememberen Dateien am gemeinsame Gruppeverzeichnis ze deelen. Dir gitt d'ID Bit un d'Set Grupp ID wéi och de Sticky Bit, an Dir gesitt datt wann se agestallt sinn, Feature ginn derbäigesat fir et méi einfach ze maachen fir Gruppememberen zesummen ze schaffen.

  1. Öffnen en Terminal wou Dir de Linda Benotzer sidd. Dir kënnt e Benotzer mam Kommando erstellen Benotzeradd linda, Passwuert derbäi passwd Linda.
  2. Erstellt den /data-Verzeichnis an der Root an den /data/sales-Ënnerverzeechnes mam Kommando mkdir -p /data/sales. Komplett cd /data/verkafenfir an de Verkafsverzeechnes ze goen. Komplett touch linda1 и touch linda2fir zwee eidel Dateien ze kreéieren déi vum Linda gehéiert.
  3. Ausféieren su-lisa fir den aktuelle Benotzer op de Benotzer lisa ze wiesselen, deen och Member vum Verkafsgrupp ass.
  4. Ausféieren cd /data/verkafen an aus deem Verzeichnis ausféieren ls-l. Dir gesitt zwee Dateien déi vum Linda Benotzer erstallt goufen a gehéieren zu der Linda Grupp. Komplett rm -f linda*. Dëst wäert béid Dateien ewechhuelen.
  5. Ausféieren touch lisa1 и touch lisa2fir zwee Dateien ze kreéieren déi am Besëtz vum Benotzer lisa sinn.
  6. Ausféieren su- fir Är Privilegien ze root ze erhéijen.
  7. Ausféieren chmod g+s,o+t /data/salesfir de Grupp Identifizéierer (GUID) Bit wéi och de Sticky Bit am gemeinsame Gruppeverzeichnis ze setzen.
  8. Ausféieren su-linda. Dann maachen touch linda3 и touch linda4. Dir sollt elo gesinn datt déi zwee Dateien, déi Dir erstallt hutt, vum Verkafsgrupp gehéiert, deen de Gruppebesëtzer vum /data/sales-Verzeichnis ass.
  9. Ausféieren rm -rf lisa*. De Sticky Bit verhënnert datt dës Dateien am Numm vum Linda Benotzer geläscht ginn, well Dir net de Besëtzer vun dësen Dateien sidd. Notéiert datt wann de Linda Benotzer de Besëtzer vum /data/sales Verzeichnis ass, kënnen se dës Dateie souwisou läschen!

ACL Management (setfacl, getfacl) am Linux

Och wann déi erweidert Permissiounen, déi hei uewe diskutéiert goufen, nëtzlech Funktionalitéit zur Aart a Weis wéi Linux geréiert Permissiounen addéieren, erlaabt et Iech net Permissiounen fir méi wéi ee Benotzer oder Grupp an der selwechter Datei ze ginn.

Zougang Kontroll Lëschte bidden dës Fonktioun. Zousätzlech erlaben se Administrateuren Standard Permissiounen op eng komplex Manéier ze setzen, wou déi agestallt Permissiounen vu Verzeechnes zu Verzeichnis variéiere kënnen.

ACLs verstoen

Och wann den ACL-Subsystem grouss Funktionalitéit op Äre Server bäidréit, huet et een Nodeel: net all Utilities ënnerstëtzen et. Dofir kënnt Dir Är ACL-Astellunge verléieren wann Dir Dateien kopéiert oder réckelt, an Är Backup-Software kann net op Är ACL-Astellunge backen.

Den Tar Utility ënnerstëtzt net ACLs. Fir sécherzestellen datt ACL Astellungen net verluer sinn wann Dir e Backup erstellt, benotzt Stär amplaz tar. Stär Wierker mat der selwechter Optiounen wéi tar; et gëtt just Ënnerstëtzung fir ACL Astellungen.

Dir kënnt och ACLs Backupsatellit mat getfacl, déi mat dem setfacl Kommando restauréiert ka ginn. Fir e Backup ze kreéieren, benotzt getfacl -R /Verzeechnes > file.acls. Fir Astellunge vun enger Backupdatei ze restauréieren, benotzt setfacl --restore=file.acl.

Mangel un Ënnerstëtzung vun e puer Tools sollt kee Problem sinn. ACLs ginn dacks op Verzeichnisser als strukturell Moossnam applizéiert anstatt op eenzel Dateien.
Dofir ginn et net vill vun hinnen, awer nëmmen e puer, op intelligent Plazen am Dateiesystem applizéiert. Dofir ass d'Restauratioun vun den originelle ACLs mat deenen Dir geschafft hutt relativ einfach, och wann Är Backupsoftware se net ënnerstëtzt.

Preparéieren vum Dateiesystem fir ACLs

Ier Dir ufänkt mat ACLs ze schaffen, musst Dir vläicht Äre Dateiesystem virbereeden fir ACLs z'ënnerstëtzen. Well Dateisystem Metadaten musse verlängert ginn, gëtt et net ëmmer Standardunterstëtzung fir ACLs am Dateiesystem. Wann Dir e Message "Operatioun net ënnerstëtzt" kritt wann Dir ACLs fir e Dateiesystem opstellt, kann Äre Dateiesystem net ACLs ënnerstëtzen.

Fir dëst ze fixéieren, musst Dir d'Optioun addéieren acl mount an /etc/fstab sou datt de Dateiesystem mat ACL Support par défaut montéiert ass.

Änneren a kucken ACL Astellunge mat setfacl an getfacl

Fir en ACL ze setzen braucht Dir de Kommando setfacl. Fir déi aktuell ACL Astellungen ze gesinn, braucht Dir getfacl. Equipe ls-l weist keng bestehend ACLs; et weist just e + no der Erlaabneslëscht, wat beweist datt d'ACLs och op d'Datei gëllen.

Ier Dir ACLs opstellt, ass et ëmmer eng gutt Iddi déi aktuell ACL Astellunge mat ze weisen getfacl. Am Beispill hei drënner, kënnt Dir déi aktuell Permissiounen gesinn, wéi mat gewisen ls-l, an och wéi gewisen mat getfacl. Wann Dir genee genuch kuckt, gesitt Dir datt d'Informatioun genau d'selwecht ass.

[root@server1 /]# ls -ld /dir
drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

Als Resultat vun der Ausféierung vum Kommando getfacl ënnendrënner kënnt Dir gesinn datt d'Permissiounen fir dräi verschidden Objeten ugewise ginn: Benotzer, Grupp an anerer. Loosst eis elo en ACL derbäi fir Liesen an Ausféierung Permissiounen och fir de Verkafsgrupp ze ginn. Kommando fir dës setfacl -mg:sales:rx /dir. An dëser Equipe -m weist datt déi aktuell ACL Astellunge musse geännert ginn. Nodeems datt g:verkaaf:rx erzielt de Kommando fir den ACL auszeféieren liesen (rx) fir de Grupp (g) Verkaf. Hei ënnen kënnt Dir gesinn wéi de Kommando ausgesäit, wéi och d'Ausgab vum Getfacl Kommando nodeems Dir déi aktuell ACL Astellunge geännert huet.

[root@server1 /]# setfacl -m g:sales:rx /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:sales:r-x
mask::r-x
other::r-x

Elo datt Dir verstitt wéi Dir e Grupp ACL opstellt, ass et einfach ACLs fir Benotzer an aner Benotzer ze verstoen. Zum Beispill, de Kommando setfacl -mu:linda:rwx /data gëtt Permissiounen dem Linda Benotzer am /data Verzeechnes ouni et de Besëtzer ze maachen oder d'Zeechnung vum aktuelle Besëtzer z'änneren.

Equipe setfacl huet vill Funktiounen an Optiounen. Eng Optioun ass besonnesch wichteg, de Parameter -R. Wann se benotzt gëtt, mécht d'Optioun den ACL fir all Dateien an Ënnerverzeechnungen, déi momentan am Verzeechnes existéieren, wou Dir den ACL setzt. Et ass recommandéiert datt Dir ëmmer dës Optioun benotzt wann Dir ACLs fir existent Verzeichnisser ännert.

Schafft mat Standard ACLs

Ee vun de Virdeeler fir ACLs ze benotzen ass datt Dir Permissiounen fir verschidde Benotzer oder Gruppen an engem Verzeichnis zouginn. En anere Virdeel ass datt Dir Ierfschaft aktivéiere kënnt andeems Dir mat de Standard-ACLs schafft.

Andeems Dir den Default-ACL setzt, bestëmmt Dir d'Permissiounen, déi fir all nei Elementer am Verzeechnes erstallt ginn. Sidd bewosst datt d'Standard-ACL keng Permissiounen op existente Dateien an Ënnerverzeechnungen ännert. Fir se z'änneren, musst Dir och en normalen ACL addéieren!

Dëst ass wichteg ze wëssen. Wann Dir en ACL benotze wëllt fir verschidde Benotzer oder Gruppen ze konfiguréieren fir Zougang zum selwechte Verzeechnes ze kréien, musst Dir den ACL zweemol setzen. Éischt benotzen setfacl -R -mfir den ACL fir déi aktuell Dateien z'änneren. Dann benotzen setfacl-md:fir all nei Elementer ze këmmeren déi och entstinn.

Fir den Default-ACL ze setzen, musst Dir just d'Optioun addéieren d no Optioun -m (Bestellung ass wichteg!). Also benotzen setfacl -md:g:sales:rx /datawann Dir wëllt datt Gruppeverkaaf liesen an ausféieren wat jeemools am /data Verzeichnis erstallt gëtt.

Wann Dir Standard-ACLs benotzt, kann et och nëtzlech sinn ACLs fir anerer ze setzen. Dëst mécht normalerweis net vill Sënn, well Dir kënnt och d'Permissiounen fir anerer änneren Chmod. Wéi och ëmmer, wat Dir net maache kënnt Chmod, ass d'Rechter ze spezifizéieren déi aner Benotzer musse ginn fir all nei Datei déi jeemools erstallt gëtt. Wann Dir wëllt verhënneren datt anerer keng Permissiounen kréien op alles erstallt an / Daten zum Beispill benotzt setfacl -md:o::- /data.

ACLs an normal Permissiounen sinn net ëmmer gutt integréiert. Probleemer kënnen entstoen wann Dir e Standard-ACL op e Verzeichnis applizéiert, da ginn Elementer an de Verzeichnis bäigefüügt, a probéiert dann déi normal Permissiounen z'änneren. Ännerungen, déi fir normal Permissiounen gëllen, ginn net gutt am ACL Iwwerbléck reflektéiert. Fir Problemer ze vermeiden, setze fir d'éischt normal Permissiounen un, setzen dann d'Standard-ACLs (a probéiert se duerno net erëm z'änneren).

Beispill vun erhéicht Rechter Management Mat ACLs

An dësem Beispill fuert Dir weider mat den /data/account an /data/sales Verzeichnisser déi Dir virdru erstallt hutt. An de fréiere Beispiller hutt Dir gesuergt datt de Verkafsgrupp Permissiounen op /data/sales huet an d'Kontogrupp huet Permissiounen op /data/account.

Als éischt, vergewëssert Iech datt d'Kontogrupp d'Lieserlaabnes am /data/sales-Verzeichnis kritt an d'Verkafsgrupp kritt d'Lieserlaabnes am /data/account-Verzeichnis.

Dir setzt dann Standard-ACLs fir sécherzestellen datt all nei Dateien déi richteg Permissiounen hunn fir all nei Elementer.

  1. Öffnen en Terminal.
  2. Ausféieren setfacl -mg:account:rx /data/sales и setfacl -mg:sales:rx /data/account.
  3. Ausféieren getfaclfir sécherzestellen datt d'Permissiounen esou agestallt goufen wéi Dir wëllt.
  4. Ausféieren setfacl -md:g:account:rwx,g:sales:rx /data/salesfir de Standard-ACL fir de Verkafsverzeechnes ze setzen.
  5. Füügt e Standard-ACL fir den /data/account Verzeichnis mat setfacl -md:g:sales:rwx,g:account:rx /data/account.
  6. Vergewëssert Iech datt d'ACL-Astellunge effektiv sinn andeems Dir eng nei Datei op /data/sales bäidréit. Komplett touch /data/sales/newfile an ausféieren getfacl /data/sales/newfile aktuell Permissiounen ze kontrolléieren.

Setzt Standard Permissiounen mat umask

Hei uewen hutt Dir geléiert wéi Dir mat Standard ACLs schafft. Wann Dir keen ACL benotzt, gëtt et eng Shelloptioun déi d'Standardpermissiounen bestëmmt déi Dir kritt: umask (Reverse Mask). An dëser Rubrik léiert Dir wéi Dir d'Standard Permissiounen ännert mat umask.

Dir hutt vläicht gemierkt datt wann Dir eng nei Datei erstellt, e puer Standard Permissiounen agestallt ginn. Dës Permissiounen ginn duerch d'Astellung bestëmmt umask. Dës Shell-Astellung gëllt fir all Benotzer beim Login. Am Parameter umask e numeresche Wäert gëtt benotzt, dee vun de maximalen Permissiounen subtrahéiert gëtt, déi automatesch fir d'Datei gesat kënne ginn; déi maximal Astellung fir Dateien ass 666 a fir Verzeichnisser ass 777.

Wéi och ëmmer, e puer Ausnahmen gëlle fir dës Regel. Dir kënnt e kompletten Iwwerbléck iwwer d'Astellunge fannen umask an der Tabell hei drënner.

Vun den Zuelen benotzt an umask, wéi am Fall vun numereschen Argumenter fir de Kommando Chmod, déi éischt Ziffer bezitt sech op d'Permissiounen vum Benotzer, déi zweet Ziffer bezitt sech op d'Permissiounen vum Grupp, an déi lescht bezitt sech op d'Default Permissiounen, déi fir anerer gesat goufen. Sinn umask der Default 022 gëtt 644 fir all nei Fichieren an 755 fir all nei Verzeechnes op Ärem Server geschaf.

Komplett Iwwersiicht vun all numeresch Wäerter umask an hir Resultater an der Tabell hei drënner.

Permissiounen am Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

En einfache Wee fir ze gesinn wéi d'Umask-Astellung funktionnéiert ass wéi follegt: Start mat de Standard Permissiounen vun der Datei op 666 gesat a subtrahéiert d'Umask fir déi effektiv Permissiounen ze kréien. Maacht datselwecht fir den Verzeechnes a seng Standard Permissiounen vun 777.

Et ginn zwou Méiglechkeeten d'umask Astellung ze änneren: fir all Benotzer a fir eenzel Benotzer. Wann Dir d'Umask fir all Benotzer setzen wëllt, musst Dir suergen datt d'Umask-Astellung berécksiichtegt gëtt wann Dir Shell-Ëmfelddateien starten, wéi an /etc/profile spezifizéiert. Déi richteg Approche ass e Shell-Skript mam Numm umask.sh am /etc/profile.d Verzeichnis ze kreéieren an d'Umask ze spezifizéieren, déi Dir an deem Shell-Skript benotze wëllt. Wann d'Umask an dëser Datei geännert gëtt, gëtt se op all Benotzer applizéiert nodeems se op de Server ageloggt sinn.

Eng Alternativ fir d'Umask via /etc/profile an Zesummenhang Dateien ze setzen, wou et fir all Benotzer ugemellt ass, ass d'Umask-Astellungen an engem Fichier mam Numm .profile z'änneren, deen an all Heemverzeechnes vun all Benotzer erstallt gëtt.

D'Astellungen, déi an dësem Fichier applizéiert ginn, gëllen nëmme fir den eenzelne Benotzer; dofir ass dëst eng gutt Method wann Dir méi Detailer braucht. Ech perséinlech gär dës Feature fir d'Standard-Umask fir de Root-Benotzer op 027 z'änneren, während normal Benotzer mat der Standard-Umask vun 022 lafen.

Schafft mat erweiderten Benotzerattributer

Dëst ass déi lescht Sektioun iwwer Linux Permissiounen.

Wann Dir mat Permissiounen schafft, gëtt et ëmmer eng Bezéiung tëscht engem Benotzer- oder Gruppobjekt an den Permissiounen, déi Benotzer- oder Gruppobjekter op enger Datei oder Verzeechnes hunn. Eng alternativ Method fir Dateien op engem Linux Server ze schützen ass mat Attributer ze schaffen.
Attributer maachen hir Aarbecht onofhängeg vum Benotzer Zougang zu der Datei.

Wéi mat ACLs, kënnen Dateiattributer d'Optioun enthalen Bierg.

Dëst ass eng Optioun user_xattr. Wann Dir e Message "Operatioun net ënnerstëtzt" kritt wann Dir mat erweiderten Benotzerattributer schafft, gitt sécher de Parameter ze setzen Bierg an /etc/fstab.

Vill Attributer sinn dokumentéiert. E puer Attributer sinn verfügbar awer nach net ëmgesat. Benotzt se net; si bréngen Iech näischt.

Drënner sinn déi nëtzlechst Attributer déi Dir benotze kënnt:

A Dëst Attribut garantéiert datt d'Datei Zougangszäit vun der Datei net ännert.
Typesch, all Kéier wann eng Datei opgemaach gëtt, muss d'Zougangszäit vun der Datei an de Metadaten vun der Datei opgeholl ginn. Dëst beaflosst negativ Leeschtung; also fir Fichieren déi regelméisseg zougänglech sinn, den Attribut A kann benotzt ginn fir dës Fonktioun auszeschalten.

a Dëst Attribut erlaabt Iech eng Datei ze addéieren awer net ewechzehuelen.

c Wann Dir e Dateiesystem benotzt, deen de Volume-Niveau Kompressioun ënnerstëtzt, garantéiert dëst Dateiattribut datt d'Datei kompriméiert ass déi éischte Kéier datt de Kompressiounsmechanismus aktivéiert ass.

D Dëst Attribut garantéiert datt Ännerunge fir Dateien direkt op Disk geschriwwe ginn anstatt als éischt am Cache. Dëst ass en nëtzlechen Attribut op wichteg Datebankdateien fir sécherzestellen datt se net tëscht dem Dateicache an der Festplack verluer goen.

d Dëst Attribut garantéiert datt d'Datei net a Backups gespäichert gëtt wou den Dump Utility benotzt gëtt.

I Dëst Attribut erméiglecht d'Indexéierung fir den Verzeechnes an deem et ageschalt ass. Dëst bitt méi séier Dateizougang fir primitiv Dateiesystemer wéi Ext3 déi d'B-Baum-Datebank net fir séier Dateizougang benotzen.

i Dëst Attribut mécht d'Datei onverännerbar. Dofir kënne keng Ännerungen un der Datei gemaach ginn, wat nëtzlech ass fir Dateien déi zousätzlech Schutz brauchen.

j Dëst Attribut garantéiert datt, op engem ext3 Dateiesystem, d'Datei fir d'éischt an de Journal geschriwwe gëtt an dann op Datenblocken op der Festplack.

s Iwwerschreiwe d'Blöcke an deenen d'Datei op 0s gespäichert gouf nodeems d'Datei geläscht gouf. Dëst garantéiert datt d'Datei net restauréiert ka ginn nodeems se geläscht gouf.

u Dëst Attribut späichert Informatioun iwwer d'Läschung. Dëst erlaabt Iech en Utility z'entwéckelen deen mat dëser Informatioun funktionnéiert fir geläscht Dateien ze retten.

Wann Dir d'Attributer benotze wëllt, kënnt Dir de Kommando benotzen geschwat. Zum Beispill, benotzen chattr +s eng Dateifir Attributer op eng Datei z'applizéieren. Muss en Attribut ewechhuelen? Dann benotzen chattr -s eng Dateian et wäert geläscht ginn. Fir en Iwwerbléck iwwer all Attributer ze kréien, déi aktuell ugewannt ginn, benotzt de Kommando lsattr.

Summary

An dësem Artikel hutt Dir geléiert wéi Dir mat Permissiounen schafft. Dir liest iwwer déi dräi Basis Permissiounen, fortgeschratt Permissiounen, a wéi Dir ACLs op engem Dateiesystem applizéiert. Dir hutt och geléiert wéi Dir d'Umask Optioun benotzt fir Standard Permissiounen z'applizéieren. Um Enn vun dësem Artikel hutt Dir geléiert wéi Dir User-erweidert Attributer benotzt fir eng zousätzlech Schicht vu Dateisystemsécherheet anzesetzen.

Wann Dir dës Iwwersetzung gär hutt, da schreift Iech doriwwer an de Kommentarer. Et gëtt méi Motivatioun nëtzlech Iwwersetzungen ze maachen.

E puer Tippfeeler a grammatesch Feeler am Artikel korrigéiert. Reduzéiert e puer voluminöse Abschnitter a méi kleng fir besser Liesbarkeet.

Amplaz "Nëmmen een mat administrativen Rechter op de Verzeichnis kann d'Ausféierungserlaabnes uwenden." fixéiert op "Nëmmen een mat Schreifrechter am Verzeechnes kann d'Ausféierungserlaabnes uwenden.", wat méi korrekt wier.

Merci fir d'Kommentaren berez.

Ersat:
Wann Dir net de Besëtzer vum Benotzer sidd, kontrolléiert d'Schuel fir ze kucken ob Dir Member vun enger Grupp sidd, och bekannt als Grupp vun der Datei.

On:
Wann Dir net de Besëtzer vun der Datei sidd, kontrolléiert d'Shell fir ze kucken ob Dir Member vun enger Grupp sidd, déi Permissiounen op der Datei huet. Wann Dir Member vun dëser Grupp sidd, gitt Dir op d'Datei mat den Permissiounen, déi de Grupp agestallt huet, an d'Schuel stoppt ze kontrolléieren.

Merci fir däi Kommentar CryptoPirate

Source: will.com

Setzt e Commentaire