Android

Chmod-komento linuxissa (tiedostooikeudet)

EXPLAINED: How to use "chmod" command [COMPLETE GUIDE]

EXPLAINED: How to use "chmod" command [COMPLETE GUIDE]

Sisällysluettelo:

Anonim

Linuxissa tiedostoihin pääsyä hallitaan tiedostojen käyttöoikeuksien, määritteiden ja omistajuuden kautta. Tämä varmistaa, että vain valtuutetut käyttäjät ja prosessit voivat käyttää tiedostoja ja hakemistoja.

Tämä opas sisältää kuinka chmod komennolla voidaan muuttaa tiedostojen ja hakemistojen käyttöoikeuksia.

Linux-tiedostooikeudet

Ennen kuin jatkat, selitetään Linux-käyttöoikeuksien perusmalli.

Linuxissa kukin tiedosto liitetään omistajaan ja ryhmään, ja niille annetaan lupaoikeudet kolmelle eri käyttäjäryhmälle:

  • Tiedoston omistaja. Ryhmän jäsenet.Muut (kaikki muut).

Tiedoston omistajuutta voidaan muuttaa käyttämällä chown ja chgrp komentoja.

Jokaisessa luokassa on kolme tiedostooikeuksien tyyppiä:

  • Lukuoikeus.Kirjoitusoikeus.Toimitusoikeus.

Tämän käsitteen avulla voit määrittää, mitkä käyttäjät saavat lukea tiedoston, kirjoittaa tiedostoon tai suorittaa tiedoston.

Tiedostojen käyttöoikeuksia voidaan tarkastella komennolla ls :

ls -l filename.txt

-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type

Ensimmäinen merkki näyttää tiedostotyypin. Se voi olla tavallinen tiedosto ( - ), hakemisto ( d ), symbolinen linkki ( l ) tai mikä tahansa muu erityyppinen tiedosto.

Seuraavat yhdeksän merkkiä edustavat tiedostooikeuksia, kolme kolmen merkin kolmesta kolmosta. Ensimmäinen kolmikko näyttää omistajan oikeudet, toinen yhden ryhmän käyttöoikeudet ja viimeinen kolmikko näyttää kaikkien muiden käyttöoikeudet. Käyttöoikeuksilla voi olla erilainen merkitys tiedostotyypistä riippuen.

Yllä olevassa esimerkissä ( rw-r--r-- ) tarkoittaa, että tiedoston omistajalla on rw- ja kirjoitusoikeudet ( rw- ), ryhmällä ja muilla on vain lukuoikeudet ( r-- ).

Jokainen kolmesta lupakolminnosta voidaan rakentaa seuraavista merkeistä ja niillä voi olla erilaisia ​​vaikutuksia riippuen siitä, asetetaanko ne tiedostoksi vai hakemistoon:

Käyttöoikeuksien vaikutus tiedostoihin

Lupa Merkki Merkitys tiedostossa
Lukea - Tiedostoa ei voi lukea. Et voi katsella tiedoston sisältöä.
r Tiedosto on luettavissa.
Kirjoittaa - Tiedostoa ei voi muuttaa tai muokata.
w Tiedostoa voidaan muuttaa tai muokata.
Suorittaa - Tiedostoa ei voi suorittaa.
x Tiedosto voidaan suorittaa.
s Jos se löytyy user kolmiosta, se asettaa setuid bitin. Jos se löytyy setgid , se asettaa setgid bitin. Se tarkoittaa myös, että x lippu on asetettu.

Kun setgid tai setgid liput asetetaan suoritettavalle tiedostolle, tiedosto suoritetaan tiedoston omistajan ja / tai ryhmän oikeuksilla.

S Sama kuin s mutta x -lippua ei ole asetettu. Tätä lipua käytetään harvoin tiedostoissa.
t Jos se löytyy others triplettistä, se asettaa sticky bitin.

Se tarkoittaa myös, että x lippu on asetettu. Tämä lippu on hyödytön tiedostoissa.

T Sama kuin t mutta x -lippua ei ole asetettu. Tämä lippu on hyödytön tiedostoissa.

