Android

Utos ng Chmod sa linux (mga pahintulot ng file)

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

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

Talaan ng mga Nilalaman:

Anonim

Sa Linux, ang pag-access sa mga file ay pinamamahalaan sa pamamagitan ng mga pahintulot ng file, katangian, at pagmamay-ari. Tinitiyak nito na ang mga awtorisadong gumagamit at proseso lamang ang maaaring ma-access ang mga file at direktoryo.

Sakop ng tutorial na ito kung paano gamitin ang chmod utos upang mabago ang mga pahintulot sa pag-access ng mga file at direktoryo.

Mga Pahintulot ng File ng Linux

Bago pumunta sa karagdagang, ipaliwanag natin ang pangunahing modelo ng pahintulot ng Linux.

Sa Linux, ang bawat file ay nauugnay sa isang may-ari at isang pangkat at itinalaga na may karapatan sa pag-access ng pahintulot para sa tatlong magkakaibang klase ng mga gumagamit:

  • Ang may-ari ng file.Ang mga miyembro ng pangkat.May iba pa (lahat ng iba pa).

Maaaring baguhin ang pagmamay-ari ng file gamit ang mga chown at utos ng chgrp .

Mayroong tatlong mga uri ng pahintulot ng file na nalalapat sa bawat klase:

  • Ang pahintulot na basahin.Ang pahintulot sa pagsulat.

Pinapayagan ka ng konseptong ito na tukuyin kung aling mga gumagamit ang pinapayagan na basahin ang file, sumulat sa file, o isagawa ang file.

Ang mga pahintulot sa file ay maaaring matingnan gamit ang ls utos:

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

Ipinapakita ng unang character ang uri ng file. Maaari itong maging isang regular na file ( - ), direktoryo ( d ), isang simbolikong link ( l ), o anumang iba pang espesyal na uri ng file.

Ang susunod na siyam na character ay kumakatawan sa mga pahintulot ng file, tatlong triplets ng tatlong character bawat isa. Ipinapakita ng unang triplet ang mga pahintulot ng may-ari, ang pangalawang isang pahintulot ng grupo, at ang huling triplet ay nagpapakita ng mga pahintulot sa lahat. Ang mga pahintulot ay maaaring magkaroon ng ibang kahulugan depende sa uri ng file.

Sa halimbawa sa itaas ( rw-r--r-- ) ay nangangahulugan na ang may-ari ng file ay nagbasa at sumulat ng mga pahintulot ( rw- ), ang pangkat at iba pa ay nagbasa lamang ng mga pahintulot ( r-- ).

Ang bawat isa sa tatlong mga triplets ng pahintulot ay maaaring itayo ng mga sumusunod na character at magkaroon ng ibang mga epekto, depende sa kung ang mga ito ay nakatakda sa isang file o sa isang direktoryo:

Epekto ng Pahintulot sa mga File

Pahintulot Katangian Kahulugan sa File
Basahin - Ang file ay hindi mabasa. Hindi mo matingnan ang mga nilalaman ng file.
r Nabasa ang file.
Sumulat - Hindi mababago o mabago ang file.
w Ang file ay maaaring mabago o mabago.
Patupad - Hindi maipatupad ang file.
x Maaaring isakatuparan ang file.
s Kung natagpuan sa user triplet ay nagtatakda ito ng setuid bit. Kung natagpuan sa pangkat ng triplet, inilalagay nito ang setgid bit. Nangangahulugan din ito na nakatakda ang x flag.

Kapag ang mga setuid o setgid bandila ay nakalagay sa isang maipapatupad na file, ang file ay isinasagawa kasama ang may-ari ng file at / o mga pribilehiyo ng grupo.

S Parehong bilang s ngunit ang x watawat ay hindi nakatakda. Ang watawat na ito ay bihirang ginagamit sa mga file.
t Kung matatagpuan sa others triplet ay nagtatakda ito ng sticky .

Nangangahulugan din ito na nakatakda ang x flag. Ang watawat na ito ay walang silbi sa mga file.

T Parehong bilang t ngunit ang x watawat ay hindi nakatakda. Ang watawat na ito ay walang silbi sa mga file.

Epekto ng Pahintulot sa Mga Direktoryo (Mga Folder)

