Hei kaikki. Tämä on käännös artikkelista kirjasta RedHat RHCSA RHCE 7 RedHat Enterprise. Linux 7 EX200 ja EX300.
Työntää: Toivon, että artikkeli ei ole hyödyllinen vain aloittelijoille, vaan se auttaa myös kokeneempia ylläpitäjiä virtaviivaistamaan tietojaan.
Joten mennään.

Tiedostojen käyttämiseen Linux, käytetään käyttöoikeuksia. Nämä käyttöoikeudet on määritetty kolmelle objektille: tiedoston omistajalle, ryhmän omistajalle ja toiselle objektille (eli kaikille muille). Tässä artikkelissa opit, miten käyttöoikeuksia sovelletaan.
Tämä artikkeli alkaa yleiskatsauksella peruskäsitteisiin, jonka jälkeen käsitellään erityisoikeuksia ja pääsynhallintaluetteloita (ACL). Tämän artikkelin lopussa käsittelemme oletuskäyttöoikeuksien asettamista umaskin kautta sekä laajennettujen käyttäjämääritteiden hallintaa.
Tiedoston omistajuuden hallinta
Ennen kuin keskustelet käyttöoikeuksista, sinun tulee olla tietoinen tiedoston ja hakemiston omistajan roolista. Tiedostojen ja hakemistojen omistus on elintärkeää lupien käsittelyssä. Tässä osiossa opit ensin, kuinka näet omistajan. Tämän jälkeen opit vaihtamaan tiedostojen ja hakemistojen ryhmän omistajaa ja käyttäjää.
Näyttää tiedoston tai hakemiston omistajan
В Linux Jokaisella tiedostolla ja jokaisella hakemistolla on kaksi omistajaa: käyttäjä ja ryhmän omistaja.
Nämä omistajat asetetaan, kun tiedosto tai hakemisto luodaan. Tiedoston luovasta käyttäjästä tulee tiedoston omistaja, ja ensisijaisesta ryhmästä, johon sama käyttäjä kuuluu, tulee myös tiedoston omistaja. Määrittääkseen, onko sinulla käyttäjänä oikeus käyttää tiedostoa tai hakemistoa, kuori tarkistaa omistajuuden.
Tämä tapahtuu seuraavassa järjestyksessä:
- Shell tarkistaa, oletko sen tiedoston omistaja, jota haluat käyttää. Jos olet omistaja, saat käyttöoikeudet ja kuori lopettaa tarkistamisen.
- Jos et ole tiedoston omistaja, komentotulkki tarkistaa, oletko sellaisen ryhmän jäsen, jolla on tiedoston käyttöoikeudet. Jos olet tämän ryhmän jäsen, pääset tiedostoon ryhmän asettamilla käyttöoikeuksilla, ja komentotulkki lopettaa tarkistamisen.
- Jos et ole ryhmän käyttäjä tai omistaja, sinulle annetaan muiden käyttäjien oikeudet (Other).
Voit nähdä nykyiset omistajan tehtävät käyttämällä komentoa ls -l. Tämä komento näyttää ryhmän käyttäjän ja omistajan. Alla näet /home-hakemiston hakemistojen omistaja-asetukset.
[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
Komennolla ls voit näyttää tietyn hakemiston tiedostojen omistajan. Joskus voi olla hyödyllistä saada luettelo kaikista järjestelmän tiedostoista, joiden omistajana on tietty käyttäjä tai ryhmä. Tätä varten voit käyttää löytää. Perustelu etsi-käyttäjä voidaan käyttää tähän tarkoitukseen. Esimerkiksi seuraava komento listaa kaikki tiedostot, jotka käyttäjä linda omistaa:
find / -user lindaVoit myös käyttää löytää etsiäksesi tiedostoja, joiden omistajana on tietty ryhmä.
Esimerkiksi seuraava komento etsii kaikkia ryhmään kuuluvia tiedostoja Käyttäjät:
find / -group usersOmistajan vaihto
Asianmukaisten käyttöoikeuksien käyttäminen on ensimmäinen asia, joka on otettava huomioon omistajuus. Tätä varten on käsky chown. Tämän komennon syntaksi on helppo ymmärtää:
chown кто чтоEsimerkiksi seuraava komento muuttaa /home/account-hakemiston omistajan käyttäjäksi linda:
chown linda /home/accountJoukkue chown on useita vaihtoehtoja, joista yksi on erityisen hyödyllinen: -R. Voit arvata, mitä se tekee, koska tämä vaihtoehto on käytettävissä myös monille muille komennoille. Tämän avulla voit asettaa omistajan rekursiivisesti, jolloin voit määrittää nykyisen hakemiston ja kaiken alla olevan omistajan. Seuraava komento muuttaa /home-hakemiston ja kaiken sen alla olevan omistajuuden linda-käyttäjälle:
Nyt omistajat näyttävät tältä:
[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
Tehdään:
[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#
Nyt käyttäjä lisa on tullut tilihakemiston omistajaksi:
[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
Vaihda ryhmän omistajaa
Ryhmän omistajuutta voi muuttaa kahdella tavalla. Voit tehdä tämän käyttämällä chown, mutta siellä on erityinen komento nimeltä chgrpjoka tekee työn. Jos haluat käyttää komentoa chown, käytä . tai : ryhmän nimen eteen.
Seuraava komento muuttaa minkä tahansa /home/account-ryhmän omistajan tiliryhmäksi:
chown .account /home/account
voit käyttää chown muuttaaksesi käyttäjän ja/tai ryhmän omistajaa useilla tavoilla. Tässä muutamia esimerkkejä:
- chown lisa oma tiedosto1 asettaa käyttäjän lisa myfile1:n omistajaksi.
- chown lisa.sales myfile asettaa käyttäjän lisa myfile-tiedoston omistajaksi ja myös myyntiryhmän saman tiedoston omistajaksi.
- chown lisa:sales myfile sama kuin edellinen komento.
- chown .sales myfile asettaa myyntiryhmän myfile-tiedoston omistajaksi muuttamatta käyttäjän omistajaa.
- chown :sales myfile sama kuin edellinen komento.
Voit käyttää komentoa chgrpvaihtaaksesi ryhmän omistajaa. Harkitse seuraavaa esimerkkiä, jossa voit käyttää chgrp aseta tilihakemiston omistaja myyntiryhmään:
chgrp .sales /home/accountKuten chown, voit käyttää vaihtoehtoa -R с chgrp, sekä vaihtaa rekursiivisesti ryhmän omistajaa.
Oletusomistajan ymmärtäminen
Olet ehkä huomannut, että kun käyttäjä luo tiedoston, siihen sovelletaan oletusomistusta.
Tiedoston luovasta käyttäjästä tulee automaattisesti tiedoston omistaja, ja käyttäjän ensisijaisesta ryhmästä tulee automaattisesti tiedoston omistaja. Tämä on yleensä ryhmä, joka on lueteltu /etc/passwd-tiedostossa käyttäjän ensisijaisena ryhmänä. Jos käyttäjä on kuitenkin useamman kuin yhden ryhmän jäsen, käyttäjä voi vaihtaa voimassa olevan ensisijaisen ryhmän.
Käyttäjä voi näyttää nykyisen tehokkaan ensisijaisen ryhmän käyttämällä komentoa ryhmät:
[root@server1 ~]# groups lisa
lisa : lisa account sales
Jos nykyinen linda-käyttäjä haluaa muuttaa voimassa olevan ensisijaisen ryhmän, hän käyttää komentoa newgrpja sen jälkeen sen ryhmän nimi, jonka hän haluaa asettaa uudeksi tehokkaaksi ensisijaiseksi ryhmäksi. Komennon käytön jälkeen newgrp ensisijainen ryhmä on aktiivinen, kunnes käyttäjä antaa komennon poistua tai ei kirjaudu ulos.
Seuraavassa näkyy, kuinka käyttäjä linda käyttää tätä komentoa myyntien ensisijaisena ryhmänä:
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
Kun voimassa oleva ensisijainen ryhmä on muutettu, kaikkien käyttäjän luomien uusien tiedostojen ryhmän omistajana on kyseinen ryhmä. Voit palauttaa alkuperäisen ensisijaisen ryhmän asetukseksi poistua.
Jotta komentoa voidaan käyttää newgrp, käyttäjän on oltava sen ryhmän jäsen, jota hän haluaa käyttää ensisijaisena ryhmänä. Lisäksi ryhmälle voidaan käyttää ryhmäsalasanaa komennolla gpasswd. Jos käyttäjä käyttää komentoa newgrpmutta ei ole kohderyhmän jäsen, komentotulkki pyytää ryhmän salasanaa. Kun olet syöttänyt oikean ryhmän salasanan, uusi tehokas ensisijainen ryhmä perustetaan.
Perusoikeuksien hallinta
Lupajärjestelmä Linux keksittiin 1970-luvulla. Koska laskentatarpeet olivat tuolloin rajalliset, peruskäyttöoikeusjärjestelmä oli melko suppea. Tämä käyttöoikeusjärjestelmä käyttää kolmea käyttöoikeutta, joita voidaan soveltaa tiedostoihin ja hakemistoihin. Tässä osiossa opit käyttämään ja muokkaamaan näitä käyttöoikeuksia.
Luku-, kirjoitus- ja suoritusoikeuksien ymmärtäminen
Kolme peruskäyttöoikeutta sallivat sinun lukea, kirjoittaa ja suorittaa tiedostoja. Näiden käyttöoikeuksien vaikutus vaihtelee, kun niitä sovelletaan tiedostoihin tai hakemistoihin. Tiedoston lukuoikeus antaa sinulle oikeuden avata tiedosto lukemista varten. Siksi voit lukea sen sisällön, mutta se tarkoittaa, että tietokoneesi voi avata tiedoston tehdäkseen sillä jotain.
Ohjelmatiedostolla, joka tarvitsee pääsyn kirjastoon, on esimerkiksi oltava lukuoikeus kyseiseen kirjastoon. Tästä seuraa, että lukuoikeus on yksinkertaisin tiedostojen käsittelyyn tarvittava lupa.
Kun lukuoikeus on käytössä hakemistossa, se antaa sinulle oikeuden tarkastella kyseisen hakemiston sisältöä. Huomaa, että tämä oikeus ei anna sinulle oikeutta lukea hakemiston tiedostoja. Käyttöoikeusjärjestelmä Linux ei tunne periytymistä, ja ainoa tapa lukea tiedostoa on käyttää tiedoston lukuoikeuksia.
Kuten luultavasti arvaat, kirjoitusoikeus sallii tiedostoon kirjoittamisen, jos sitä käytetään tiedostoon. Toisin sanoen sen avulla voit muuttaa olemassa olevien tiedostojen sisältöä. Se ei kuitenkaan salli sinun luoda tai poistaa uusia tiedostoja tai muuttaa tiedostojen käyttöoikeuksia. Tätä varten sinun on annettava kirjoitusoikeus hakemistoon, johon haluat luoda tiedoston. Hakemistoissa tällä luvalla voit myös luoda ja poistaa uusia alihakemistoja.
Suoritusoikeus on se, mitä tarvitset tiedoston suorittamiseen. Sitä ei koskaan aseteta oletusarvoisesti, mikä tekee Linux Lähes täysin immuuni viruksille. Vain henkilö, jolla on kirjoitusoikeudet hakemistoon, voi myöntää suoritusoikeudet.
Seuraavassa on yhteenveto peruskäyttöoikeuksien käytöstä:

Käyttämällä chmod
Komentoa käytetään käyttöoikeuksien hallintaan. chmod. Käyttämällä chmod voit asettaa käyttöoikeuksia käyttäjälle (käyttäjälle), ryhmille (ryhmälle) ja muille (muille). Voit käyttää tätä komentoa kahdessa tilassa: suhteellinen tila ja absoluuttinen tila. Absoluuttisessa tilassa kolmea numeroa käytetään perusoikeuksien asettamiseen.

Kun määrität käyttöoikeuksia, laske tarvitsemasi arvo. Jos haluat asettaa luku/kirjoitus/suorita käyttäjälle, luku/suorita ryhmälle ja lukea/suorita muille tiedostossa /jokutiedosto, käytä seuraavaa komentoa chmod:
chmod 755 /somefileKun käytät chmod tällä tavalla kaikki nykyiset käyttöoikeudet korvataan asettamillasi käyttöoikeuksilla.
Jos haluat muuttaa käyttöoikeuksia suhteessa nykyisiin käyttöoikeuksiin, voit käyttää chmod suhteellisessa tilassa. Käyttämällä chmod suhteellisessa tilassa työskentelet kolmen ilmaisimen kanssa, jotka osoittavat, mitä haluat tehdä:
- Määritä ensin, kenen käyttöoikeuksia haluat muuttaa. Voit tehdä tämän valitsemalla käyttäjän (u), ryhmä (g) ja muut (o).
- Tämän jälkeen käytät käskyä lisätäksesi tai poistaaksesi käyttöoikeuksia nykyisestä tilasta tai määrität ne kokonaan.
- Lopussa käytät r, w и xmäärittääksesi mitkä käyttöoikeudet haluat asettaa.
Kun muutat käyttöoikeuksia suhteellisessa tilassa, voit ohittaa "to"-osan lisätäksesi tai poistaaksesi käyttöoikeudet kaikille objekteille. Esimerkiksi tämä komento lisää suoritusoikeudet kaikille käyttäjille:
chmod +x somefileKun työskentelet suhteellisessa tilassa, voit käyttää myös monimutkaisempia komentoja. Tämä komento esimerkiksi lisää kirjoitusoikeudet ryhmään ja poistaa lukuoikeudet muilta:
chmod g+w,o-r somefileKäytettäessä chmod -R o+rx /data määrität suoritusoikeudet kaikille hakemistoille ja tiedostoille /data-hakemistossa. Jos haluat asettaa suoritusluvan vain hakemistoille, ei tiedostoille, käytä chmod -R o+ rX /data.
Iso kirjain X varmistaa, että tiedostot eivät saa suoritusoikeuksia, ellei tiedosto ole jo asettanut suoritusoikeuksia joillekin objekteille. Tämä tekee X:stä älykkäämmän tavan käsitellä suorituslupia; Tämä välttää tämän luvan asettamisen tiedostoille, joissa sitä ei vaadita.
Laajennetut oikeudet
Juuri lukemiesi perusoikeuksien lisäksi Linux Käytettävissä on myös joukko laajennettuja käyttöoikeuksia. Nämä eivät ole oletusarvoisesti määrittämiäsi käyttöoikeuksia, mutta ne voivat joskus tarjota hyödyllisen lisäominaisuuden. Tässä osiossa opit, mitä ne ovat ja miten ne määritetään.
SUID-, GUID- ja Sticky Bit Extended -käyttöoikeuksien ymmärtäminen
Lisäkäyttöoikeuksia on kolme. Ensimmäinen näistä on lupa asettaa käyttäjätunnus (SUID). Joissakin erikoistapauksissa voit käyttää tätä lupaa suoritettaviin tiedostoihin. Oletusarvoisesti käyttäjä, joka suorittaa suoritettavan tiedoston, suorittaa kyseisen tiedoston omilla käyttöoikeuksillaan.
Tavallisille käyttäjille tämä tarkoittaa yleensä sitä, että ohjelman käyttö on rajoitettua. Joissakin tapauksissa käyttäjä tarvitsee kuitenkin erityislupia vain tietyn tehtävän suorittamiseen.
Ajatellaanpa esimerkiksi tilannetta, jossa käyttäjän on vaihdettava salasanansa. Tätä varten käyttäjän on kirjoitettava uusi salasana /etc/shadow-tiedostoon. Muut kuin pääkäyttäjät eivät kuitenkaan voi kirjoittaa tähän tiedostoon:
root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow
SUID-lupa tarjoaa ratkaisun tähän ongelmaan. /usr/bin/passwd-apuohjelma käyttää tätä oikeutta oletuksena. Tämä tarkoittaa, että salasanaa vaihdettaessa käyttäjästä tulee väliaikaisesti pääkäyttäjä, jolloin hän voi kirjoittaa /etc/shadow-tiedostoon. Voit nähdä SUID-luvan ls -l как s paikassa, jossa normaalisti odotat näkeväsi x mukautettuja käyttöoikeuksia varten:
[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd
SUID-lupa saattaa näyttää hyödylliseltä (ja joissain tapauksissa sitä on), mutta samalla se on mahdollisesti vaarallinen. Jos sitä ei käytetä oikein, voit vahingossa antaa pääkäyttäjän oikeudet. Siksi suosittelen sen käyttöä vain erittäin huolellisesti.
Useimpien järjestelmänvalvojien ei koskaan tarvitse käyttää sitä; näet sen vain joissakin tiedostoissa, joissa käyttöjärjestelmän pitäisi asettaa se oletuksena.
Toinen erityislupa on ryhmätunniste (SGID). Tällä luvalla on kaksi vaikutusta. Kun sitä käytetään suoritettavaan tiedostoon, se antaa tiedoston suorittavalle käyttäjälle tiedoston ryhmän omistajan oikeudet. Joten SGID voi tehdä enemmän tai vähemmän saman asian kuin SUID. SGID:tä ei kuitenkaan käytännössä käytetä tähän tarkoitukseen.
Kuten SUID-lupien kohdalla, SGID:tä käytetään oletusasetuksena joihinkin järjestelmätiedostoihin.
Kun SGID käytetään hakemistoon, se voi olla hyödyllinen, koska voit määrittää sen avulla oletusryhmän omistajan kyseiseen hakemistoon luoduille tiedostoille ja alihakemistoille. Oletusarvoisesti, kun käyttäjä luo tiedoston, hänen todellinen ensisijainen ryhmänsä asetetaan kyseisen tiedoston ryhmän omistajaksi.
Tämä ei ole aina kovin hyödyllistä, varsinkin kun Red Hatin käyttäjät/CentOS Ensisijaiseksi ryhmäksi asetetaan käyttäjäryhmän nimi, ja käyttäjä on tämän ryhmän ainoa jäsen. Tämä tarkoittaa, että käyttäjän luomat tiedostot jaetaan oletusarvoisesti ryhmässä.
Kuvittele tilanne, jossa käyttäjät linda ja lori työskentelevät kirjanpidossa ja ovat ryhmän jäseniä tili. Oletuksena nämä käyttäjät ovat yksityisen ryhmän jäseniä, jonka ainoa jäsen he ovat. Molemmat käyttäjät ovat kuitenkin tiliryhmän jäseniä, mutta myös toissijaisena ryhmän parametreina.
Oletustilanne on, että kun joku näistä käyttäjistä luo tiedoston, ensisijaisesta ryhmästä tulee omistaja. Siksi oletusarvoisesti linda ei voi käyttää lorin luomia tiedostoja ja päinvastoin. Jos kuitenkin luot jaetun ryhmähakemiston (esim. /ryhmät/tili) ja varmistat, että SGID-käyttöoikeus on käytössä kyseisessä hakemistossa ja että ryhmätili on asetettu kyseisen hakemiston ryhmän omistajaksi, kaikki kyseisessä hakemistossa luodut tiedostot ja kaikki alihakemistoista saa myös oletusarvoisesti ryhmätilin ryhmän omistajaksi.
Tästä syystä SGID-oikeus on erittäin hyödyllinen lupa asettaa julkisiin ryhmähakemistoihin.
SGID-lupa näkyy ulostulossa ls -l как s kohdassa, josta normaalisti saisit luvan suorittaa ryhmä:
[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account
Kolmas erityisluvista on tarttuva bitti. Tämä lupa on hyödyllinen tiedostojen suojaamiseksi tahattomalta poistamiselta ympäristössä, jossa useilla käyttäjillä on kirjoitusoikeus samaan hakemistoon. Jos käytetään tarrabittiä, käyttäjä voi poistaa tiedoston vain, jos hän on tiedoston sisältävän tiedoston tai hakemiston omistaja. Tästä syystä sitä käytetään oletuskäyttöoikeutena /tmp-hakemistolle, ja se voi olla hyödyllinen myös julkisissa ryhmähakemistoissa.
Ilman tarrabittiä, jos käyttäjä voi luoda tiedostoja hakemistoon, hän voi myös poistaa tiedostoja kyseisestä hakemistosta. Julkisessa ryhmäympäristössä tämä voi olla ärsyttävää. Kuvittele käyttäjiä linda ja lori, joilla molemmilla on kirjoitusoikeudet /data/account-hakemistoon ja he saavat nämä oikeudet olemalla tiliryhmän jäseniä. Siksi linda voi poistaa lorin luomia tiedostoja ja päinvastoin.
Kun käytät tarrabittiä, käyttäjä voi poistaa tiedostoja vain, jos jokin seuraavista ehdoista toteutuu:
- Käyttäjä on tiedoston omistaja;
- Käyttäjä on sen hakemiston omistaja, jossa tiedosto sijaitsee.
Käytettäessä ls -l, voit nähdä tahmean palan muodossa t kohdassa, jossa normaalisti näet muiden suorittamisoikeudet:
[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/
Laajennettujen oikeuksien soveltaminen
Voit myös käyttää SUID-, SGID- ja sticky bitin levittämistä chmod. SUID:n numeerinen arvo on 4, SGID:n numeerinen arvo on 2 ja sticky bitin numeerinen arvo on 1.
Jos haluat käyttää näitä oikeuksia, sinun on lisättävä nelinumeroinen argumentti chmod, jonka ensimmäinen numero viittaa erityisiin käyttöoikeuksiin. Esimerkiksi seuraava rivi lisää SGID-oikeudet hakemistoon ja asettaa rwx:n käyttäjälle ja rx:n ryhmälle ja muille:
chmod 2755 /somedirTämä on melko epäkäytännöllistä, jos haluat nähdä nykyiset käyttöoikeudet, jotka on asetettu ennen kuin työskentelet chmod absoluuttisessa tilassa. (Sinulla on riski korvata käyttöoikeudet, jos et tee sitä.) Suosittelen siis suorittamista suhteellisessa tilassa, jos sinun on käytettävä jotakin erityisistä käyttöoikeuksista:
- SUID-käyttöön chmod u+s.
- SGID-käyttöön chmod g+s.
- Tahmeaseen käyttöön chmod +t, jota seuraa sen tiedoston tai hakemiston nimi, jolle haluat määrittää käyttöoikeudet.
Taulukossa on yhteenveto kaikesta, mitä sinun tulee tietää erityisten käyttöoikeuksien hallinnasta.

Esimerkki työskentelystä erityisoikeuksien kanssa
Tässä esimerkissä käytät erityisoikeuksia helpottaaksesi ryhmän jäsenten tiedostojen jakamista jaetussa ryhmähakemistossa. Määrität ID-bitin määritetylle ryhmätunnukselle sekä kiinnittyvälle bitille, ja näet, että kun ne on asetettu, niihin lisätään ominaisuuksia, jotka helpottavat ryhmän jäsenten yhteistyötä.
- Avaa pääte, jossa olet Linda-käyttäjä. Voit luoda käyttäjän komennolla lisää linda, lisää salasana passwd Linda.
- Luo /data-hakemisto juurihakemistoon ja /data/sales-alihakemisto komennolla mkdir -p /data/sales. Saattaa loppuun cd /data/myyntimennä myyntihakemistoon. Saattaa loppuun kosketa linda1 и kosketa linda2luodaksesi kaksi tyhjää lindan omistamaa tiedostoa.
- Suorittaa su-lisa vaihtaa nykyisen käyttäjän käyttäjäksi Lisa, joka on myös myyntiryhmän jäsen.
- Suorittaa cd /data/myynti ja suorita siitä hakemistosta ls -l. Näet kaksi linda-käyttäjän luomaa linda-ryhmään kuuluvaa tiedostoa. Saattaa loppuun rm -f linda*. Tämä poistaa molemmat tiedostot.
- Suorittaa kosketa lisa1 и kosketa lisa2luodaksesi kaksi tiedostoa, jotka omistaa käyttäjä lisa.
- Suorittaa su - nostaaksesi oikeutesi pääkäyttäjäksi.
- Suorittaa chmod g+s,o+t /data/myyntiasettaaksesi ryhmätunnisteen (GUID) bitin sekä kiinnibitin jaettuun ryhmähakemistoon.
- Suorittaa su-linda. Tee sitten kosketa linda3 и kosketa linda4. Sinun pitäisi nyt nähdä, että kaksi luomaasi tiedostoa omistaa myyntiryhmä, joka on /data/sales-hakemiston ryhmäomistaja.
- Suorittaa rm -rf lisa*. Tarrabitti estää näiden tiedostojen poistamisen Linda-käyttäjän puolesta, koska et ole näiden tiedostojen omistaja. Huomaa, että jos linda-käyttäjä on /data/sales-hakemiston omistaja, hän voi silti poistaa nämä tiedostot!
ACL-hallinta (setfacl, getfacl) Linux
Vaikka edellä käsitellyt laajennetut oikeudet lisäävät hyödyllisiä toimintoja tapaan, jolla Linux toimii käyttöoikeuksien kanssa, se ei salli käyttöoikeuksien myöntämistä useammalle kuin yhdelle käyttäjälle tai ryhmälle yhdessä tiedostossa.
Kulunvalvontaluettelot tarjoavat tämän ominaisuuden. Lisäksi niiden avulla järjestelmänvalvojat voivat asettaa oletuskäyttöoikeuksia monimutkaisella tavalla, jolloin asetetut käyttöoikeudet voivat vaihdella hakemistosta toiseen.
ACL:ien ymmärtäminen
Vaikka ACL-alijärjestelmä lisää paljon toimintoja palvelimeesi, sillä on yksi haittapuoli: kaikki apuohjelmat eivät tue sitä. Tästä syystä saatat menettää ACL-asetukset, kun kopioit tai siirrät tiedostoja, ja varmuuskopiointiohjelmistosi ei ehkä pysty varmuuskopioimaan ACL-asetuksiasi.
Tar-apuohjelma ei tue ACL-luetteloita. Varmista, että ACL-asetukset eivät katoa, kun luot varmuuskopion, käyttämällä tähti tervan sijasta. tähti toimii samoilla vaihtoehdoilla kuin tar; se vain lisää tuen ACL-asetuksiin.
Voit myös varmuuskopioida ACL-luettelot getfacl, joka voidaan palauttaa setfacl-komennolla. Luo varmuuskopio käyttämällä getfacl -R /hakemisto > tiedosto.acls. Palauta asetukset varmuuskopiotiedostosta käyttämällä setfacl --restore=file.acl.
Joidenkin työkalujen tuen puuttumisen ei pitäisi olla ongelma. ACL-luetteloita käytetään usein hakemistoihin rakenteellisena toimenpiteenä yksittäisten tiedostojen sijaan.
Siksi niitä ei tule olemaan monia, vaan vain muutamia, joita käytetään tiedostojärjestelmän älykkäissä paikoissa. Siksi alkuperäisten ACL-luetteloiden palauttaminen on suhteellisen helppoa, vaikka varmuuskopiointiohjelmistosi ei tue niitä.
Tiedostojärjestelmän valmistelu ACL-luetteloita varten
Ennen kuin alat työskennellä ACL-luetteloiden kanssa, sinun on ehkä valmisteltava tiedostojärjestelmäsi tukemaan ACL-luetteloita. Koska tiedostojärjestelmän metatietoja on laajennettava, tiedostojärjestelmässä ei aina ole oletusarvoista tukea ACL:ille. Jos saat "toimintoa ei tueta" -sanoman määrittäessäsi ACL-luetteloita tiedostojärjestelmälle, tiedostojärjestelmäsi ei ehkä tue ACL-luetteloita.
Tämän korjaamiseksi sinun on lisättävä vaihtoehto acl teline tiedostossa /etc/fstab, jotta tiedostojärjestelmä liitetään oletuksena ACL-tuella.
ACL-asetusten muuttaminen ja tarkasteleminen setfacl- ja getfacl-ohjelmilla
Tarvitset komennon ACL:n asettamiseen setfacl. Nähdäksesi nykyiset ACL-asetukset, sinun on getfacl. Tiimi ls -l ei näytä olemassa olevia ACL-luetteloita; se näyttää vain +-merkin käyttöoikeusluettelon jälkeen, mikä osoittaa, että ACL:t koskevat myös tiedostoa.
Ennen ACL-luetteloiden määrittämistä on aina hyvä idea näyttää nykyiset ACL-asetukset getfacl. Alla olevassa esimerkissä näet nykyiset käyttöoikeudet, kuten kuvassa ls -l, ja myös kuten kuvassa getfacl. Jos katsot tarpeeksi tarkasti, huomaat, että näytettävät tiedot ovat täsmälleen samat.
[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
Komennon suorittamisen seurauksena getfacl alta näet, että käyttöoikeudet näytetään kolmelle eri objektille: käyttäjä, ryhmä ja muut. Lisätään nyt ACL, joka antaa luku- ja suoritusoikeudet myös myyntiryhmälle. komento tähän setfacl -mg:sales:rx /dir. Tässä joukkueessa -m ilmaisee, että nykyiset ACL-asetukset on muutettava. Sen jälkeen g:sales:rx käskee komennon asettaa luku-suorita ACL (rx) ryhmälle (g) myynti. Alla näet, miltä komento näyttää, sekä getfacl-komennon tulosteen nykyisten ACL-asetusten muuttamisen jälkeen.
[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
Nyt kun ymmärrät ryhmä-ACL:n määrittämisen, käyttäjien ja muiden käyttäjien ACL-luettelot on helppo ymmärtää. Esimerkiksi komento setfacl -mu:linda:rwx /data antaa oikeudet linda-käyttäjälle /data-hakemistossa tekemättä siitä omistajaa tai muuttamatta nykyisen omistajan tehtävää.
Joukkue setfacl on monia ominaisuuksia ja vaihtoehtoja. Yksi vaihtoehto on erityisen tärkeä, parametri -R. Jos tätä asetusta käytetään, se asettaa ACL:n kaikille tiedostoille ja alihakemistoille, jotka ovat tällä hetkellä hakemistossa, jossa ACL asetetaan. On suositeltavaa käyttää tätä vaihtoehtoa aina, kun muutat olemassa olevien hakemistojen ACL-luetteloita.
Työskentely oletusarvoisten ACL-luetteloiden kanssa
Yksi ACL-luetteloiden käytön eduista on, että voit myöntää käyttöoikeuksia useille käyttäjille tai ryhmille hakemistossa. Toinen etu on, että voit ottaa perinnön käyttöön työskentelemällä oletusarvoisten ACL-luetteloiden kanssa.
Asettamalla oletusarvoisen ACL:n määrität oikeudet, jotka asetetaan kaikille hakemistoon luoduille uusille kohteille. Huomaa, että oletusarvoinen ACL ei muuta olemassa olevien tiedostojen ja alihakemistojen käyttöoikeuksia. Jos haluat muuttaa niitä, sinun on lisättävä myös normaali ACL!
Tämä on tärkeää tietää. Jos haluat käyttää ACL-luetteloa useiden käyttäjien tai ryhmien määrittämiseen käyttämään samaa hakemistoa, sinun on asetettava ACL kahdesti. Ensimmäinen käyttökerta setfacl -R-mmuuttaaksesi nykyisten tiedostojen ACL-luetteloita. Käytä sitten setfacl-md:huolehtia kaikista uusista elementeistä, jotka myös luodaan.
ACL-oletusarvon määrittämiseksi sinun tarvitsee vain lisätä vaihtoehto d vaihtoehdon jälkeen -m (järjestys on tärkeä!). Käytä siis setfacl -md:g:sales:rx /datajos haluat ryhmämyynnin lukevan ja suorittavan mitä tahansa /data-hakemistoon luotua.
Käytettäessä oletusarvoisia ACL-luetteloita voi myös olla hyödyllistä määrittää ACL-luettelot muille. Tässä ei yleensä ole paljon järkeä, koska voit myös muuttaa muiden käyttäjien oikeuksia chmod. Kuitenkin mitä ei voi tehdä chmod, on määrittää oikeudet, jotka on myönnettävä muille käyttäjille jokaista luotua uutta tiedostoa varten. Jos haluat estää muita saamasta oikeuksia kaikkeen, joka on luotu /datassa, käytä esim setfacl -md:o::- /data.
ACL-luettelot ja normaalit käyttöoikeudet eivät aina ole hyvin integroituja. Ongelmia voi ilmetä, jos käytät oletusarvoista ACL-luetteloa hakemistoon, sitten kohteet lisätään kyseiseen hakemistoon ja yrität sitten muuttaa normaaleja käyttöoikeuksia. Muutokset, jotka koskevat normaaleja käyttöoikeuksia, eivät näy hyvin ACL-katsauksessa. Voit välttää ongelmia asettamalla ensin normaalit käyttöoikeudet ja sitten oletusarvoiset ACL-luettelot (ja yritä olla muuttamatta niitä sen jälkeen).
Esimerkki korotetusta oikeuksien hallinnasta ACL:ien avulla
Tässä esimerkissä jatkat aiemmin luomillasi /data/account- ja /data/sales-hakemistoilla. Aiemmissa esimerkeissä varmistit, että myyntiryhmällä on oikeudet /data/sales ja tiliryhmällä /data/account käyttöoikeudet.
Varmista ensin, että tiliryhmä saa lukuoikeudet /data/sales-hakemistosta ja myyntiryhmä saa lukuoikeudet /data/account-hakemistosta.
Tämän jälkeen asetat oletusarvoiset ACL-luettelot varmistaaksesi, että kaikilla uusilla tiedostoilla on oikeat käyttöoikeudet kaikille uusille kohteille.
- Avaa terminaali.
- Suorittaa setfacl -mg:tili:rx /data/myynti и setfacl -mg:myynti:rx /data/tili.
- Suorittaa getfaclvarmistaaksesi, että käyttöoikeudet on asetettu haluamallasi tavalla.
- Suorittaa setfacl -md:g:tili:rwx,g:sales:rx /data/salesasettaaksesi oletusarvoisen ACL:n myyntihakemistolle.
- Lisää oletusarvoinen ACL /data/account-hakemistolle käyttämällä setfacl -md:g:myynti:rwx,g:tili:rx /data/tili.
- Varmista, että ACL-asetukset ovat voimassa lisäämällä uusi tiedosto kansioon /data/sales. Saattaa loppuun kosketa /data/sales/newfile ja tee getfacl /data/sales/newfile tarkistaaksesi nykyiset käyttöoikeudet.
Oletuskäyttöoikeuksien asettaminen umaskilla
Yllä opit työskentelemään oletusarvoisten ACL-luetteloiden kanssa. Jos et käytä ACL-luetteloa, on olemassa shell-vaihtoehto, joka määrittää saamasi oletusoikeudet: umask (käänteinen maski). Tässä osiossa opit muuttamaan oletuskäyttöoikeuksia umask.
Olet ehkä huomannut, että kun luot uuden tiedoston, jotkin oletusoikeudet asetetaan. Nämä käyttöoikeudet määräytyvät asetuksen mukaan umask. Tämä komentotulkkiasetus koskee kaikkia käyttäjiä kirjautumisen yhteydessä. Parametrissa umask käytetään numeerista arvoa, joka vähennetään tiedostolle automaattisesti määritettävistä enimmäisoikeuksista; tiedostojen enimmäisasetus on 666 ja hakemistojen 777.
Tähän sääntöön sovelletaan kuitenkin joitain poikkeuksia. Löydät täydellisen yleiskatsauksen asetuksista umask alla olevassa taulukossa.
Käytetyistä numeroista umask, kuten komennon numeeristen argumenttien tapauksessa chmod, ensimmäinen numero viittaa käyttäjän käyttöoikeuksiin, toinen numero viittaa ryhmän käyttöoikeuksiin ja viimeinen viittaa muille asetettuihin oletusoikeuksiin. Merkitys umask oletusarvo 022 antaa 644 kaikille uusille tiedostoille ja 755 kaikille uusille palvelimellesi luoduille hakemistoille.
Täydellinen yleiskatsaus kaikista numeerisista arvoista umask ja niiden tulokset alla olevassa taulukossa.

Helppo tapa nähdä, miten umask-asetus toimii, on seuraava: aloita tiedoston oletusoikeuksilla 666 ja vähennä umask saadaksesi tehokkaat käyttöoikeudet. Tee sama hakemistolle ja sen oletusoikeuksille 777.
On kaksi tapaa muuttaa umask-asetusta: kaikille käyttäjille ja yksittäisille käyttäjille. Jos haluat asettaa umask-arvon kaikille käyttäjille, sinun on varmistettava, että umask-asetus otetaan huomioon käynnistettäessä shell-ympäristötiedostoja, kuten /etc/profile on määritetty. Oikea tapa on luoda komentosarja nimeltä umask.sh hakemistoon /etc/profile.d ja määrittää umask, jota haluat käyttää kyseisessä komentosarjassa. Jos umask-arvoa muutetaan tässä tiedostossa, sitä sovelletaan kaikkiin käyttäjiin palvelimelle kirjautumisen jälkeen.
Vaihtoehto umask-asetukselle /etc/profile ja siihen liittyvien tiedostojen kautta, missä se koskee kaikkia sisäänkirjautuvia käyttäjiä, on muuttaa umask-asetuksia tiedostossa nimeltä .profile, joka luodaan kunkin käyttäjän kotihakemistoon.
Tässä tiedostossa käytetyt asetukset koskevat vain yksittäistä käyttäjää; joten tämä on hyvä tapa, jos tarvitset lisätietoja. Itse pidän tästä ominaisuudesta muuttaa pääkäyttäjän oletusumask arvoon 027, kun normaalit käyttäjät käyttävät oletusarvoa 022.
Työskentely laajennettujen käyttäjämääritteiden kanssa
Tämä on viimeinen osio oikeuksista Linux.
Käyttöoikeuksia käsiteltäessä käyttäjä- tai ryhmäobjektin ja kyseisten käyttäjä- tai ryhmäobjektien tiedostoon tai hakemistoon liittyvien käyttöoikeuksien välillä on aina yhteys. Vaihtoehtoinen menetelmä palvelimella olevien tiedostojen suojaamiseen Linux — työskentely ominaisuuksien kanssa.
Attribuutit tekevät tehtävänsä riippumatta siitä, kuka käyttäjä käyttää tiedostoa.
Kuten ACL-luetteloissa, tiedostomääritteissä on ehkä oltava tämä vaihtoehto Kiinnitä.
Tämä on vaihtoehto user_xattr. Jos saat "toimintoa ei tueta" -viestin käyttäessäsi laajennettuja käyttäjämääritteitä, muista asettaa parametri Kiinnitä tiedostossa /etc/fstab.
Monet ominaisuudet on dokumentoitu. Jotkut attribuutit ovat saatavilla, mutta niitä ei ole vielä otettu käyttöön. Älä käytä niitä; he eivät tuo sinulle mitään.
Alla on hyödyllisimmät määritteet, joita voit käyttää:
A Tämä määrite varmistaa, että tiedoston tiedoston käyttöaika ei muutu.
Tyypillisesti aina, kun tiedosto avataan, tiedoston käyttöaika on kirjattava tiedoston metatietoihin. Tämä vaikuttaa negatiivisesti suorituskykyyn; joten tiedostoille, joita käytetään säännöllisesti, määrite A voidaan käyttää tämän ominaisuuden poistamiseen käytöstä.
a Tämän määritteen avulla voit lisätä, mutta ei poistaa tiedostoa.
c Jos käytät tiedostojärjestelmää, joka tukee volyymitason pakkausta, tämä tiedostomäärite varmistaa, että tiedosto pakataan, kun pakkausmekanismi otetaan käyttöön ensimmäisen kerran.
D Tämä attribuutti varmistaa, että tiedostoihin tehdyt muutokset kirjoitetaan välittömästi levylle sen sijaan, että ne tallennettaisiin välimuistiin ensin. Tämä on hyödyllinen määrite tärkeissä tietokantatiedostoissa, jotta ne eivät katoa tiedostovälimuistin ja kiintolevyn väliin.
d Tämä attribuutti varmistaa, että tiedostoa ei tallenneta varmuuskopioihin, joissa käytetään dump-apuohjelmaa.
I Tämä määrite mahdollistaa sen hakemiston indeksoinnin, jossa se on käytössä. Tämä tarjoaa nopeamman tiedostojen pääsyn primitiivisille tiedostojärjestelmille, kuten Ext3, jotka eivät käytä B-tree-tietokantaa nopeaan tiedostojen käyttöön.
i Tämä attribuutti tekee tiedostosta muuttumattoman. Siksi tiedostoon ei voi tehdä muutoksia, mikä on hyödyllistä lisäsuojausta tarvitseville tiedostoille.
j Tämä attribuutti varmistaa, että ext3-tiedostojärjestelmässä tiedosto kirjoitetaan ensin lokiin ja sitten kiintolevyn tietolohkoihin.
s Korvaa ne lohkot, joissa tiedosto on tallennettu, nollaan tiedoston poistamisen jälkeen. Tämä varmistaa, että tiedostoa ei voida palauttaa sen jälkeen, kun se on poistettu.
u Tämä attribuutti tallentaa tiedot poistosta. Tämän avulla voit kehittää apuohjelman, joka toimii näiden tietojen avulla ja pelastaa poistetut tiedostot.
Jos haluat käyttää määritteitä, voit käyttää komentoa pulista. Esimerkiksi käyttää chattr +s jokin tiedostokäyttää attribuutteja johonkin tiedostoon. Onko attribuutti poistettava? Käytä sitten chattr -s jokin tiedostoja se poistetaan. Saat yleiskatsauksen kaikista tällä hetkellä käytetyistä määritteistä käyttämällä komentoa ssattr.
Yhteenveto
Tässä artikkelissa opit työskentelemään käyttöoikeuksien kanssa. Luet kolmesta perusluvasta, lisäoikeuksista ja ACL-luetteloiden käyttämisestä tiedostojärjestelmässä. Opit myös käyttämään umask-vaihtoehtoa oletuskäyttöoikeuksien käyttämiseen. Tämän artikkelin lopussa opit käyttämään käyttäjän laajennettuja attribuutteja tiedostojärjestelmän lisäsuojauksen lisäämiseen.
Jos pidit tästä käännöksestä, kirjoita siitä kommentteihin. Motivaatiota hyödyllisten käännösten tekemiseen tulee lisää.
Korjattu artikkelin kirjoitus- ja kielioppivirheitä. Muutamia isoja kappaleita on pienennetty pienempiin luettavuuden parantamiseksi.
Sen sijaan, että "Vain henkilö, jolla on järjestelmänvalvojan oikeudet hakemistoon, voi hakea suorituslupaa." korjattu "Vain joku, jolla on kirjoitusoikeudet hakemistoon, voi hakea suorituslupaa.", mikä olisi oikeampaa.
Kiitos kommenteista .
Vaihdettu:
Jos et ole käyttäjän omistaja, komentotulkki tarkistaa, oletko ryhmän jäsen, joka tunnetaan myös nimellä tiedoston ryhmä.To:
Jos et ole tiedoston omistaja, komentotulkki tarkistaa, oletko sellaisen ryhmän jäsen, jolla on tiedoston käyttöoikeudet. Jos olet tämän ryhmän jäsen, pääset tiedostoon ryhmän asettamilla käyttöoikeuksilla, ja komentotulkki lopettaa tarkistamisen.Kiitos kommentistasi
Lähde: will.com