Käyttöoikeuksien vaikutus hakemistoihin (kansioihin)

Linuxissa hakemistot ovat erityyppisiä tiedostoja, jotka sisältävät muita tiedostoja ja hakemistoja.

Lupa Merkki Merkitys hakemistossa
Lukea - Hakemiston sisältöä ei voida näyttää.
r Hakemiston sisältö voidaan näyttää.

(Esimerkiksi, voit luetteloida tiedostoja hakemiston sisällä ls .)

Kirjoittaa - Hakemiston sisältöä ei voi muuttaa.
w Hakemiston sisältöä voidaan muuttaa.

(esim. et voi luoda uusia tiedostoja, poistaa tiedostoja.. jne.)

Suorittaa - Hakemistoa ei voida muuttaa.
x Hakemistoon voidaan navigoida cd .
s Jos se löytyy user kolminkertaisesta, se asettaa setuid bitin. Jos se löytyy setgid se asettaa setgid bitin. Se tarkoittaa myös, että x lippu on asetettu. Kun setgid lippu on asetettu hakemistoon, siihen luodut uudet tiedostot perivät hakemistoryhmän tunnuksen (GID) tiedoston luoneen käyttäjän ensisijaisen ryhmätunnuksen sijasta.

setuid ei ole vaikutusta hakemistoihin.

S Sama kuin s mutta x -lippua ei ole asetettu. Tämä lippu on hyödytön hakemistoissa.
t Jos se löytyy others triplettistä, se asettaa sticky bitin.

Se tarkoittaa myös, että x lippu on asetettu. Kun tahmea bitti on asetettu hakemistoon, vain tiedoston omistaja, hakemiston omistaja tai järjestelmänvalvojan käyttäjä voi poistaa tai nimetä uudelleen hakemistossa olevia tiedostoja.

T Sama kuin t mutta x -lippua ei ole asetettu. Tämä lippu on hyödytön hakemistoissa.

Käyttämällä chmod

chmod komento on seuraavassa yleisessä muodossa:

chmod MODE FILE…

chmod komennon avulla voit muuttaa tiedoston käyttöoikeuksia joko symbolisella tai numeerisella moodilla tai viitetiedostolla. Selitämme moodit yksityiskohtaisemmin myöhemmin. Komento voi hyväksyä yhden tai useampia tiedostoja ja / tai hakemistoja, jotka on erotettu välilyönnillä argumentteina.

Vain root, tiedoston omistaja tai käyttäjä, jolla on sudo-oikeudet, voivat muuttaa tiedoston käyttöoikeuksia. Ole erityisen varovainen, kun käytät chmod , varsinkin kun muutat oikeuksia rekursiivisesti.

Symbolinen (teksti) menetelmä

chmod komennon syntaksilla symbolista tilaa käytettäessä on seuraava muoto:

chmod perms… FILE…

Ensimmäinen lippusarja ( ), käyttäjien liput, määrittelee, mitkä käyttäjät luokkaa tiedoston käyttöoikeuksia muutetaan.

  • u - tiedoston omistaja. g - Ryhmän jäsenet. o - Kaikki muut käyttäjät. a - Kaikki käyttäjät, identtisiä ugo .

Jos käyttäjän lippu jätetään pois, oletusarvo on a ja umaskin asettamiin oikeuksiin ei vaikuteta.

Toinen lippu ( ), operaation liput, määrittelee onko luvat poistettava, lisättävä vai asetettava:

  • - Poistaa määritetyt käyttöoikeudet. + Lisää määritetyt käyttöoikeudet. = Muuttaa nykyiset käyttöoikeudet määritettyihin oikeuksiin. Jos oikeuksia ei määritetä = -merkin jälkeen, kaikki määritetyn käyttäjäluokan oikeudet poistetaan.

Käyttöoikeudet (luvat perms… ) voidaan nimenomaisesti asettaa käyttämällä joko nollaa tai yhtä tai useampaa seuraavista kirjaimista: r , w , x , X , s ja t . Käytä yksittäistä kirjainta sarjoista u , g ja o kun kopioit käyttöoikeuksia yhdestä toiseen käyttäjäluokkaan.

