Lejet, chmod, umask dhe profilet

Dritat []

Ince S GNU / Linux është arrihen me një ndërfaqe grafike të pasur të tilla si Gnome apo KDE, kur kemi nevojë për të ndryshuar të drejtat e hyrjes në kartela apo drejtori zakonisht bëjmë nëpër fletë të pronës për përgjegjësin e file. Por herë pas here, ne gjejmë se i japim disa stil udhëzimi, "të ndryshuar të drejtat të 755" ose "Vendoseni mbi një maskë 022" Por çfarë është kjo në lidhje me 755 dhe 022? Ose ne ishim marrë disi i befasuar kur, në Ubuntu, ne shohim se ne mund ta lexoni 'përdoruesit në shtëpi listave të tjera Si është e mundur?

Marrë dosjen e mëposhtme:

  -l jdoe @ Ubuntu: ~ $ ls-l
 -07-05 1 :05 midirectorio drwxr-xr-x 2 jdoe mygroup 2008 -07 me 5 janar 4096: 05 mydirectory
 jdoe migrupo 12 2008 -07-05 1 : 10 test -RW-r - r - 1 jdoe mygroup -07 në 5 dhjetor 2008 1: test 10 

Ne kemi një fotografi të vetme të quajtur "test" e krijuar nga ne që i është dhënë, si parazgjedhje, lejet rw-r--r-- dhe një mydirectory directory "edhe me lejet default rwxr-xr-x .

Vini re që ne të harrojmë shkronjës së parë ose shkrimin e seri. Në rastin e file, një dash "-" drejtori dhe një "d". Karakter i parë ka një kuptim të jashtëm të drejtat, dhe tregon llojin e hyrjes.

E para tre karaktere (-rw) përfaqësojnë të drejtat e përdoruesit i cili e zotëron fotografi (jdoe), pas tri (r -), në grupin që zotëron file (mygroup) dhe e fundit në tre (r -) me pjesën tjetër përdoruesit.

Nga ana tjetër, të drejtat të caktuar janë tre: lexoni / lexoni (r), shkruani / shkruani (w) dhe ekzekutuar / ekzekutuar (x). Si është e ndjen në qoftë se një skenar në një vend të veçantë do të thotë se përdoruesi ose grup të përdoruesve të përfshirë, pa leje të tillë. Kështu që anëtarët e grupit "mygroup" (r - -) kanë lexuar vetëm leje, por nuk shkruaj apo të kandidojë si duket një dash në vend të "w" dhe "x".

A bit e aritmetike binare

lejeve të Merrni dhe zëvendësim për një "0" scripts dhe për një "1" çdo letër që shfaqet në vendin e vet dhe të bëjë të konvertimit nga binar në dhjetor oktal (me vetëm tre bit mund të përfaqësojnë 0-7). Lejet për file dhe directory, ne do të jetë si vijon:

Prek Leje Dyjor Oktal
përdorues RW- 110 2 2 +2 1 +0 = 6 644
grup r - 100 2 2 +0 +0 = 4
pushim r - 100 2 2 +0 +0 = 4
Prek Leje Dyjor Oktal
përdorues rwx 111 2 2 +2 1 +2 0 = 7 755
grup Rx 101 2 2 +0 +2 0 = 5
pushim Rx 101 2 2 +0 +2 0 = 5

Thjeshtimi

Oktal Lejet
0 - - -
1 - - X
2 - W -
3 - Wx
4 r - -
5 r - x
6 rw -
7 rwx

Ju nuk duhet të vërtetë për ta bërë këtë llogaritje çdo herë që dëshironi të dini përfaqësimit numerik e lejeve, është e lehtë për mësim nga pak ne i përdorim shënim.

Një tjetër mënyrë e thjeshtë për të parë nëse ne shikojmë në tabelën bashkangjitur, është të ketë një parasysh se 4 është leje lexuar, 2 në 1 shkrimit dhe ekzekutimit. Pra, nëse ne duhet të japë leje për lexim dhe shkrim kjo do të jetë: 4 2 = 6. Nëse, në vend të kësaj, të jepen lexuar dhe ekzekutuar 4 1 = 5.

Të drejtat më të zakonshme janë 755, 750, 644 dhe 640. Licenca 777 është "e rrezikshme" dhe i japim të gjitha lejet për të gjithë.

Modifikuar leje

Komanda për të ndryshuar lejet është chmod . Ashtu si pothuajse të gjitha komandës * NIX është fleksibël tim. Pa të cilët dëshirojnë të bëjnë një tutorial të plotë, të shihni disa prej përdor të tyre:

Supozoni test file krijuar në fillim, ai ishte një skenar bash dhe doni të japë leje për përdorues të ekzekutuar dhe të grupit, dhe për të hequr lejen lexuar për përdoruesit e tjerë.

Një mënyrë për të ripërcaktuar krejtësisht të drejtat të file: "Ai është" e gjatë ", por më i kuptueshëm

  =rwx, g =rx, o = test u chmod = rwx, g = Rx, o = test 