Sa Linux, ang mga Direktoryo ay mga espesyal na uri ng mga file na naglalaman ng iba pang mga file at direktoryo.

Pahintulot Katangian Kahulugan sa Directory
Basahin - Hindi maipakita ang mga nilalaman ng direktoryo.
r Maaaring ipakita ang mga nilalaman ng direktoryo.

(hal. Maaari kang maglista ng mga file sa loob ng direktoryo na may ls .)

Sumulat - Hindi mababago ang mga nilalaman ng direktoryo.
w Maaaring baguhin ang mga nilalaman ng direktoryo.

(hal. Hindi ka maaaring lumikha ng mga bagong file, magtanggal ng mga file..etc.)

Patupad - Hindi mababago ang direktoryo sa.
x Maaaring mai-navigate ang direktoryo gamit ang cd .
s Kung natagpuan sa user triplet, itinatakda nito ang setuid bit. Kung natagpuan sa pangkat ng triplet ay nagtatakda ito ng setgid bit. Nangangahulugan din ito na nakatakda ang x flag. Kapag ang bandila ng setgid ay nakatakda sa isang direktoryo ang mga bagong file na nilikha sa loob nito ay nagmamana ng direktoryo ng ID (GID), sa halip na pangunahing grupo ng ID ng gumagamit na lumikha ng file.

setuid ay walang epekto sa mga direktoryo.

S Parehong bilang s ngunit ang x watawat ay hindi nakatakda. Ang bandila na ito ay walang silbi sa mga direktoryo.
t Kung matatagpuan sa others triplet ay nagtatakda ito ng sticky .

Nangangahulugan din ito na nakatakda ang x flag. Kapag ang malagkit na bit ay naka-set sa isang direktoryo, tanging ang may-ari ng file, ang may-ari ng direktoryo, o administratibong gumagamit ay maaaring tanggalin o palitan ang pangalan ng mga file sa loob ng direktoryo.

T Parehong bilang t ngunit ang x watawat ay hindi nakatakda. Ang bandila na ito ay walang silbi sa mga direktoryo.

Paggamit ng chmod

Kinukuha ng utos ng chmod ang sumusunod na pangkalahatang form:

chmod MODE FILE…

Pinapayagan ka ng utos ng chmod na baguhin ang mga pahintulot sa isang file gamit ang alinman sa isang simbolikong o numerikong mode o isang file ng sanggunian. Ipaliwanag namin nang mas detalyado ang mga mode sa ibang pagkakataon. Ang utos ay maaaring tumanggap ng isa o higit pang mga file at / o mga direktoryo na pinaghiwalay ng puwang bilang mga argumento.

Ang ugat lamang, ang may-ari ng file o gumagamit na may mga pribilehiyo ng sudo ay maaaring magbago ng mga pahintulot ng isang file. Maging maingat na gumamit kapag gumagamit ng chmod , lalo na kung paulit-ulit na binabago ang mga pahintulot.

Pamamaraan ng Simbolo (Teksto)

Ang syntax ng chmod utos kapag gumagamit ng simbolikong mode ay may sumusunod na format:

chmod perms… FILE…

Ang unang hanay ng mga watawat ( ), ang mga gumagamit ng watawat, tinukoy kung aling mga gumagamit ang nag-klase ng mga pahintulot sa file ay binago.

  • u - Ang may-ari ng file. g - Ang mga gumagamit na miyembro ng pangkat. o - Lahat ng iba pang mga gumagamit. a - Ang lahat ng mga gumagamit, magkapareho sa ugo .

Kung ang watawat ng mga gumagamit ay tinanggal, ang default ay isa at ang mga pahintulot na itinakda ng umask ay hindi apektado.

Ang pangalawang hanay ng mga watawat ( ), ang mga flag ng operasyon, tinukoy kung ang mga pahintulot ay aalisin, idagdag, o itakda:

  • - Tinatanggal ang tinukoy na pahintulot. + Nagdaragdag ng tinukoy na pahintulot. = Binago ang kasalukuyang mga pahintulot sa tinukoy na mga pahintulot. Kung walang tinukoy na pahintulot pagkatapos ng = simbolo, ang lahat ng mga pahintulot mula sa tinukoy na klase ng gumagamit ay tinanggal.

