10 naudingų „Sudoers“ konfigūracijų, skirtų „sudo“ nustatyti „Linux“
„Linux“ ir kitose „Unix“ tipo operacinėse sistemose tik pagrindinis vartotojas gali paleisti visas komandas ir atlikti tam tikras kritines operacijas sistemoje, pvz., Įdiegti ir atnaujinti, pašalinti paketus, kurti vartotojus ir grupes, modifikuoti svarbius sistemos konfigūracijos failus ir pan.
Tačiau sistemos administratorius, prisiimantis pagrindinio vartotojo vaidmenį, gali leisti kitiems įprastiems sistemos vartotojams sudo komandos ir kelių konfigūracijų pagalba paleisti kai kurias komandas, taip pat atlikti daugybę gyvybiškai svarbių sistemos operacijų, įskaitant minėtas aukščiau.
Arba sistemos administratorius gali dalytis pagrindinio vartotojo slaptažodžiu (kuris nėra rekomenduojamas metodas), kad įprasti sistemos vartotojai turėtų prieigą prie šakninio vartotojo abonemento naudodami komandą su.
sudo leidžia leistinam vartotojui vykdyti komandą kaip root (arba kitą vartotoją), kaip nurodyta saugos politikoje:
- Jis skaito ir analizuoja/etc/sudoers, ieško kviečiančio vartotojo ir jo leidimų,
- tada ragina vartotoją įvesti slaptažodį (paprastai vartotojo slaptažodį, bet jis taip pat gali būti tikslinio vartotojo slaptažodis. Arba jį galima praleisti su NOPASSWD žyma),
- po to „sudo“ sukuria vaiko procesą, kurio metu jis paskambina „setuid“(), kad pereitų prie tikslinio vartotojo
- tada jis vykdo apvalkalą arba komandą, pateiktą kaip argumentus aukščiau pateiktame vaiko procese.
Žemiau yra dešimt failų/etc/sudoers konfigūracijų, skirtų modifikuoti sudo komandos veikimą naudojant įrašus Numatytieji.
$ 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
Atsižvelgdami į šio vadovo taikymo sritį, žemiau nurodytose formose nulį nustatysime iki pirmojo tipo numatytųjų. Parametrai gali būti žymos, sveikųjų skaičių reikšmės, eilutės ar sąrašai.
Turėtumėte atkreipti dėmesį, kad žymos yra netiesioginės loginės reikšmės ir jas galima išjungti naudojant operatorių !
, o sąrašuose yra dar du papildomi priskyrimo operatoriai: + =
(pridėti prie sąrašo) ir - =
(pašalinti iš sąrašo).
Defaults parameter OR Defaults parameter=value OR Defaults parameter -=value Defaults parameter +=value OR Defaults !parameter
1. Nustatykite saugų kelią
Tai kelias, naudojamas kiekvienai komandai, paleistai naudojant „sudo“, jis turi dvi svarbas:
- Naudojamas, kai sistemos administratorius nepasitiki sudo vartotojais turėdamas saugų PATH aplinkos kintamąjį
- Norint atskirti „šakninį kelią“ ir „naudotojo kelią“, šis nustatymas neturi įtakos tik tiems vartotojams, kuriuos apibrėžia „excl_group“.
Norėdami jį nustatyti, pridėkite eilutę:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
2. Įjunkite „sudo“ TTY vartotojo prisijungimo sesijoje
Jei norite, kad sudo būtų galima iškviesti iš tikro tty, bet ne naudojant tokius metodus kaip „cron“ arba „cgi-bin“ scenarijai, pridėkite eilutę:
Defaults requiretty
3. Paleiskite „Sudo Command“ naudodami pty
Kelis kartus užpuolikai gali paleisti kenkėjišką programą (pvz., Virusą ar kenkėjišką programinę įrangą) naudodamiesi sudo, kuri vėl įtvirtintų foninį procesą, kuris lieka vartotojo galutiniame įrenginyje, net kai pagrindinė programa bus baigta vykdyti.
Norėdami išvengti tokio scenarijaus, galite sukonfigūruoti „sudo“ vykdyti kitas komandas tik iš „psuedo-pty“ naudodami parametrą use_pty
, neatsižvelgiant į tai, ar įvesties/išvesties registravimas įjungtas, ar ne:
Defaults use_pty
4. Sukurkite „Sudo“ žurnalo failą
Pagal numatytuosius nustatymus „sudo“ registruojasi per „syslog“ (3). Tačiau norėdami nurodyti pasirinktinį žurnalo failą, naudokite tokį parametrą:
Defaults logfile="/var/log/sudo.log"
Norėdami registruoti pagrindinio kompiuterio pavadinimą ir keturženklius metus pasirinktiniame žurnalo faile, naudokite parametrus log_host ir log_year atitinkamai taip:
Defaults log_host, log_year, logfile="/var/log/sudo.log"
Žemiau pateikiamas pasirinktinio sudo žurnalo failo pavyzdys:
5. Prisijungti „Sudo“ komandos įvestis/išvestis
„Log_input“ ir „log_output“ parametrai leidžia „sudo“ paleisti komandą pseudo-tty ir registruoti visus vartotojo įvestis ir visas išvestis, siunčiamas į ekraną.
Numatytasis įvesties/išvesties žurnalo katalogas yra/var/log/sudo-io, o jei yra sesijos eilės numeris, jis saugomas šiame kataloge. Galite nurodyti pasirinktinį katalogą naudodami parametrą „iolog_dir“.
Defaults log_input, log_output
Yra keletas palaikomų pabėgimo sekų, pavyzdžiui, % {seq}
, kuris išsiplečia iki monotoniškai didėjančio bazės-36 eilės numerio, pavyzdžiui, 000001, kur kas du skaitmenys naudojami kuriant naują katalogą, pvz. 00/00/01, kaip parodyta toliau pateiktame pavyzdyje:
$ cd /var/log/sudo-io/ $ ls $ cd 00/00/01 $ ls $ cat log
Likusius to katalogo failus galite peržiūrėti naudodami „cat“ komandą.
6. Paskaitos „Sudo“ vartotojai
Norėdami skaityti „sudo“ vartotojams apie slaptažodžių naudojimą sistemoje, naudokite paskaitos parametrą, kaip nurodyta toliau.
Jis turi 3 galimas vertes:
- visada - visada skaitykite paskaitą vartotojui.
- vieną kartą - paskaitykite vartotojui tik pirmą kartą, kai jis vykdo sudo komandą (ji naudojama, kai nenurodyta vertė)
- niekada - niekada neskaitykite vartotojo.
Defaults lecture="always"
Be to, galite nustatyti pasirinktinį paskaitos failą su parametru „lecture_file“, faile įveskite atitinkamą pranešimą:
Defaults lecture_file="/path/to/file"
7. Rodyti pasirinktinį pranešimą, kai įvedate neteisingą sudo slaptažodį
Kai vartotojas įveda neteisingą slaptažodį, komandinėje eilutėje rodomas tam tikras pranešimas. Numatytasis pranešimas yra „atsiprašau, bandykite dar kartą“. Galite modifikuoti pranešimą naudodami parametrą „badpass_message“ taip:
Defaults badpass_message="Password is wrong, please try again"
8. Padidinkite „Sudo Password Tries Limit“
Parametras passwd_tries naudojamas nurodyti, kiek kartų vartotojas gali bandyti įvesti slaptažodį.
Numatytoji vertė yra 3:
Defaults passwd_tries=5
Norėdami nustatyti slaptažodžio skirtąjį laiką (numatytasis parametras yra 5 minutės) naudodami parametrą passwd_timeout, pridėkite žemiau esančią eilutę:
Defaults passwd_timeout=2
9. Leiskite „Sudo“ įžeisti jus, kai įvedate neteisingą slaptažodį
Jei vartotojas įveda neteisingą slaptažodį, sudo parodys įžeidimus terminale su parametru įžeidimai. Tai automatiškai išjungs parametrą „badpass_message“.
Defaults insults
Skaityti daugiau: Tegul „Sudo“ įžeidžia jus, kai įvedate neteisingą slaptažodį
10. Sužinokite daugiau apie „Sudo“ konfigūracijas
Be to, galite sužinoti daugiau sudo komandų konfigūracijų skaitydami: Skirtumas tarp „su“ ir „sudo“ ir „Kaip konfigūruoti„ sudo “sistemoje„ Linux “.
Viskas! Jūs galite pasidalinti kitomis naudingomis sudo komandų konfigūracijomis ar gudrybėmis ir patarimais su „Linux“ vartotojais per toliau pateiktą komentarų skyrių.