10 ການຕັ້ງຄ່າ Sudoers ທີ່ເປັນປະໂຫຍດ ສຳ ລັບການຕັ້ງຄ່າ sudo ໃນ Linux
ໃນລະບົບປະຕິບັດການ Linux ແລະລະບົບປະຕິບັດການຄ້າຍຄື Unix ອື່ນໆ, ມີພຽງແຕ່ຜູ້ ນຳ ໃຊ້ຮາກສາມາດ ດຳ ເນີນການ ຄຳ ສັ່ງທັງ ໝົດ ແລະ ດຳ ເນີນການທີ່ ສຳ ຄັນບາງຢ່າງໃນລະບົບເຊັ່ນ: ຕິດຕັ້ງແລະອັບເດດ, ລຶບແພກເກດ, ສ້າງຜູ້ໃຊ້ແລະກຸ່ມ, ແກ້ໄຂເອກະສານການຕັ້ງຄ່າລະບົບທີ່ ສຳ ຄັນແລະອື່ນໆ.
ເຖິງຢ່າງໃດກໍ່ຕາມ, ຜູ້ເບິ່ງແຍງລະບົບທີ່ຮັບຜິດຊອບບົດບາດຂອງຜູ້ໃຊ້ຮາກສາມາດອະນຸຍາດໃຫ້ຜູ້ໃຊ້ລະບົບປົກກະຕິອື່ນໆໂດຍການຊ່ວຍເຫຼືອຂອງ ຄຳ ສັ່ງ sudo ແລະການຕັ້ງຄ່າ ຈຳ ນວນ ໜຶ່ງ ເພື່ອ ດຳ ເນີນການບາງ ຄຳ ສັ່ງພ້ອມທັງ ດຳ ເນີນການຫຼາຍໆລະບົບທີ່ ສຳ ຄັນລວມທັງຜູ້ທີ່ໄດ້ກ່າວມາຂ້າງເທິງ.
ອີກທາງເລືອກ ໜຶ່ງ, ຜູ້ເບິ່ງແຍງລະບົບສາມາດແບ່ງປັນລະຫັດຜ່ານຂອງຜູ້ໃຊ້ຮາກ (ເຊິ່ງບໍ່ແມ່ນວິທີການທີ່ແນະ ນຳ) ເພື່ອໃຫ້ຜູ້ໃຊ້ລະບົບປົກກະຕິສາມາດເຂົ້າເຖິງບັນຊີຜູ້ໃຊ້ຮາກຜ່ານລະບົບ su command.
sudo ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ທີ່ອະນຸຍາດໃຫ້ປະຕິບັດ ຄຳ ສັ່ງເປັນຮາກ (ຫລືຜູ້ໃຊ້ອື່ນ), ຕາມທີ່ລະບຸໄວ້ໃນນະໂຍບາຍຄວາມປອດໄພ:
<
ຂ້າງລຸ່ມນີ້ແມ່ນສິບ/etc/sudoers ການຕັ້ງຄ່າເອກະສານເພື່ອດັດແປງພຶດຕິ ກຳ ຂອງ ຄຳ ສັ່ງ sudo ໂດຍໃຊ້ຄ່າເລີ່ມຕົ້ນ.
$ sudo cat /etc/sudoers
# # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" Defaults logfile="/var/log/sudo.log" Defaults lecture="always" Defaults badpass_message="Password is wrong, please try again" Defaults passwd_tries=5 Defaults insults Defaults log_input,log_output
Defaults parameter, parameter_list #affect all users on any host [email _List parameter, parameter_list #affects all users on a specific host Defaults:User_List parameter, parameter_list #affects a specific user Defaults!Cmnd_List parameter, parameter_list #affects a specific command Defaults>Runas_List parameter, parameter_list #affects commands being run as a specific user
ສຳ ລັບຂອບເຂດຂອງ ຄຳ ແນະ ນຳ ນີ້, ພວກເຮົາຈະລົງສູນປະເພດ ທຳ ອິດໃນແບບຟອມລຸ່ມນີ້. ພາລາມິເຕີອາດຈະແມ່ນທຸງ, ຄ່າເຊື່ອມ, ສາຍ, ຫລືລາຍຊື່.
ທ່ານຄວນສັງເກດວ່າທຸງແມ່ນບູຊາລ້ວນແຕ່ສາມາດປິດໄດ້ໂດຍໃຊ້ຕົວປະຕິບັດການ !
, ແລະລາຍຊື່ມີຜູ້ປະກອບການມອບ ໝາຍ ເພີ່ມອີກສອງຄົນ, + =
(ເພີ່ມເຂົ້າໃນບັນຊີ) ແລະ - =
(ເອົາອອກຈາກລາຍຊື່).
Defaults parameter OR Defaults parameter=value OR Defaults parameter -=value Defaults parameter +=value OR Defaults !parameter
1. ຕັ້ງ PATH ທີ່ປອດໄພ
ນີ້ແມ່ນເສັ້ນທາງທີ່ໃຊ້ ສຳ ລັບທຸກໆ ຄຳ ສັ່ງທີ່ແລ່ນກັບ sudo, ມັນມີສອງຄວາມ ສຳ ຄັນຄື:
< ໃຊ້ໃນເວລາທີ່ຜູ້ເບິ່ງແຍງລະບົບບໍ່ເຊື່ອໃຈຜູ້ໃຊ້ sudo ໃຫ້ມີຕົວປ່ຽນແປງ PATH environment ທີ່ປອດໄພ
ເພື່ອ ກຳ ນົດມັນ, ເພີ່ມເສັ້ນ:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
2. ເປີດໃຊ້ sudo ໃນກອງປະຊຸມເຂົ້າສູ່ລະບົບຜູ້ໃຊ້ TTY
ເພື່ອເຮັດໃຫ້ sudo ຖືກເອີ້ນຈາກ tty ທີ່ແທ້ຈິງແຕ່ບໍ່ແມ່ນຜ່ານວິທີການຕ່າງໆເຊັ່ນ cron ຫຼື cgi-bin scripts, ເພີ່ມເສັ້ນ:
Defaults requiretty
3. ໃຊ້ Command Sudo ໂດຍໃຊ້ pty
ສອງສາມຄັ້ງ, ຜູ້ໂຈມຕີສາມາດເອີ້ນໃຊ້ໂປແກຼມທີ່ເປັນອັນຕະລາຍ (ເຊັ່ນ: ໄວຣັສຫລືມັນແວ) ໂດຍໃຊ້ sudo ເຊິ່ງມັນຈະຊ້ ຳ ຊ້ອນຂະບວນການພື້ນຫລັງທີ່ຍັງຄົງຢູ່ໃນອຸປະກອນປາຍທາງຂອງຜູ້ໃຊ້ເຖິງແມ່ນວ່າໂປຣແກຣມຫຼັກ ສຳ ເລັດແລ້ວ.
ເພື່ອຫລີກລ້ຽງສະຖານະການດັ່ງກ່າວ, ທ່ານສາມາດຕັ້ງຄ່າ sudo ເພື່ອ ດຳ ເນີນການ ຄຳ ສັ່ງອື່ນໄດ້ຈາກ psuedo-pty ໂດຍໃຊ້ຕົວ ກຳ ນົດ use_pty
, ບໍ່ວ່າຈະເປັນການເຂົ້າສູ່ລະບົບ I/O ຖືກເປີດໃຊ້ຫຼືບໍ່ດັ່ງຕໍ່ໄປນີ້:
Defaults use_pty
4. ສ້າງເອກະສານບັນທຶກ Sudo
ໂດຍຄ່າເລີ່ມຕົ້ນ, ຂໍ້ມູນບັນທຶກ sudo ຜ່ານ syslog (3). ເຖິງຢ່າງໃດກໍ່ຕາມ, ເພື່ອ ກຳ ນົດເອກະສານບັນທຶກການ ກຳ ນົດເອງ, ໃຫ້ໃຊ້ພາລາມິເຕີ logfile ເຊັ່ນນັ້ນ:
Defaults logfile="/var/log/sudo.log"
ເພື່ອເຊັນຊື່ hostname ແລະປີສີ່ຕົວເລກໃນແຟ້ມ log custom, ໃຊ້ log_host ແລະ log_year ຕາມ ລຳ ດັບດັ່ງຕໍ່ໄປນີ້:
Defaults log_host, log_year, logfile="/var/log/sudo.log"
ຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງຂອງ file sudo log custom:
5. ເຂົ້າສູ່ລະບົບ Input/Output Command Sudo Logo
ຕົວກໍານົດການ log_input ແລະ log_output ຊ່ວຍໃຫ້ sudo ສາມາດດໍາເນີນການຄໍາສັ່ງໃນ pseudo-tty ແລະເຂົ້າສູ່ລະບົບການປ້ອນຂໍ້ມູນຂອງຜູ້ໃຊ້ແລະຜົນໄດ້ຮັບທັງ ໝົດ ທີ່ຖືກສົ່ງໄປຫາ ໜ້າ ຈໍ.
ໄດເລກະທໍລີບັນທຶກ I/O ໃນຕອນຕົ້ນແມ່ນ/var/log/sudo-io, ແລະຖ້າມີຕົວເລກ ລຳ ດັບຂອງ session, ມັນຖືກເກັບຢູ່ໃນໄດເລກະທໍລີນີ້. ທ່ານສາມາດ ກຳ ນົດໄດເລກະທໍລີທີ່ ກຳ ຫນົດເອງຜ່ານພາລາມິເຕີຂອງ iolog_dir.
Defaults log_input, log_output
ມີບາງ ລຳ ດັບ ໜີ ທີ່ໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ ເຊັ່ນ: % {seq}
ທີ່ຂະຫຍາຍໄປສູ່ ຈຳ ນວນ ລຳ ດັບເພິ່ມຂື້ນທີ່ເປັນຕົວຕັ້ງຕົວເລກ, ເຊັ່ນວ່າ 000001, ເຊິ່ງທຸກໆສອງຕົວເລກຖືກ ນຳ ໃຊ້ເພື່ອປະກອບເປັນໄດເລກະທໍລີ ໃໝ່, ເຊັ່ນ: 00/00/01 ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້:
$ cd /var/log/sudo-io/ $ ls $ cd 00/00/01 $ ls $ cat log
ທ່ານສາມາດເບິ່ງເອກະສານທີ່ເຫລືອຢູ່ໃນໄດເລກະທໍລີນັ້ນໂດຍໃຊ້ ຄຳ ສັ່ງແມວ.
6. ບັນຍາຍຜູ້ໃຊ້ Sudo
ເພື່ອສອນຜູ້ໃຊ້ sudo ກ່ຽວກັບການ ນຳ ໃຊ້ລະຫັດຜ່ານໃນລະບົບ, ໃຊ້ຕົວ ກຳ ນົດການບັນຍາຍດັ່ງລຸ່ມນີ້.
ມັນມີ 3 ຄຸນຄ່າທີ່ເປັນໄປໄດ້:
<
Defaults lecture="always"
ນອກຈາກນັ້ນ, ທ່ານສາມາດ ກຳ ນົດແຟ້ມການບັນຍາຍທີ່ ກຳ ນົດເອງດ້ວຍພາລາມິເຕີ lecture_file, ພິມຂໍ້ຄວາມທີ່ ເໝາະ ສົມໃນແຟ້ມ:
Defaults lecture_file="/path/to/file"
7. ສະແດງຂໍ້ຄວາມທີ່ ກຳ ຫນົດເອງເມື່ອທ່ານໃສ່ລະຫັດຜ່ານ sudo ທີ່ບໍ່ຖືກຕ້ອງ
ເມື່ອຜູ້ໃຊ້ປ້ອນລະຫັດຜ່ານທີ່ບໍ່ຖືກຕ້ອງ, ຂໍ້ຄວາມສະເພາະໃດ ໜຶ່ງ ຈະຖືກສະແດງຢູ່ໃນເສັ້ນ ຄຳ ສັ່ງ. ຂໍ້ຄວາມເລີ່ມຕົ້ນແມ່ນ "ຂໍອະໄພ, ລອງ ໃໝ່ ອີກຄັ້ງ", ທ່ານສາມາດດັດແກ້ຂໍ້ຄວາມໂດຍໃຊ້ພາລາມິເຕີ badpass_message ດັ່ງຕໍ່ໄປນີ້:
Defaults badpass_message="Password is wrong, please try again"
8. ເພີ່ມຂໍ້ ຈຳ ກັດຂອງລະຫັດຜ່ານ sudo
passwd_tries ພາລາມິເຕີຖືກໃຊ້ເພື່ອລະບຸ ຈຳ ນວນຄັ້ງທີ່ຜູ້ໃຊ້ສາມາດພະຍາຍາມໃສ່ລະຫັດຜ່ານ.
ຄ່າເລີ່ມຕົ້ນແມ່ນ 3:
Defaults passwd_tries=5
ເພື່ອ ກຳ ນົດເວລາ ໝົດ ລະຫັດຜ່ານ (ຄ່າເລີ່ມຕົ້ນແມ່ນ 5 ນາທີ) ໂດຍໃຊ້ຕົວ ກຳ ນົດການ passwd_timeout, ເພີ່ມເສັ້ນຂ້າງລຸ່ມນີ້:
Defaults passwd_timeout=2
9. ໃຫ້ Sudo ດູຖູກທ່ານເມື່ອທ່ານໃສ່ລະຫັດຜ່ານທີ່ບໍ່ຖືກຕ້ອງ
ໃນກໍລະນີທີ່ຜູ້ໃຊ້ພິມລະຫັດຜ່ານທີ່ບໍ່ຖືກຕ້ອງ, sudo ຈະສະແດງ ຄຳ ຫຍາບຄາຍຢູ່ເທິງປາຍທີ່ມີພາລາມິເຕີໃສ່ຮ້າຍ. ນີ້ຈະປິດພາລາມິເຕີຂອງ badpass_message ໂດຍອັດຕະໂນມັດ.
Defaults insults
ອ່ານຕໍ່: ໃຫ້ Sudo ດູຖູກທ່ານເມື່ອທ່ານໃສ່ລະຫັດຜ່ານທີ່ບໍ່ຖືກຕ້ອງ
10. ຮຽນຮູ້ເພີ່ມເຕີມການຕັ້ງຄ່າ Sudo
ນອກຈາກນັ້ນ, ທ່ານຍັງສາມາດຮຽນຮູ້ການຕັ້ງຄ່າ ຄຳ ສັ່ງ sudo ຫຼາຍຂຶ້ນໂດຍການອ່ານ: ຄວາມແຕກຕ່າງລະຫວ່າງ su ແລະ sudo ແລະວິທີການຕັ້ງຄ່າ sudo ໃນ Linux.
ນັ້ນແມ່ນມັນ! ທ່ານສາມາດແບ່ງປັນການຕັ້ງຄ່າ ຄຳ ສັ່ງຫຼື ຄຳ ແນະ ນຳ sudo ທີ່ມີປະໂຫຍດອື່ນໆກັບຜູ້ໃຊ້ Linux ຢູ່ທີ່ນັ້ນໂດຍຜ່ານສ່ວນ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.