Një variant i këtij formulari është vetëm modifikime të përshtatshme për këtë gjendje origjinal:

  chmod + ug x, apo test 

Dmth "add" (+) ekzekutuar leje për të përdoruesit (u) dhe të grupit (g), dhe "hiq" (-) lexoni leje për përdoruesit e tjerë (o)

Por mënyra më e shpejtë është kjo:

  test chmod 750 test 

Në të gjitha tre rastet rezultati është i njëjtë:

  jdoe migrupo 12 2008 -07-05 02: 15 test -Rwxr-x --- 1 jdoe mygroup -07 në dhjetor 5 02: 15 test 2008 

Si një shembull të dytë mendoj se ne duam të tërheqë lejen për të lexuar dhe ekzekutuar directory mydirectory dhe të gjitha dosjet dhe subdirectories ai përmban për përdoruesit e tjerë.

  o-rx midirectorio chmod-R o-Rx mydirectory 

Chmod-R tregon për të bërë operacionin directory mbi përmbajtjen e saj.

Maska leje

Në fillim ne krijuam një fotografi të provuar dhe mydirectory directory, por për të krijuar tyre nuk duhet të caktojë ndonjë leje. Sistemi ka një vlerë të quajtur umask përcakton të drejtat, si parazgjedhje, çdo herë kemi krijuar një file apo directory. Dhe kjo mund të ndryshohet në çdo kohë me komandën umask .

Kur ne krijuam file testin me editor teksti që donte të caktojë, të djeg, rreth 666 leje. Dmth lexuar / shkruar për të gjithë. Por vlera e umask ishte 022. Rezulton rreth 644 leje për file.

Në mënyrë të ngjashme kur kemi krijuar dosjen me mkdir midirectorio sistemit u përpoq të caktojë disa lejet e 777, dmth lexuar / shkruar / të ekzekutuar për të gjithë. Por ai u takua më parë maskë (022) dhe rezultoi në rreth 755 leje për mydirectory.

A bit e logjikës binare

Kjo vlerë e umask ka një maskë binar, në përpjekje për të dhënë lejet maksimale të sistemit:

 umask 022 000 010 010 000 010 010

 1 është plotësuar nga 111 umask 101 101 111 101 101
 E (& &), 110 110 110 (666) 111 111 111 (777)
                              ------------ ------------
                              110 100 100 (644) 111 101 101 (755)

Ose, shumë më të lehtë, si një "heqje e thjeshtë" të lejeve:

    666 777
    022 (-) 022 (-)
    ---- ----
    644 755

Forumi: umask në praktikë

Maska e 022 është se Ubuntu vjen parakonfiguruarat sepse kur një përdorues është shtuar. Kjo maskë, në qoftë se një sistem i përbashkët është shumë liberal, sepse ai ua mundëson të gjithë të lexojnë dhe të ekzekutuar fotografi nga drejtori shtëpia e përdoruesve të tjerë.

Ne mund të ndryshojë kjo vlerë në çdo kohë. Për të parandaluar lexuar / shkruar / të ekzekutuar për përdoruesit e tjerë, thjesht drejtuar:

  umask 027 

Kjo vlerë do të mbetet aktive deri në sesionin e përdoruesit, dhe është e vlefshme për drejtoritë dhe kartelat në biznese fillestare, por do të restaurohen në 022 herën tjetër kemi lidhur dhe nuk të modifikojë drejtoritë dhe kartelat në profilin e përdoruesit krijuar tashmë.

Për të "korrigjuar" profilet ekzistuese mund të përdoren, për shembull nëse përdoruesi "jdoe"

  o-rwx / home / jdoe chmod-R o-rwx / home / jdoe 

Dhe file redaktimi /home/jdoe/.profile uncomment dhe modifikoj umask 027 për të bërë të përhershëm vendosjen për të ardhmen. Edhe pse ky ndryshim do të ndikojë vetëm përdoruesi "jdoe."

Kështu që tani e tutje të gjithë përdoruesit e rinj janë krijuar pa lexuar / shkruar / të ekzekutojë për të gjithë:

  • Profili i përbashkët Edit /etc/profile dhe të ndryshimit të njëjtë: umask 027
  • Edit /etc/adduser.conf dhe modficamos: DIR_MODE=0750 . Ky rregullim nuk është e domosdoshme dhe kjo do të bëjë është që ne nuk mund të hyjnë edhe në shtëpi të përdoruesit direktori me cd

Vini re se përdoruesi cuaquier ta prishësh këtë vlerë të umask, ose nga rreshti i komandës apo ndryshime në tuaj $HOME/.profile , pa ujdi e administratorit.

Ne mund të gjeni chmod apo vlerat umask me katër shifra. Për shembull umask 0022. Paraqet shifra e parë tre pjesë të lejeve të veçanta, të cilat nuk i trajton këtu, të cilat janë përdorur pak gjatë operimit normal.

Nëse doni të komentojë mbi këtë faqe të bëjë atë në prezantimin e hyrjes .