Kun asetat käyttöoikeuksia useammalle kuin yhdelle käyttäjäluokalle ( ), erota symboliset tilat pilkuilla (ilman välilyöntejä).

Alla on esimerkkejä chmod komennon käytöstä symbolisessa tilassa:

  • Anna ryhmän jäsenille lupa lukea tiedostoa, mutta ei kirjoittaa ja suorittaa sitä:

    chmod g=r filename

    Poista kaikkien käyttäjien suoritusoikeudet:

    chmod ax filename

    Poista toisten käyttäjien kirjoitusoikeudet vastakkain:

    chmod -R ow dirname

    Poista lukemis-, kirjoitus- ja käyttöoikeudet kaikille käyttäjille paitsi tiedoston omistajalle:

    chmod og-rwx filename

    Sama asia voidaan suorittaa myös käyttämällä seuraavaa muotoa:

    chmod og= filename

    Annetaan lukea, kirjoittaa ja suorittaa lupa tiedoston omistajalle, lukea käyttöoikeuksia tiedostoryhmälle eikä oikeuksia kaikille muille käyttäjille:

    chmod u=rwx, g=r, o= filename

    Lisää tiedoston omistajan käyttöoikeudet tiedostojen ryhmän jäsenten oikeuksiin:

    chmod g+u filename

    Lisää tarttuva bitti annettuun hakemistoon:

    chmod o+t dirname

Numeerinen menetelmä

chmod komennon syntaksilla numeerista menetelmää käytettäessä on seuraava muoto:

chmod NUMBER FILE…

Kun käytät numeerista tilaa, voit asettaa oikeudet kaikille kolmelle käyttäjäluokalle (omistaja, ryhmä ja kaikki muut) samanaikaisesti.

NUMBER voi olla 3 tai 4 numeroa.

Kun käytetään 3-numeroista numeroa, ensimmäinen numero edustaa tiedoston omistajan oikeuksia, toinen tiedosto-ryhmässä ja viimeinen kaikkien muiden käyttäjien oikeudet.

Jokaisella kirjoitus-, lukemis- ja suoritusluvalla on seuraava numeroarvo:

  • r (lue) = 4 w (kirjoita) = 2 x (suorita) = 1 ei lupaa = 0

Tietyn käyttäjäluokan käyttöoikeuksien lukumäärää edustaa kyseisen ryhmän käyttöoikeuksien arvojen summa.

Tiedoston käyttöoikeuksien selvittämiseksi numeerisessa tilassa laske vain kaikkien käyttäjien luokkien kokonaismäärät. Jos esimerkiksi haluat antaa luku-, kirjoitus- ja toteutusoikeuden tiedoston omistajalle, lukea ja toteuttaa tiedostojen ryhmän käyttöoikeuksia ja lukea vain muiden käyttäjien käyttöoikeuksia, toimi seuraavasti:

  • Omistaja: rwx = 4 + 2 + 1 = 7ryhmä: rx = 4 + 0 + 1 = 5Muut: rx = 4 + 0 + 0 = 4

Yllä olevaa menetelmää käyttämällä saadaan numero 754 , joka edustaa haluttuja oikeuksia.

Aseta setgid , setgid ja setgid neljään numeroon.

Kun käytetään nelinumeroista numeroa, ensimmäisellä numerolla on seuraava merkitys:

  • setuid = 4setgid = 2sticky = 1 ei muutoksia = 0

Seuraavilla kolmella numerolla on sama merkitys kuin käytettäessä 3-numeroista numeroa.

Jos ensimmäinen numero on 0, sen voidaan jättää pois ja tilaa voidaan edustaa kolmella numerolla. Numeerinen tila 0755 on sama kuin 755 .

Laskeaksesi numeerisen tilan voit käyttää myös toista menetelmää (binaarimenetelmää), mutta se on hieman monimutkaisempi. Useimmille käyttäjille riittää se, että osaat laskea numeerisen tilan käyttämällä 4, 2 ja 1.

