ຄວາມແຕກຕ່າງລະຫວ່າງ su ແລະ sudo ແລະວິທີການຕັ້ງຄ່າ sudo ໃນ Linux


Linux System ແມ່ນມີຄວາມປອດໄພຫຼາຍກ່ວາຄູ່ຮ່ວມງານຂອງມັນ. ວິທີ ໜຶ່ງ ໃນການປະຕິບັດຄວາມປອດໄພໃນ Linux ແມ່ນນະໂຍບາຍການຄຸ້ມຄອງຜູ້ໃຊ້ແລະການອະນຸຍາດຂອງຜູ້ໃຊ້ແລະຜູ້ຊົມໃຊ້ປົກກະຕິບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ ດຳ ເນີນການໃດໆໃນລະບົບ.

ຖ້າຜູ້ໃຊ້ທົ່ວໄປ ຈຳ ເປັນຕ້ອງ ດຳ ເນີນການປ່ຽນແປງໃນລະບົບໃດກໍ່ຕາມລາວ ຈຳ ເປັນຕ້ອງໃຊ້ ຄຳ ສັ່ງ 'su' ຫຼື 'sudo'.

ໝາຍ ເຫດ - ບົດຂຽນນີ້ສາມາດ ນຳ ໃຊ້ໄດ້ກັບການແຈກຢາຍທີ່ອີງໃສ່ Ubuntu ຫຼາຍຂື້ນ, ແຕ່ຍັງໃຊ້ກັບການແຈກຢາຍ Linux ທີ່ນິຍົມໃຊ້ຫຼາຍທີ່ສຸດ.

‘su’ ບັງຄັບໃຫ້ທ່ານແບ່ງປັນ ລະຫັດຜ່ານຮາກ ໃຫ້ກັບຜູ້ໃຊ້ອື່ນໆໃນຂະນະທີ່ ‘sudo’ ເຮັດໃຫ້ມັນສາມາດປະຕິບັດ ຄຳ ສັ່ງຂອງລະບົບໄດ້ໂດຍບໍ່ຕ້ອງມີລະຫັດ ຮາກ . 'sudo' ຊ່ວຍໃຫ້ທ່ານໃຊ້ລະຫັດຜ່ານຂອງທ່ານເອງເພື່ອປະຕິບັດ ຄຳ ສັ່ງຂອງລະບົບ i.

'sudo' ແມ່ນລະບົບຮາກຖານ ຕັ້ງຄ່າ , ເຊິ່ງປະຕິບັດ ຄຳ ສັ່ງຮາກໃນນາມຂອງຜູ້ໃຊ້ທີ່ໄດ້ຮັບອະນຸຍາດແລະຜູ້ໃຊ້ຕ້ອງໃສ່ລະຫັດຜ່ານຂອງຕົນເອງເພື່ອປະຕິບັດ ຄຳ ສັ່ງຂອງລະບົບຕາມດ້ວຍ 'sudo'.

ພວກເຮົາສາມາດ ດຳ ເນີນການ '/ usr/sbin/visudo' ເພື່ອເພີ່ມ/ລຶບລາຍຊື່ຜູ້ໃຊ້ທີ່ສາມາດປະຕິບັດ 'sudo'.

$ sudo /usr/sbin/visudo

ພາບ ໜ້າ ຈໍຂອງເອກະສານ ‘/ usr/sbin/visudo’, ມີລັກສະນະຄືດັ່ງນີ້:

ບັນຊີລາຍຊື່ sudo ມີລັກສະນະຄືກັບຊ່ອຍແນ່ດ້ານລຸ່ມ, ໂດຍຄ່າເລີ່ມຕົ້ນ:

root ALL=(ALL) ALL

ໝາຍ ເຫດ: ເຈົ້າຕ້ອງເປັນ ຮາກ ເພື່ອດັດແກ້ເອກະສານ/usr/sbin/visudo.

ໃນຫລາຍໆສະຖານະການ, ຜູ້ເບິ່ງແຍງລະບົບ, ໂດຍສະເພາະຄົນ ໃໝ່ ໃນພາກສະ ໜາມ ພົບວ່າ“ ຮາກທັງ ໝົດ = (ALL) ທັງ ໝົດ” ເປັນແມ່ແບບແລະໃຫ້ການເຂົ້າເຖິງຜູ້ອື່ນແບບບໍ່ ຈຳ ກັດເຊິ່ງອາດເປັນອັນຕະລາຍຫຼາຍ.

ການດັດແກ້ເອກະສານ ‘/ usr/sbin/visudo’ ກັບບາງສິ່ງບາງຢ່າງທີ່ຄ້າຍຄືກັບຮູບແບບຂ້າງລຸ່ມນີ້ອາດຈະເປັນອັນຕະລາຍຫຼາຍ, ເວັ້ນເສຍແຕ່ວ່າທ່ານເຊື່ອວ່າຜູ້ໃຊ້ທັງ ໝົດ ທີ່ມີລາຍຊື່ ໝົດ.