Ang mga pahintulot ( perms… ) ay maaaring malinaw na itakda gamit ang alinman sa zero o isa o higit pa sa mga sumusunod na titik: r , w , x , X , s , at t . Gumamit ng isang solong titik mula sa set u , g , at o kapag kinopya ang mga pahintulot mula sa isa sa ibang klase ng mga gumagamit.

Kapag nagtatakda ng mga pahintulot para sa higit sa isang klase ng gumagamit ( ), gumamit ng mga koma (nang walang mga puwang) upang paghiwalayin ang mga simbolikong mode.

Nasa ibaba ang ilang mga halimbawa kung paano gamitin ang utos ng chmod sa simbolikong mode:

  • Bigyan ang pahintulot ng mga miyembro ng pangkat na basahin ang file, ngunit hindi upang isulat at isakatuparan ito:

    chmod g=r filename

    Alisin ang pagpapatupad ng pahintulot para sa lahat ng mga gumagamit:

    chmod ax filename

    Repulsively alisin ang pahintulot ng pagsulat para sa iba pang mga gumagamit:

    chmod -R ow dirname

    Alisin ang basahin, isulat, at isagawa ang pahintulot para sa lahat ng mga gumagamit maliban sa may-ari ng file:

    chmod og-rwx filename

    Ang parehong bagay ay maaari ding magawa sa pamamagitan ng paggamit ng sumusunod na form:

    chmod og= filename

    Bigyan basahin, isulat at magpatupad ng pahintulot sa may-ari ng file, basahin ang mga pahintulot sa grupo ng file at walang mga pahintulot sa lahat ng iba pang mga gumagamit:

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

    Idagdag ang mga pahintulot ng may-ari ng file sa mga pahintulot na mayroon ang mga miyembro ng pangkat ng file:

    chmod g+u filename

    Magdagdag ng isang sticky bit sa isang naibigay na direktoryo:

    chmod o+t dirname

Paraan ng Numeric

Ang syntax ng utos ng chmod kapag gumagamit ng paraan ng numero ay may sumusunod na format:

chmod NUMBER FILE…

Kapag gumagamit ng mode na numero, maaari mong itakda ang mga pahintulot para sa lahat ng tatlong mga klase ng gumagamit (may-ari, grupo, at lahat) nang sabay-sabay.

Ang NUMBER ay maaaring isang numero ng 3 o 4-digit.

Kapag ang 3 numero ng numero ay ginamit ang unang numero ay kumakatawan sa mga pahintulot ng may-ari ng file, ang pangalawa sa pangkat ng file at ang huling isa sa lahat ng iba pang mga gumagamit.

Ang bawat pagsulat, basahin, at isagawa ang mga pahintulot ay may sumusunod na halaga ng numero:

  • r (basahin) = 4 w (isulat) = 2 x (execute) = 1no permiso = 0

Ang bilang ng mga pahintulot ng isang tukoy na klase ng gumagamit ay kinakatawan ng kabuuan ng mga halaga ng mga pahintulot para sa pangkat na iyon.

Upang malaman ang mga pahintulot ng file sa mode ng numerong kalkulahin lamang ang kabuuan para sa lahat ng mga klase ng gumagamit. Halimbawa, upang bigyan basahin, isulat at magpatupad ng pahintulot sa may-ari ng file, basahin at ipatupad ang mga pahintulot sa grupo ng file at basahin lamang ang mga pahintulot sa lahat ng iba pang mga gumagamit na gagawin mo ang sumusunod:

  • May-ari: rwx = 4 + 2 + 1 = 7Group: rx = 4 + 0 + 1 = 5Oo: rx = 4 + 0 + 0 = 4

Gamit ang pamamaraan sa itaas na nakarating kami sa bilang na 754 , na kumakatawan sa nais na pahintulot.

Upang i-set up ang setuid , setgid , at sticky bit bandila ay gumagamit ng apat na numero ng numero.

Kapag ginamit ang 4 na numero ng numero, ang unang numero ay may sumusunod na kahulugan:

  • setuid = 4setgid = 2sticky = 1no pagbabago = 0

Ang susunod na tatlong numero ay may parehong kahulugan tulad ng kapag gumagamit ng 3 numero ng numero.

Kung ang unang numero ay 0 maaari itong tinanggal, at ang mode ay maaaring kinakatawan ng 3 numero. Ang numeric mode 0755 ay pareho sa 755 .