Voit tarkistaa tiedoston käyttöoikeudet numeerisessa merkinnässä stat komennolla:

stat -c "%a" filename

644

Tässä on esimerkkejä chmod komennon käytöstä numeerisessa tilassa:

  • Anna tiedoston omistajalle luku- ja kirjoitusoikeudet ja vain ryhmän jäsenille ja kaikille muille käyttäjille lukemisoikeudet:

    chmod 644 dirname

    Anna tiedoston omistajalle lukea, kirjoittaa ja suorittaa käyttöoikeuksia, lukea ja toteuttaa käyttöoikeuksia ryhmän jäsenille eikä oikeuksia kaikille muille käyttäjille:

    chmod 750 dirname

    Anna lukemiselle, kirjoittamiselle ja suorittamiselle luvat ja tarrabitti tietylle hakemistolle:

    chmod 1777 dirname

    Aseta rekursiivisesti lukemisen, kirjoittamisen ja suorittamisen käyttöoikeudet tiedoston omistajalle, eikä oikeuksia kaikille muille tietyssä hakemistossa oleville käyttäjille:

    chmod -R 700 dirname

Viitetiedoston käyttäminen

--reference=ref_file -asetuksen avulla voit asettaa tiedoston käyttöoikeudet samoiksi kuin määritetyn viitetiedoston ( ref_file ).

chmod --reference=REF_FILE FILE

Esimerkiksi seuraava komento määrittää file1 käyttöoikeudet file2

chmod --reference=file1 file2

Vaihda tiedoston käyttöoikeudet rekursiivisesti

Voit käyttää rekursiivisesti kaikkia tiedostoja ja hakemistoja annetussa hakemistossa käyttämällä -R (- --recursive ) -vaihtoehtoa:

chmod -R MODE DIRECTORY

Esimerkiksi, jos haluat muuttaa kaikkien tiedostojen ja alihakemistojen käyttöoikeudet hakemistoon /var/www hakemistoon 755 käytä:

chmod -R 755 /var/www

Käyttö symbolisilla linkkeillä

Symbolisilla linkkeillä on aina 777 käyttöoikeutta.

Oletusarvon mukaan muutettaessa symlinkin oikeuksia chmod muuttaa käyttöoikeuksia tiedostoon, johon linkki osoittaa.

chmod 755 symlink

On mahdollista, että sen sijaan, että muutat kohteen omistajuutta, saat virheilmoituksen "ei pääse" linkkiä: Lupa evätty "-virheen.

Virhe ilmenee, koska oletuksena useimmissa Linux-jakeluissa linkit on suojattu, etkä voi toimia kohdetiedostoissa. Tämä vaihtoehto on määritetty /proc/sys/fs/protected_symlinks . 1 tarkoittaa käytössä ja 0 pois käytöstä. On suositeltavaa olla poistamatta käytöstä linkkisuojausta.

Tiedostojen käyttöoikeuksien muuttaminen joukkona

Joskus on tilanteita, joissa joudut vaihtamaan tiedostojen ja hakemistojen käyttöoikeudet irtotavarana.

Yleisin tapaus on muuttaa rekursiivisesti verkkosivustotiedoston käyttöoikeudet 644 ja hakemiston käyttöoikeudet 755 .

Numeerisen menetelmän käyttäminen:

find /var/www/my_website -type d -exec chmod 755 {} ; find /var/www/my_website -type f -exec chmod 644 {} ;

Symbolisen menetelmän käyttäminen:

find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ; find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;

find komento etsii tiedostoja ja hakemistoja hakemistosta /var/www/my_website ja siirtää jokaisen löydetyn tiedoston ja hakemiston chmod komentoon oikeuksien asettamiseksi.

johtopäätös

chmod komento muuttaa tiedoston käyttöoikeuksia. Käyttöoikeudet voidaan asettaa käyttämällä joko symbolista tai numeerista tilaa.

Lisätietoja chmod on chmod-man-sivulla.

chmod-terminaali