root ALL=(ALL) ALL
adam ALL=(ALL) ALL
tom ALL=(ALL) ALL
mark ALL=(ALL) ALL

'sudo' ທີ່ຖືກ ກຳ ນົດຢ່າງຖືກຕ້ອງແມ່ນມີຄວາມຍືດຫຍຸ່ນຫຼາຍແລະ ຈຳ ນວນ ຄຳ ສັ່ງທີ່ຕ້ອງການ ດຳ ເນີນການອາດຈະມີການ ກຳ ນົດຢ່າງຖືກຕ້ອງ.

Syntax ຂອງເສັ້ນ 'sudo' ທີ່ຖືກຕັ້ງຄ່າແມ່ນ:

User_name Machine_name=(Effective_user) command

Syntax ຂ້າງເທິງນີ້ສາມາດແບ່ງອອກເປັນ 4 ພາກສ່ວນຄື:

<

  • User_name: ນີ້ແມ່ນຊື່ຂອງຜູ້ໃຊ້ 'sudo'.
  • Machine_name: ນີ້ແມ່ນຊື່ເຈົ້າພາບ, ເຊິ່ງ ຄຳ ສັ່ງ 'sudo' ແມ່ນຖືກຕ້ອງ. ມີປະໂຫຍດເມື່ອທ່ານມີເຄື່ອງຈັກໂຮດຫຼາຍ.
  • (Effective_user): ‘ຜູ້ໃຊ້ທີ່ມີປະສິດຕິພາບ’ ທີ່ອະນຸຍາດໃຫ້ປະຕິບັດ ຄຳ ສັ່ງ. ຖັນນີ້ຊ່ວຍໃຫ້ທ່ານສາມາດເຮັດໃຫ້ຜູ້ໃຊ້ສາມາດປະຕິບັດການ ຄຳ ສັ່ງຂອງລະບົບ.
  • ຄຳ ສັ່ງ: ຄຳ ສັ່ງຫລືຊຸດຂອງ ຄຳ ສັ່ງທີ່ຜູ້ໃຊ້ອາດຈະໃຊ້.
  • ບາງສະຖານະການ, ແລະສາຍ 'sudo' ທີ່ສອດຄ້ອງກັນ:

    Q1. ທ່ານມີເຄື່ອງ ໝາຍ ຜູ້ໃຊ້ເຊິ່ງເປັນຜູ້ບໍລິຫານຖານຂໍ້ມູນ. ທ່ານຄວນຈະສະ ໜອງ ການເຂົ້າເຖິງລາວທັງ ໝົດ ໃນ Database Server (beta.database_server.com) ເທົ່ານັ້ນ, ແລະບໍ່ແມ່ນຢູ່ໃນໂຮດໃດໆ.

    ສຳ ລັບສະຖານະການຂ້າງເທິງນັ້ນ, ສາມາດຂຽນເສັ້ນ 'sudo' ເປັນ:

    mark beta.database_server.com=(ALL) ALL

    Q2. ທ່ານມີຜູ້ໃຊ້ 'tom' ເຊິ່ງຄາດວ່າຈະ ດຳ ເນີນການ ຄຳ ສັ່ງຂອງລະບົບຄືກັບຜູ້ໃຊ້ອື່ນນອກ ເໜືອ ຈາກຮາກໃນຖານຂໍ້ມູນ Server ດຽວກັນ, ຂ້າງເທິງໄດ້ອະທິບາຍ.

    ສຳ ລັບສະຖານະການຂ້າງເທິງນັ້ນ, ສາມາດຂຽນເສັ້ນ 'sudo' ເປັນ:

    mark beta.database_server.com=(tom) ALL

    Q3. ທ່ານມີຜູ້ໃຊ້ sudo 'cat' ເຊິ່ງຄາດວ່າຈະ ດຳ ເນີນການ ຄຳ ສັ່ງ 'ໝາ' ເທົ່ານັ້ນ.

    ເພື່ອປະຕິບັດສະຖານະການຂ້າງເທິງນີ້, ພວກເຮົາສາມາດຂຽນ 'sudo' ເປັນ:

    mark beta.database_server.com=(cat) dog

    Q4. ຈະເປັນແນວໃດຖ້າຜູ້ໃຊ້ຕ້ອງໄດ້ຮັບອະນຸຍາດຫລາຍໆ ຄຳ ສັ່ງ?

    ຖ້າ ຈຳ ນວນ ຄຳ ສັ່ງ, ຜູ້ໃຊ້ຄາດວ່າຈະ ດຳ ເນີນການແມ່ນຕ່ ຳ ກວ່າ 10 ປີ, ພວກເຮົາສາມາດວາງ ຄຳ ສັ່ງທັງ ໝົດ ພ້ອມກັນ, ມີພື້ນທີ່ສີຂາວຢູ່ລະຫວ່າງພວກມັນ, ດັ່ງທີ່ສະແດງຢູ່ດ້ານລຸ່ມ:

    mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...

    ຖ້າບັນຊີ ຄຳ ສັ່ງນີ້ແຕກຕ່າງກັນໄປຕາມຂອບເຂດ, ບ່ອນທີ່ມັນບໍ່ສາມາດພິມ ຄຳ ສັ່ງແຕ່ລະຢ່າງດ້ວຍຕົນເອງໄດ້, ພວກເຮົາ ຈຳ ເປັນຕ້ອງໃຊ້ ນາມແຝງ . ນາມແຝງ! ແມ່ນແລ້ວ, ສິ່ງປະໂຫຍດຂອງ Linux ບ່ອນທີ່ມີ ຄຳ ສັ່ງຍາວຫລືບັນຊີລາຍຊື່ຂອງ ຄຳ ສັ່ງສາມາດຖືກເອີ້ນວ່າເປັນ ຄຳ ທີ່ນ້ອຍແລະງ່າຍດາຍ.

    ບາງຕົວຢ່າງ ນາມແຝງ , ເຊິ່ງສາມາດ ນຳ ໃຊ້ເຂົ້າໃນເອກະສານການຕັ້ງຄ່າ 'sudo'.

    User_Alias ADMINS=tom,jerry,adam
    user_Alias WEBMASTER=henry,mark
    WEBMASTERS WEBSERVERS=(www) APACHE
    Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top

    ມັນເປັນໄປໄດ້ທີ່ຈະລະບຸກຸ່ມລະບົບ, ແທນທີ່ຜູ້ໃຊ້, ເຊິ່ງເປັນຂອງກຸ່ມນັ້ນພຽງແຕ່ມີ 'ພຽງແຕ່'% 'ດັ່ງລຸ່ມນີ້:

    %apacheadmin WEBSERVERS=(www) APACHE

    Q5. ເຮັດແນວໃດກ່ຽວກັບການປະຕິບັດ ຄຳ ສັ່ງ 'sudo' ໂດຍບໍ່ຕ້ອງໃສ່ລະຫັດຜ່ານ?

    ພວກເຮົາສາມາດປະຕິບັດ ຄຳ ສັ່ງ 'sudo' ໂດຍບໍ່ຕ້ອງໃສ່ລະຫັດຜ່ານໂດຍການໃຊ້ 'NOPASSWD' ທຸງ.

    adam ALL=(ALL) NOPASSWD: PROCS

    ທີ່ນີ້ຜູ້ໃຊ້“ adam ’ສາມາດປະຕິບັດ ຄຳ ສັ່ງທັງ ໝົດ ທີ່ຢູ່ພາຍໃຕ້“ PROCS”, ໂດຍບໍ່ຕ້ອງໃສ່ລະຫັດຜ່ານ.

    "sudo" ໃຫ້ທ່ານມີສະພາບແວດລ້ອມທີ່ເຂັ້ມແຂງແລະປອດໄພພ້ອມດ້ວຍຄວາມຍືດຍຸ່ນຫຼາຍເມື່ອທຽບໃສ່ກັບ 'su'. ຍິ່ງໄປກວ່ານັ້ນການຕັ້ງຄ່າ“ sudo” ແມ່ນງ່າຍດາຍ. ບາງການແຈກຈ່າຍ Linux ມີ "sudo" ເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນໃນຂະນະທີ່ສ່ວນໃຫຍ່ຂອງການລົບກວນໃນມື້ນີ້ຕ້ອງການໃຫ້ທ່ານສາມາດເປີດໃຊ້ມັນເປັນມາດຕະການຄວາມປອດໄພ.

    ເພື່ອເພີ່ມຜູ້ໃຊ້ (bob) ໃຫ້ sudo ພຽງແຕ່ ດຳ ເນີນ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ເປັນຮາກ.

    adduser bob sudo
    

    ດຽວນີ້ ໝົດ ແລ້ວ. ຂ້ອຍຈະຢູ່ທີ່ນີ້ອີກເທື່ອ ໜຶ່ງ ດ້ວຍບົດຂຽນທີ່ ໜ້າ ສົນໃຈອີກ. ຈົນກ່ວາຫຼັງຈາກນັ້ນຕິດຕາມແລະເຊື່ອມຕໍ່ກັບ Tecmint. ຢ່າລືມໃຫ້ ຄຳ ຕິຊົມທີ່ມີຄຸນຄ່າຂອງພວກເຮົາໃນພາກ ຄຳ ເຫັນຂອງພວກເຮົາ.