Upang makalkula ang mode na numero maaari ka ring gumamit ng isa pang pamamaraan (binary pamamaraan), ngunit ito ay medyo mas kumplikado. Alam kung paano makalkula ang numerong mode gamit ang 4, 2, at 1 ay sapat para sa karamihan ng mga gumagamit.

Maaari mong suriin ang mga pahintulot ng file sa numerong notasyon gamit ang stat command:

stat -c "%a" filename

644

Narito ang ilang mga halimbawa kung paano gamitin ang chmod command sa numeric mode:

  • Bigyan basahin at isulat ang may-ari ng file at basahin lamang ang mga pahintulot sa mga miyembro ng pangkat at lahat ng iba pang mga gumagamit:

    chmod 644 dirname

    Bigyan basahin, isulat at isakatuparan ang may-ari ng file, basahin at isakatuparan ang mga pahintulot sa mga miyembro ng pangkat at walang pahintulot sa lahat ng iba pang mga gumagamit:

    chmod 750 dirname

    Bigyan basahin, isulat, at isakatuparan ang mga pahintulot, at isang malagkit sa isang naibigay na direktoryo:

    chmod 1777 dirname

    Muling itakda ang basahin, isulat, at isagawa ang mga pahintulot sa may-ari ng file at walang mga pahintulot para sa lahat ng iba pang mga gumagamit sa isang naibigay na direktoryo:

    chmod -R 700 dirname

Paggamit ng isang File File

Pinapayagan ka ng - opsyon --reference=ref_file pagpipilian upang itakda ang mga pahintulot ng file na maging katulad ng sa tinukoy na sanggunian file ( ref_file ).

chmod --reference=REF_FILE FILE

Halimbawa, ang sumusunod na utos ay magtatalaga ng mga pahintulot ng file1 sa file2

chmod --reference=file1 file2

Muling Binago ang Pahintulot ng File

Upang maingat na gumana sa lahat ng mga file at direktoryo sa ilalim ng naibigay na direktoryo, gamitin ang opsyon na -R ( --recursive ):

chmod -R MODE DIRECTORY

Halimbawa, upang baguhin ang mga pahintulot ng lahat ng mga file at subdirektoryo sa ilalim ng direktoryo /var/www sa 755 gagamitin mo:

chmod -R 755 /var/www

Tumatakbo sa Mga Simbolo na Link

Ang mga simbolikong link ay laging may mga pahintulot na 777 .

Bilang default, kapag binabago ang mga pahintulot ng symlink, mababago ng chmod ang mga pahintulot sa file na tinuturo ng link.

chmod 755 symlink

Pagkakataon na sa halip na baguhin ang pagmamay-ari ng target, makakakuha ka ng isang "hindi ma-access ang 'symlink': Pahintulot na tinanggihan" na error.

Ang error ay nangyayari dahil sa pamamagitan ng default sa karamihan ng mga pagbabahagi ng mga symlink ng Linux ay protektado, at hindi ka maaaring gumana sa mga target na file. Ang pagpipiliang ito ay tinukoy sa /proc/sys/fs/protected_symlinks . 1 nangangahulugang pinagana at 0 pinagana. Inirerekomenda na huwag paganahin ang proteksyon ng symlink.

Pagbabago ng Mga Pahintulot ng File sa Maramihang

Minsan may mga sitwasyon kung saan kailangan mong maramihang baguhin ang mga file at mga pahintulot ng direktoryo.

Ang pinakakaraniwang senaryo ay ang pagbago ng mga pahintulot ng website ng file sa 644 at mga pahintulot ng direktoryo sa 755 .

Gamit ang numerikong paraan:

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

Gamit ang simbolikong pamamaraan:

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 {} ;

Ang find utos ay maghanap para sa mga file at direktoryo sa ilalim ng /var/www/my_website at ipasa ang bawat natagpuan file at direktoryo sa chmod utos upang itakda ang mga pahintulot.

Konklusyon

chmod utos ng chmod ang mga pahintulot ng file. Ang mga pahintulot ay maaaring itakda gamit ang simbolikong o numerikong mode.

Upang malaman ang higit pa tungkol sa chmod bisitahin ang pahina ng chmod man.

chmod terminal