Paano Magamit ang chmod Command sa Linux

Kontrolin kung sino ang maaaring mag-access ng mga file, mga direktoryo sa paghahanap, at magpatakbo ng mga script gamit ang Linux chmod utos Binabago ng utos na ito ang mga pahintulot sa file ng Linux, na mukhang kumplikado sa unang tingin ngunit talagang medyo simple kapag alam mo kung paano ito gumagana.

chmod Binabago ang Mga Pahintulot sa File

Sa Linux, sino ang makakagawa kung ano ang isang file o direktoryo ay kinokontrol sa pamamagitan ng mga hanay ng mga pahintulot. Mayroong tatlong mga hanay ng mga pahintulot. Isang hanay para sa may-ari ng file, isa pang hanay para sa mga miyembro ng pangkat ng file, at isang pangwakas na hanay para sa iba pa.

Kinokontrol ng mga pahintulot ang mga pagkilos na maaaring isagawa sa file o direktoryo. Pinapayagan nila, o pinipigilan, ang isang file na mabasa, mabago o, kung ito ay isang script o programa, naisakatuparan. Para sa isang direktoryo, pinamamahalaan ng mga pahintulot kung sino ang maaaring cd sa direktoryo at kung sino ang maaaring lumikha, o baguhin ang mga file sa loob ng direktoryo.

Ginagamit mo angchmod utos na itakda ang bawat isa sa mga pahintulot na ito. Upang makita kung anong mga pahintulot ang naitakda sa isang file o direktoryo, maaari naming gamitin ls.

Pagtingin at Pag-unawa sa Mga Pahintulot ng File

Maaari nating gamitin ang -l (Mahabang format) na pagpipilian upang magkaroon ls ilista ang mga pahintulot sa file para sa mga file at direktoryo.

ls -l

Sa bawat linya, kinikilala ng unang character ang uri ng entry na nakalista. Kung ito ay isang dash (-) ito ay isang file. Kung ito ang sulat d ito ay isang direktoryo.

Ang susunod na siyam na character ay kumakatawan sa mga setting para sa tatlong mga hanay ng mga pahintulot.

  • Ipinapakita ng unang tatlong character ang mga pahintulot para sa gumagamit na nagmamay-ari ng file (pahintulot ng gumagamit).
  • Ipinapakita ng gitnang tatlong character ang mga pahintulot para sa mga miyembro ng pangkat ng file (mga pahintulot sa pangkat).
  • Ipinapakita ng huling tatlong mga character ang mga pahintulot para sa sinumang wala sa unang dalawang kategorya (iba pang mga pahintulot).

Mayroong tatlong mga character sa bawat hanay ng mga pahintulot. Ang mga character ay tagapagpahiwatig para sa pagkakaroon o kawalan ng isa sa mga pahintulot. Ang mga ito ay alinman sa isang dash (-) o isang liham. Kung ang character ay isang dash, nangangahulugan ito na ang pahintulot ay hindi nabigyan. Kung ang tauhan ay isang r, w, o isang x, ang pahintulot na iyon ay nabigyan.

Ang mga titik ay kumakatawan sa:

  • r: Basahin ang mga pahintulot. Maaaring buksan ang file, at tiningnan ang nilalaman nito.
  • w: Sumulat ng mga pahintulot. Maaaring mai-edit, mabago, at matanggal ang file.
  • x: Ipatupad ang mga pahintulot. Kung ang file ay isang script o isang programa, maaari itong patakbuhin (maipatupad).

Halimbawa:

  •  --- nangangahulugang walang pahintulot na binigyan ng lahat.
  •  rwx nangangahulugang ang buong pahintulot ay nabigyan. Ang mga nabasa, sumulat, at nagpapatupad ng mga tagapagpahiwatig ay naroroon.

Sa aming screenshot, ang unang linya ay nagsisimula sa a d. Ang linyang ito ay tumutukoy sa isang direktoryo na tinatawag na "archive." Ang may-ari ng direktoryo ay "dave," at ang pangalan ng pangkat na kinabibilangan ng direktoryo ay tinatawag ding "dave."

Ang susunod na tatlong mga character ay ang mga pahintulot ng gumagamit para sa direktoryong ito. Ipinapakita nito na ang may-ari ay may buong pahintulot. Ang r, w, at x ang mga character ay naroroon lahat. Nangangahulugan ito na ang user dave ay nagbasa, sumulat at magpatupad ng mga pahintulot para sa direktoryong iyon.

Ang pangalawang hanay ng tatlong mga character ay ang mga pahintulot sa pangkat, ito ang r-x. Ipinapakita nito na ang mga miyembro ng pangkat ng dave ay nabasa at nagpatupad ng mga pahintulot para sa direktoryong ito. Nangangahulugan iyon na maaari nilang ilista ang mga file at ang kanilang mga nilalaman sa direktoryo, at maaari nila cd (isagawa) sa direktoryong iyon. Wala silang mga pahintulot sa pagsusulat, kaya hindi sila makakalikha, makapag-edit, o magtanggal ng mga file.

