3.4.4. ສິດທິການຄຸ້ມຄອງ
Linux ເປັນລະບົບທີ່ມີຜູ້ໃຊ້ຫຼາຍ, ສະນັ້ນມັນຈໍາເປັນຕ້ອງສະຫນອງລະບົບການອະນຸຍາດເພື່ອຄວບຄຸມຊຸດຂອງການດໍາເນີນງານທີ່ໄດ້ຮັບອະນຸຍາດໃນໄຟລ໌ແລະໄດເລກະທໍລີ, ເຊິ່ງປະກອບມີຊັບພະຍາກອນແລະອຸປະກອນທັງຫມົດ (ໃນລະບົບ Unix, ອຸປະກອນໃດກໍ່ຕາມແມ່ນສະແດງໂດຍໄຟລ໌ຫຼື. ໄດເລກະທໍລີ). ຫຼັກການນີ້ແມ່ນທົ່ວໄປກັບທຸກລະບົບທີ່ຄ້າຍຄືກັບ Unix.
ແຕ່ລະໄຟລ໌ຫຼືໄດເລກະທໍລີມີການອະນຸຍາດສະເພາະສໍາລັບສາມປະເພດຂອງຜູ້ໃຊ້:
•ເຈົ້າຂອງຂອງມັນ (ສັນຍາລັກໂດຍ u, ເຊັ່ນດຽວກັນກັບຜູ້ໃຊ້)
• ກຸ່ມເຈົ້າຂອງ (ສັນຍາລັກໂດຍ g, ໃນກຸ່ມ), ເປັນຕົວແທນຂອງສະມາຊິກທັງຫມົດຂອງກຸ່ມ
• ອື່ນໆ (ສັນຍາລັກໂດຍ o, ເຊັ່ນດຽວກັນກັບອື່ນໆ) ສາມປະເພດຂອງສິດສາມາດລວມເຂົ້າກັນໄດ້:
• ການອ່ານ (ສັນຍາລັກໂດຍ r, ດັ່ງທີ່ອ່ານ);
• ການຂຽນ (ຫຼືການປັບປຸງ, ສັນຍາລັກໂດຍ w, ໃນການຂຽນ);
• ການປະຕິບັດ (ສັນຍາລັກໂດຍ x, ຄືກັບ eXecute).
ໃນກໍລະນີຂອງໄຟລ໌, ສິດທິເຫຼົ່ານີ້ຖືກເຂົ້າໃຈງ່າຍ: ການເຂົ້າເຖິງການອ່ານອະນຸຍາດໃຫ້ອ່ານເນື້ອຫາ (ລວມທັງການຄັດລອກ), ການເຂົ້າເຖິງການຂຽນອະນຸຍາດໃຫ້ປ່ຽນມັນ, ແລະປະຕິບັດການເຂົ້າເຖິງອະນຸຍາດໃຫ້ແລ່ນມັນ (ເຊິ່ງຈະເຮັດວຽກພຽງແຕ່ຖ້າມັນເປັນໂຄງການ).
ສະສົມ ແລະ setgid ສອງສິດທິພິເສດແມ່ນກ່ຽວຂ້ອງກັບໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້: ສະສົມ ແລະ setgid (ສັນຍະລັກ ການບໍລິຫານ ດ້ວຍຕົວອັກສອນ “s”). ໃຫ້ສັງເກດວ່າພວກເຮົາມັກຈະເວົ້າເຖິງ bit, ເພາະວ່າແຕ່ລະຄ່າ boolean ເຫຼົ່ານີ້ສາມາດຖືກສະແດງໂດຍ 0 ຫຼື a 1. ທັງສອງສິດນີ້ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດປະຕິບັດໄດ້.
ໂຄງການທີ່ມີສິດທິຂອງເຈົ້າຂອງຫຼືກຸ່ມ, ຕາມລໍາດັບ. ກົນໄກນີ້ໃຫ້ການເຂົ້າເຖິງຄຸນສົມບັດທີ່ຮຽກຮ້ອງໃຫ້ມີການອະນຸຍາດລະດັບສູງກ່ວາສິ່ງທີ່ເຈົ້າມັກຈະມີ.
ຕັ້ງແຕ່ກ ສະສົມ ໂຄງການຮາກແມ່ນດໍາເນີນການຢ່າງເປັນລະບົບພາຍໃຕ້ຕົວຕົນຜູ້ໃຊ້ super, ມັນເປັນສິ່ງສໍາຄັນຫຼາຍເພື່ອຮັບປະກັນວ່າມັນເປັນຄວາມປອດໄພແລະເຊື່ອຖືໄດ້. ຜູ້ໃຊ້ໃດໆທີ່ຈັດການທີ່ຈະໂຄ່ນລົ້ມໂຄງການຮາກ setuid ເພື່ອໂທຫາຄໍາສັ່ງຂອງທາງເລືອກຂອງພວກເຂົາສາມາດປອມຕົວຜູ້ໃຊ້ຮາກແລະມີສິດທັງຫມົດໃນລະບົບ. ຜູ້ທົດສອບການເຈາະເຈາະຈະຊອກຫາໄຟລ໌ປະເພດເຫຼົ່ານີ້ຢ່າງເປັນປົກກະຕິເມື່ອເຂົາເຈົ້າເຂົ້າເຖິງລະບົບເປັນວິທີການເພີ່ມສິດທິຂອງເຂົາເຈົ້າ.
ສະສົມ ແລະ setgid ສອງສິດທິພິເສດແມ່ນກ່ຽວຂ້ອງກັບໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້: ສະສົມ ແລະ setgid (ສັນຍະລັກ ການບໍລິຫານ ດ້ວຍຕົວອັກສອນ “s”). ໃຫ້ສັງເກດວ່າພວກເຮົາມັກຈະເວົ້າເຖິງ bit, ເພາະວ່າແຕ່ລະຄ່າ boolean ເຫຼົ່ານີ້ສາມາດຖືກສະແດງໂດຍ 0 ຫຼື a 1. ທັງສອງສິດນີ້ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດປະຕິບັດໄດ້.
ໂຄງການທີ່ມີສິດທິຂອງເຈົ້າຂອງຫຼືກຸ່ມ, ຕາມລໍາດັບ. ກົນໄກນີ້ໃຫ້ການເຂົ້າເຖິງຄຸນສົມບັດທີ່ຮຽກຮ້ອງໃຫ້ມີການອະນຸຍາດລະດັບສູງກ່ວາສິ່ງທີ່ເຈົ້າມັກຈະມີ.
ຕັ້ງແຕ່ກ ສະສົມ ໂຄງການຮາກແມ່ນດໍາເນີນການຢ່າງເປັນລະບົບພາຍໃຕ້ຕົວຕົນຜູ້ໃຊ້ super, ມັນເປັນສິ່ງສໍາຄັນຫຼາຍເພື່ອຮັບປະກັນວ່າມັນເປັນຄວາມປອດໄພແລະເຊື່ອຖືໄດ້. ຜູ້ໃຊ້ໃດໆທີ່ຈັດການທີ່ຈະໂຄ່ນລົ້ມໂຄງການຮາກ setuid ເພື່ອໂທຫາຄໍາສັ່ງຂອງທາງເລືອກຂອງພວກເຂົາສາມາດປອມຕົວຜູ້ໃຊ້ຮາກແລະມີສິດທັງຫມົດໃນລະບົບ. ຜູ້ທົດສອບການເຈາະເຈາະຈະຊອກຫາໄຟລ໌ປະເພດເຫຼົ່ານີ້ຢ່າງເປັນປົກກະຕິເມື່ອເຂົາເຈົ້າເຂົ້າເຖິງລະບົບເປັນວິທີການເພີ່ມສິດທິຂອງເຂົາເຈົ້າ.
ໄດເຣັກທໍຣີຖືກຈັດການແຕກຕ່າງຈາກໄຟລ໌. ການເຂົ້າເຖິງການອ່ານໃຫ້ສິດທິໃນການປຶກສາຫາລືບັນຊີລາຍຊື່ຂອງເນື້ອໃນຂອງມັນ (ໄຟລ໌ແລະໄດເລກະທໍລີ); ການເຂົ້າເຖິງການຂຽນອະນຸຍາດໃຫ້ສ້າງຫຼືລຶບໄຟລ໌; ແລະປະຕິບັດການເຂົ້າເຖິງອະນຸຍາດໃຫ້ຂ້າມຜ່ານໄດເລກະທໍລີເພື່ອເຂົ້າເຖິງເນື້ອຫາຂອງມັນ (ຕົວຢ່າງ, ກັບ cd ຄໍາສັ່ງ). ການສາມາດຂ້າມຜ່ານໄດເລກະທໍລີໂດຍບໍ່ສາມາດອ່ານໄດ້ມັນເຮັດໃຫ້ຜູ້ໃຊ້ອະນຸຍາດໃຫ້ເຂົ້າເຖິງລາຍການທີ່ຢູ່ໃນນັ້ນທີ່ຮູ້ຈັກໂດຍຊື່, ແຕ່ບໍ່ແມ່ນເພື່ອຊອກຫາພວກມັນໂດຍບໍ່ຮູ້ຊື່ທີ່ແນ່ນອນ.
ຄວາມປອດໄພ ໄດ້ setgid bit ຍັງໃຊ້ກັບໄດເລກະທໍລີ. ລາຍການທີ່ສ້າງຂຶ້ນໃໝ່ໃນໄດເລກະທໍລີດັ່ງກ່າວ
ຄວາມປອດໄພ ໄດ້ setgid bit ຍັງໃຊ້ກັບໄດເລກະທໍລີ. ລາຍການທີ່ສ້າງຂຶ້ນໃໝ່ໃນໄດເລກະທໍລີດັ່ງກ່າວ
setgid ໄດເລກະທໍລີແລະ ຫນຽວ
Bit
ຈະຖືກມອບໝາຍໃຫ້ກຸ່ມເຈົ້າຂອງຂອງໄດເລກະທໍລີຫຼັກໂດຍອັດຕະໂນມັດ, ແທນທີ່ຈະເປັນມໍລະດົກ-
ຢູ່ໃນກຸ່ມຫຼັກຂອງຜູ້ສ້າງຕາມປົກກະຕິ. ເນື່ອງຈາກວ່ານີ້, ທ່ານບໍ່ຈໍາເປັນຕ້ອງປ່ຽນກຸ່ມຕົ້ນຕໍຂອງທ່ານ (ກັບ grp ໃnew່ command) ເມື່ອເຮັດວຽກຢູ່ໃນຕົ້ນໄມ້ໄຟລ໌ທີ່ແບ່ງປັນລະຫວ່າງຜູ້ໃຊ້ຫຼາຍໆຄົນຂອງກຸ່ມທີ່ອຸທິດຕົນດຽວກັນ.
ໄດ້ ໜຽວ (ສັນຍາລັກໂດຍຕົວອັກສອນ "t") ແມ່ນການອະນຸຍາດທີ່ມີປະໂຫຍດພຽງແຕ່ຢູ່ໃນໄດເລກະທໍລີ. ມັນຖືກນໍາໃຊ້ໂດຍສະເພາະສໍາລັບໄດເລກະທໍລີຊົ່ວຄາວທີ່ທຸກຄົນມີການເຂົ້າເຖິງການຂຽນ (ເຊັ່ນ: / tmp /): ມັນຈໍາກັດການລຶບໄຟລ໌ເພື່ອໃຫ້ພຽງແຕ່ເຈົ້າຂອງຂອງເຂົາເຈົ້າຫຼືເຈົ້າຂອງໄດເລກະທໍລີພໍ່ແມ່ສາມາດລຶບພວກມັນໄດ້. ຂາດອັນນີ້, ທຸກຄົນສາມາດລຶບໄຟລ໌ຂອງຜູ້ໃຊ້ອື່ນເຂົ້າມາໄດ້ / tmp /.
setgid ໄດເລກະທໍລີແລະ ຫນຽວ
Bit
ສາມຄໍາສັ່ງຄວບຄຸມການອະນຸຍາດທີ່ກ່ຽວຂ້ອງກັບໄຟລ໌:
• chown ໄຟລ໌ຜູ້ໃຊ້ ປ່ຽນເຈົ້າຂອງໄຟລ໌
TIP ເລື້ອຍໆທ່ານຕ້ອງການປ່ຽນກຸ່ມຂອງໄຟລ໌ໃນເວລາດຽວກັນທີ່ທ່ານ
TIP ເລື້ອຍໆທ່ານຕ້ອງການປ່ຽນກຸ່ມຂອງໄຟລ໌ໃນເວລາດຽວກັນທີ່ທ່ານ
ການປ່ຽນແປງຜູ້ໃຊ້ແລະ
ກຸ່ມ
ປ່ຽນເຈົ້າຂອງ. ໄດ້ chown ຄໍາສັ່ງມີ syntax ພິເສດສໍາລັບການນັ້ນ: chown
ຜູ້ໃຊ້:ໄຟລ໌ກຸ່ມ
ການປ່ຽນແປງຜູ້ໃຊ້ແລະ
ກຸ່ມ
• chgrp ໄຟລ໌ກຸ່ມ ປ່ຽນແປງກຸ່ມເຈົ້າຂອງ
• chmod ເອກະສານສິດທິ ປ່ຽນການອະນຸຍາດຂອງໄຟລ໌
ມີສອງວິທີໃນການເປັນຕົວແທນຂອງສິດທິ. ໃນບັນດາພວກເຂົາ, ການເປັນຕົວແທນຂອງສັນຍາລັກແມ່ນອາດຈະເປັນທີ່ງ່າຍທີ່ສຸດທີ່ຈະເຂົ້າໃຈແລະຈື່ຈໍາ. ມັນກ່ຽວຂ້ອງກັບສັນຍາລັກຂອງຕົວອັກສອນທີ່ໄດ້ກ່າວມາຂ້າງເທິງ. ທ່ານສາມາດກໍານົດສິດທິສໍາລັບແຕ່ລະປະເພດຂອງຜູ້ໃຊ້ (u/g/o), ໂດຍກໍານົດໃຫ້ເຂົາເຈົ້າຢ່າງຊັດເຈນ (ມີ =), ໂດຍການເພີ່ມ
(+), ຫຼືລົບ (-). ດັ່ງນັ້ນ u=rwx,g+rw, ຫຼື ສູດເຮັດໃຫ້ເຈົ້າຂອງສິດອ່ານ, ຂຽນ, ແລະປະຕິບັດສິດ, ເພີ່ມສິດອ່ານແລະຂຽນສໍາລັບກຸ່ມເຈົ້າຂອງ, ແລະຖອນສິດການອ່ານສໍາລັບຜູ້ໃຊ້ອື່ນໆ. ສິດທິທີ່ບໍ່ປ່ຽນແປງໂດຍການບວກຫຼືລົບໃນຄໍາສັ່ງດັ່ງກ່າວຍັງຄົງບໍ່ປ່ຽນແປງ. ຈົດຫມາຍ a, ສໍາລັບທັງຫມົດ, ກວມເອົາທັງສາມປະເພດຂອງຜູ້ໃຊ້, ດັ່ງນັ້ນ a=rx ໃຫ້ສິດທັງສາມປະເພດດຽວກັນ (ອ່ານ ແລະປະຕິບັດ, ແຕ່ຂຽນບໍ່ໄດ້).
ການເປັນຕົວແທນຕົວເລກ (octal) ເຊື່ອມໂຍງກັບແຕ່ລະສິດທີ່ມີຄ່າ: 4 ສໍາລັບການອ່ານ, 2 ສໍາລັບການຂຽນ, ແລະ 1 ສໍາລັບການປະຕິບັດ. ພວກເຮົາເຊື່ອມໂຍງແຕ່ລະການລວມກັນຂອງສິດທິກັບຜົນລວມຂອງສາມຕົວເລກ, ແລະມູນຄ່າຖືກມອບໃຫ້ແຕ່ລະປະເພດຂອງຜູ້ໃຊ້, ຕາມລໍາດັບປົກກະຕິ (ເຈົ້າຂອງ, ກຸ່ມ, ອື່ນໆ).
ຕົວຢ່າງເຊັ່ນ chmod 754 ເອກະສານ ຄໍາສັ່ງຈະກໍານົດສິດທິດັ່ງຕໍ່ໄປນີ້: ອ່ານ, ຂຽນແລະປະຕິບັດສໍາລັບເຈົ້າຂອງ (ນັບຕັ້ງແຕ່ 7 = 4 + 2 + 1); ອ່ານແລະປະຕິບັດສໍາລັບກຸ່ມ (ນັບຕັ້ງແຕ່ 5 = 4 + 1); ອ່ານເທົ່ານັ້ນສຳລັບຜູ້ອື່ນ. ໄດ້ 0 ຫມາຍຄວາມວ່າບໍ່ມີສິດ; ດັ່ງນັ້ນ chmod 600 ເອກະສານ ອະນຸຍາດໃຫ້ອ່ານແລະຂຽນສິດສໍາລັບເຈົ້າຂອງ, ແລະບໍ່ມີສິດສໍາລັບຄົນອື່ນ. ການປະສົມທີ່ຖືກຕ້ອງເລື້ອຍໆທີ່ສຸດແມ່ນ 755 ສໍາລັບໄຟລ໌ແລະໄດເລກະທໍລີທີ່ສາມາດປະຕິບັດໄດ້, ແລະ 644 ສໍາລັບໄຟລ໌ຂໍ້ມູນ.
ເພື່ອເປັນຕົວແທນສິດທິພິເສດ, ທ່ານສາມາດນໍາຫນ້າຕົວເລກທີ່ສີ່ໄປຫາຕົວເລກນີ້ຕາມຫຼັກການດຽວກັນ, ບ່ອນທີ່ ສະສົມ, setgid, ແລະ ຫນຽວ bits ແມ່ນ 4, 2, ແລະ 1, ຕາມລໍາດັບ. ຄໍາສັ່ງ chmod 4754 ຈະຮ່ວມກັບ ສະສົມ bit ກັບສິດທິທີ່ໄດ້ອະທິບາຍກ່ອນຫນ້ານີ້.
ໃຫ້ສັງເກດວ່າການນໍາໃຊ້ຫມາຍເລກ octal ພຽງແຕ່ອະນຸຍາດໃຫ້ທ່ານກໍານົດສິດທິທັງຫມົດໃນເວລາດຽວກັນໃນໄຟລ໌; ທ່ານບໍ່ສາມາດໃຊ້ມັນເພື່ອເພີ່ມສິດທິໃຫມ່, ເຊັ່ນ: ການເຂົ້າເຖິງການອ່ານສໍາລັບເຈົ້າຂອງກຸ່ມ, ເພາະວ່າທ່ານຕ້ອງຄໍານຶງເຖິງສິດທິທີ່ມີຢູ່ແລ້ວແລະຄິດໄລ່ມູນຄ່າຕົວເລກທີ່ສອດຄ້ອງກັນໃຫມ່.
ການເປັນຕົວແທນຂອງ octal ຍັງຖືກນໍາໃຊ້ກັບ ໜ້າ ກາກ ຄໍາສັ່ງ, ເຊິ່ງຖືກນໍາໃຊ້ເພື່ອຈໍາກັດການອະນຸຍາດຂອງໄຟລ໌ທີ່ສ້າງຂຶ້ນໃຫມ່. ເມື່ອແອັບພລິເຄຊັນສ້າງໄຟລ໌, ມັນມອບສິດການຊີ້ບອກ, ໂດຍຮູ້ວ່າລະບົບຈະເອົາສິດທີ່ກໍານົດໄວ້ໂດຍອັດຕະໂນມັດ. ໜ້າ ກາກ. ເຂົ້າ ໜ້າ ກາກ ໃນຫອຍ; ທ່ານຈະເຫັນຫນ້າກາກເຊັ່ນ 0022. ນີ້ແມ່ນພຽງແຕ່ການເປັນຕົວແທນ octal ຂອງສິດທິທີ່ຈະໄດ້ຮັບການໂຍກຍ້າຍອອກເປັນລະບົບ (ໃນກໍລະນີນີ້, ສິດທິການຂຽນສໍາລັບກຸ່ມແລະຜູ້ໃຊ້ອື່ນໆ).
ຖ້າຫາກວ່າທ່ານໃຫ້ມັນເປັນມູນຄ່າເລກແປດໃຫມ່, ໄດ້ ໜ້າ ກາກ ຄໍາສັ່ງປັບປຸງຫນ້າກາກ. ໃຊ້ໃນໄຟລ໌ການເລີ່ມຕົ້ນຂອງແກະ (ຕົວຢ່າງ: ~ / .bash_profile), ມັນຈະມີປະສິດຕິຜົນປ່ຽນຫນ້າກາກເລີ່ມຕົ້ນສໍາລັບກອງປະຊຸມການເຮັດວຽກຂອງທ່ານ.
TIP ບາງຄັ້ງພວກເຮົາຕ້ອງປ່ຽນສິດທິສໍາລັບຕົ້ນໄມ້ໄຟລ໌ທັງຫມົດ. ຄໍາສັ່ງທັງຫມົດຂ້າງເທິງ
TIP ບາງຄັ້ງພວກເຮົາຕ້ອງປ່ຽນສິດທິສໍາລັບຕົ້ນໄມ້ໄຟລ໌ທັງຫມົດ. ຄໍາສັ່ງທັງຫມົດຂ້າງເທິງ
ການດໍາເນີນງານ recursive
ມີຫນຶ່ງ -R ທາງເລືອກທີ່ຈະດໍາເນີນການ recursively ໃນ sub-directories.
ຄວາມແຕກຕ່າງລະຫວ່າງໄດເລກະທໍລີແລະໄຟລ໌ບາງຄັ້ງກໍ່ເຮັດໃຫ້ເກີດບັນຫາກັບການດໍາເນີນງານຄືນໃຫມ່. ດ້ວຍເຫດນັ້ນ, ຈົດໝາຍ “X” ຈຶ່ງຖືກນຳສະເໜີໃນສັນຍາລັກຂອງສິດ. ມັນສະແດງເຖິງສິດທິໃນການປະຕິບັດທີ່ນໍາໃຊ້ກັບໄດເລກະທໍລີເທົ່ານັ້ນ (ແລະບໍ່ແມ່ນໄຟລ໌ທີ່ຂາດສິດທິນີ້). ດັ່ງນັ້ນ, chmod -R a+X ລະບົບ ພຽງແຕ່ຈະເພີ່ມສິດປະຕິບັດສໍາລັບທຸກປະເພດຂອງຜູ້ໃຊ້ (a) ສໍາລັບທຸກໄດເລກະທໍລີຍ່ອຍ ແລະໄຟລ໌ທີ່ຢ່າງໜ້ອຍໜຶ່ງປະເພດຂອງຜູ້ໃຊ້ (ເຖິງແມ່ນວ່າເຈົ້າຂອງແຕ່ພຽງຜູ້ດຽວ) ມີສິດປະຕິບັດແລ້ວ.
ການດໍາເນີນງານ recursive