10 noderīgas Sudoers konfigurācijas sudo iestatīšanai Linux
Linux un citās Unix līdzīgās operētājsistēmās tikai saknes lietotājs var izpildīt visas komandas un veikt noteiktas kritiskas darbības sistēmā, piemēram, instalēt un atjaunināt, noņemt paketes, izveidot lietotājus un grupas, modificēt svarīgus sistēmas konfigurācijas failus un tā tālāk.
Tomēr sistēmas administrators, kurš uzņemas root lietotāja lomu, ar sudo komandas un dažu konfigurāciju palīdzību var atļaut citiem parastajiem sistēmas lietotājiem palaist dažas komandas, kā arī veikt vairākas svarīgas sistēmas darbības, ieskaitot iepriekš minētās.
Alternatīvi, sistēmas administrators var koplietot root lietotāja paroli (kas nav ieteicama metode), lai parastajiem sistēmas lietotājiem būtu piekļuve root lietotāja kontam, izmantojot komandu su.
sudo ļauj atļautam lietotājam izpildīt komandu kā root (vai citu lietotāju), kā noteikts drošības politikā:
- Tas lasa un parsē/etc/sudoers, meklē izsaucošo lietotāju un tā atļaujas
- pēc tam aicinot lietotāju pieprasīt paroli (parasti lietotāja parole, bet tā var būt arī mērķa lietotāja parole. Vai arī to var izlaist ar NOPASSWD tagu),
- pēc tam sudo izveido bērnu procesu, kurā tas izsauc setuid(), lai pārslēgtos uz mērķa lietotāju
- pēc tam tas izpilda čaulu vai komandu, kas tiek dota kā argumenti iepriekš minētajā bērna procesā.
Zemāk ir desmit/etc/sudoers failu konfigurācijas, lai modificētu sudo komandas darbību, izmantojot ierakstus Noklusējumi.
$ 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
Šīs rokasgrāmatas darbības jomā mēs noklusēsim pirmo noklusējuma veidu zemāk esošajās veidlapās. Parametri var būt karodziņi, veselu skaitļu vērtības, virknes vai saraksti.
Jums jāņem vērā, ka karodziņi ir netieši logi, un tos var izslēgt, izmantojot operatoru !
, un sarakstos ir divi papildu piešķiršanas operatori: + =
(pievienot sarakstam) un - =
(noņemt no saraksta).
Defaults parameter OR Defaults parameter=value OR Defaults parameter -=value Defaults parameter +=value OR Defaults !parameter
1. Iestatiet drošu ceļu
Šis ir ceļš, kas tiek izmantots katrai komandai, kas palaista ar sudo, un tai ir divas nozīmes:
- Izmanto, ja sistēmas administrators neuzticas sudo lietotājiem, ka viņiem ir drošs PATH vides mainīgais
- Lai atdalītu “saknes ceļu” un “lietotāja ceļu”, šis iestatījums neietekmē tikai lietotājus, kurus definē atbrīvošanas grupa.
Lai to iestatītu, pievienojiet rindiņu:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
2. Iespējojiet sudo TTY lietotāja pieteikšanās sesijā
Lai iespējotu sudo izsaukšanu no reāla tty, bet ne ar tādām metodēm kā cron vai cgi-bin skripti, pievienojiet rindiņu:
Defaults requiretty
3. Palaidiet komandu Sudo, izmantojot pty
Dažas reizes uzbrucēji var palaist ļaunprātīgu programmu (piemēram, vīrusu vai ļaunprātīgu programmatūru), izmantojot sudo, kas atkal dublētu fona procesu, kas paliek lietotāja gala ierīcē pat tad, kad galvenā programma ir pabeigta.
Lai izvairītos no šāda scenārija, varat konfigurēt sudo, lai citas komandas palaistu tikai no psuedo-pty, izmantojot parametru use_pty
neatkarīgi no tā, vai I/O reģistrēšana ir ieslēgta vai nav:
Defaults use_pty
4. Izveidojiet Sudo žurnāla failu
Pēc noklusējuma sudo piesakās caur syslog (3). Tomēr, lai norādītu pielāgotu žurnāla failu, izmantojiet parametru logfile šādi:
Defaults logfile="/var/log/sudo.log"
Lai reģistrētu resursdatora nosaukumu un četrciparu gadu pielāgotā žurnāla failā, izmantojiet parametrus log_host un log_year attiecīgi šādi:
Defaults log_host, log_year, logfile="/var/log/sudo.log"
Zemāk ir pielāgota sudo žurnāla faila piemērs:
5. Reģistrējiet Sudo komandu ievadi/izvadi
Log_input un log_output parametri ļauj sudo palaist komandu pseido-tty un reģistrēt visu lietotāja ievadi un visu izvadi, kas nosūtīts uz ekrānu.
Noklusējuma I/O žurnāla direktorija ir/var/log/sudo-io, un, ja ir sesijas kārtas numurs, tas tiek saglabāts šajā direktorijā. Izmantojot parametru iolog_dir, varat norādīt pielāgotu direktoriju.
Defaults log_input, log_output
Ir dažas atbalstītas evakuācijas sekvences, piemēram, % {seq}
, kas paplašinās līdz monotoniski augošam bāzes 36 kārtas skaitlim, piemēram, 000001, kur ik pēc diviem cipariem tiek izveidots jauns katalogs, piem. 00/00/01, kā parādīts zemāk esošajā piemērā:
$ cd /var/log/sudo-io/ $ ls $ cd 00/00/01 $ ls $ cat log
Pārējos failus šajā direktorijā varat apskatīt, izmantojot komandu cat.
6. Lekcijas Sudo lietotāji
Lai lasītu sudo lietotājiem lekcijas par paroles lietošanu sistēmā, izmantojiet lekcijas parametru, kā norādīts zemāk.
Tam ir 3 iespējamās vērtības:
- vienmēr - vienmēr lasiet lekciju lietotājam.
- vienu reizi - lekciju lietotājam veic tikai pirmo reizi, kad viņš izpilda sudo komandu (to izmanto, ja nav norādīta vērtība)
- nekad - nekad nelasiet lietotāju.
Defaults lecture="always"
Turklāt jūs varat iestatīt pielāgotu lekcijas failu ar parametru lecture_file, ierakstiet failā atbilstošo ziņojumu:
Defaults lecture_file="/path/to/file"
7. Parādiet pielāgotu ziņojumu, ievadot nepareizu sudo paroli
Kad lietotājs ievada nepareizu paroli, komandrindā tiek parādīts noteikts ziņojums. Noklusējuma ziņojums ir “atvainojiet, mēģiniet vēlreiz”. Jūs varat modificēt ziņojumu, izmantojot parametru badpass_message šādi:
Defaults badpass_message="Password is wrong, please try again"
8. Palieliniet sudo paroli mēģina ierobežot
Parametru passwd_tries izmanto, lai norādītu, cik reižu lietotājs var mēģināt ievadīt paroli.
Noklusējuma vērtība ir 3:
Defaults passwd_tries=5
Lai iestatītu paroles noildzi (noklusējums ir 5 minūtes), izmantojot parametru passwd_timeout, pievienojiet zemāk esošo rindu:
Defaults passwd_timeout=2
9. Ļaujiet Sudo tevi apvainot, ievadot nepareizu paroli
Gadījumā, ja lietotājs ievadīs nepareizu paroli, sudo terminālā parādīs apvainojumus ar parametru apvainojumi. Tas automātiski izslēgs parametru badpass_message.
Defaults insults
Lasīt vairāk: Ļaujiet Sudo tevi apvainot, ievadot nepareizu paroli
10. Uzziniet vairāk Sudo konfigurācijas
Turklāt jūs varat uzzināt vairāk sudo komandu konfigurācijas, lasot: Atšķirība starp su un sudo un Kā konfigurēt sudo Linux.
Tieši tā! Izmantojot tālāk sniegto komentāru sadaļu, ar Linux lietotājiem varat kopīgot citas noderīgas sudo komandu konfigurācijas vai trikus un padomus.