Ang pangwakas na hanay ng tatlong mga character dinr-x. Nalalapat ang mga pahintulot na ito sa mga taong hindi pinamamahalaan ng unang dalawang hanay ng mga pahintulot. Ang mga taong ito (tinawag na "iba pa") ay nabasa at nagpatupad ng mga pahintulot sa direktoryong ito.

Kaya, upang ibuod, ang mga miyembro ng pangkat at iba pa ay nabasa at nagsagawa ng mga pahintulot. Ang may-ari, isang gumagamit na tinatawag na dave, ay mayroon ding mga pahintulot sa pagsulat.

Para sa lahat ng iba pang mga file (bukod sa mh.sh script file) si dave at ang mga miyembro ng pangkat ng dave ay nabasa at sumulat ng mga pag-aari sa mga file, at ang iba pa ay may mga binasang pahintulot lamang.

Para sa espesyal na kaso ng file ng script ng mh.sh, ang may-ari na dave at ang mga kasapi ng pangkat ay nagbasa, sumulat, at magpatupad ng mga pahintulot, at ang iba pa ay nagbasa at nagpapatupad lamang ng mga pahintulot.

Pag-unawa sa Syntax ng Pahintulot

Para magamit chmod upang magtakda ng mga pahintulot, kailangan nating sabihin ito:

  • Sino: Kanino kami nagtatakda ng mga pahintulot.
  • Ano: Anong pagbabago ang ginagawa natin? Nagdaragdag ba kami o inaalis ang pahintulot?
  • Alin: Alin sa mga pahintulot ang itinatakda namin?

Gumagamit kami ng mga tagapagpahiwatig upang kumatawan sa mga halagang ito, at bumubuo ng maikling "pahayag ng mga pahintulot" tulad ng ikaw + x, kung saan ang ibig sabihin ng "u" ay gumagamit "(na), ang ibig sabihin ng" + "ay idagdag (kung ano), at" x "ay nangangahulugang ang pahintulot na magpatupad (na).

Ang pagpapahalaga ng "sino" na maaari nating gamitin ay:

  • ikaw: Gumagamit, nangangahulugang ang may-ari ng file.
  • g: Pangkat, nangangahulugang mga kasapi ng pangkat na kinabibilangan ng file.
  • o: Ang iba, nangangahulugang ang mga taong hindi pinamamahalaan ng ikaw at g mga pahintulot.
  • a: Lahat, nangangahulugang lahat ng nasa itaas.

Kung wala sa mga ito ang ginamit, chmod kumikilos na parang "a”Ay ginamit.

Ang mga halagang "ano" na maaari nating gamitin ay:

  • : Minus sign. Tinatanggal ang pahintulot.
  • +: Tanda ng pagdaragdag. Nagbibigay ng pahintulot. Ang pahintulot ay idinagdag sa mayroon nang mga pahintulot. Kung nais mong magkaroon ng pahintulot na ito at itinakda lamang ang pahintulot na ito, gamitin ang = pagpipilian, na inilarawan sa ibaba.
  • =: Katumbas na pag-sign. Magtakda ng isang pahintulot at alisin ang iba.

Ang mga halagang "alin" ang maaari nating gamitin ay:

  • r: Ang pahintulot na basahin.
  • w: Ang pahintulot sa pagsusulat.
  • x: Ang pahintulot na magpatupad.

Pagtatakda at Pagbabago ng Mga Pahintulot

Sabihin nating mayroon kaming isang file kung saan ang bawat isa ay may ganap na mga pahintulot dito.

ls -l bagong_ file.txt

Nais namin na mabasa ng gumagamit ang mga pahintulot at ang pangkat at iba pang mga gumagamit ay may mga pahintulot lamang na mabasa. Maaari nating gawin ang sumusunod na utos:

chmod u = rw, og = r new_file.txt

Ang paggamit ng operator na "=" ay nangangahulugang binubura namin ang anumang mayroon nang mga pahintulot at pagkatapos ay itatakda ang tinukoy.

suriin natin ang bagong pahintulot sa file na ito:

ls -l new_file.txt

Ang mga mayroon nang mga pahintulot ay tinanggal, at ang mga bagong pahintulot ay naitakda, tulad ng inaasahan namin.

Paano ang tungkol sa pagdaragdag ng isang pahintulot wala inaalis ang mga mayroon nang mga setting ng pahintulot? Madali din natin itong magawa.

Sabihin nating mayroon kaming isang file ng script na natapos na naming mai-edit. Kailangan namin itong maisagawa para sa lahat ng mga gumagamit. Ang mga kasalukuyang pahintulot nito ay ganito ang hitsura:

ls -l new_script.sh

Maaari naming idagdag ang pahintulot na magpatupad para sa lahat na may sumusunod na utos:

chmod a + x new_script.sh

Kung titingnan natin ang mga pahintulot, makikita natin na ang pahintulot na magpatupad ay naibigay na sa lahat, at ang mga mayroon nang mga pahintulot ay nasa lugar pa rin.

ls -l new_script.sh

Maaari naming makamit ang parehong bagay nang walang "a" sa pahayag na "a + x". Ang sumusunod na utos ay gagana rin.

chmod + x new_script.sh

Pagtatakda ng Mga Pahintulot para sa Maramihang Mga File

Maaari kaming maglapat ng mga pahintulot sa maraming mga file nang sabay-sabay.

Ito ang mga file sa kasalukuyang direktoryo:

ls -l

Sabihin nating nais nating alisin ang mga pahintulot sa pagsusulat para sa "iba pang" mga gumagamit mula sa mga file na may isang ".page" na extension. Magagawa natin ito sa sumusunod na utos:

chmod o-r * .page

Suriin natin kung anong epekto ang nagkaroon:

ls -l

Tulad ng nakikita natin, ang pahintulot na basahin ay tinanggal mula sa mga ".page" na mga file para sa kategorya ng "iba pang" mga gumagamit. Walang ibang mga file na naapektuhan.

Kung nais naming isama ang mga file sa mga subdirectory, maaari naming magamit ang -R (Recursive) na pagpipilian.

chmod -R o-r * .page

Numerical Shorthand

Isa pang paraan upang magamit chmod ay upang magbigay ng mga pahintulot na nais mong ibigay sa may-ari, pangkat, at iba pa bilang isang tatlong-digit na numero. Ang pinaka-kaliwang digit ay kumakatawan sa mga pahintulot para sa may-ari. Ang gitnang digit ay kumakatawan sa mga pahintulot para sa mga kasapi ng pangkat. Ang kanang bahagi ng digit ay kumakatawan sa mga pahintulot para sa iba pa.

Ang mga digit na maaari mong gamitin at kung ano ang kanilang kinakatawan ay nakalista dito:

  • 0: (000) Walang pahintulot.
  • 1: (001) Magpatupad ng pahintulot.
  • 2: (010) Sumulat ng pahintulot.
  • 3: (011) Sumulat at magpatupad ng mga pahintulot.
  • 4: (100) Basahin ang pahintulot.
  • 5: (101) Basahin at magpatupad ng mga pahintulot.
  • 6: (110) Magbasa at sumulat ng mga pahintulot.
  • 7: (111) Basahin, isulat, at magpatupad ng mga pahintulot.

Ang bawat isa sa tatlong mga pahintulot ay kinakatawan ng isa sa mga piraso sa binary na katumbas ng decimal number. Kaya't ang 5, na 101 sa binary, ay nangangahulugang basahin at ipatupad. Ang 2, na kung saan ay 010 sa binary, ay nangangahulugang pahintulot sa pagsulat.

Gamit ang pamamaraang ito, itinatakda mo ang mga pahintulot na nais mong magkaroon; hindi mo idaragdag ang mga pahintulot na ito sa mayroon nang mga pahintulot. Kaya't kung nabasa at nakasulat na ang mga pahintulot ay nasa lugar na ay kakailanganin mong gumamit ng 7 (111) upang magdagdag ng mga pahintulot sa pagpapatupad. Ang paggamit ng 1 (001) ay aalisin ang mga pahintulot na mabasa at magsulat at idaragdag ang pahintulot na magpatupad.

Idagdag natin ang binasang pahintulot pabalik sa mga file na ".page" para sa kategorya ng iba pang mga gumagamit. Dapat nating itakda ang mga pahintulot ng gumagamit at pangkat din, kaya kailangan naming itakda ang mga ito sa kung ano ang mayroon na. Ang mga gumagamit na ito ay mayroon nang nabasa at nakasulat na mga pahintulot, na 6 (110). Nais naming mabasa ng mga "iba" at mga pahintulot, kaya kailangan nilang maitakda sa 4 (100).

Ang sumusunod na utos ay magagawa ito:

chmod 664 * .page

Itinatakda nito ang mga pahintulot na kinakailangan namin para sa gumagamit, mga miyembro ng pangkat, at iba pa sa hinihiling namin. Ang mga gumagamit at kasapi ng pangkat ay may mga pahintulot na nai-reset sa kung ano sila dati, at ang iba pa ay naibalik ang permiso na binasa.

ls -l

Mga Advanced na Pagpipilian

Kung binasa mo ang pahina ng tao para sa chmod makikita mo mayroong ilang mga advanced na pagpipilian na nauugnay sa SETUID at SETGID na mga piraso, at sa pinaghihigpitang pagtanggal o "malagkit" na bit.

Para sa 99% ng mga kaso na kakailanganin mo chmod para, ang mga opsyong inilarawan dito ay sasaklawin mo.


$config[zx-auto] not found$config[zx-overlay] not found