Si të ekzekutoni skriptet e Shell me komandën Sudo në Linux
sudo është një mjet i fuqishëm i linjës komanduese që i mundëson një \përdorues të lejuar të ekzekutojë një komandë si një përdorues tjetër (superpërdoruesi si parazgjedhje), siç përcaktohet nga një politikë sigurie. Në shumicën, nëse jo të gjitha sistemet Linux, politika e sigurisë drejtohet nga skedari /etc/sudoers.
Prandaj, për të ekzekutuar një skript shell ose program si rrënjë, duhet të përdorni komandën sudo. Sidoqoftë, sudo njeh dhe ekzekuton vetëm komandat që ekzistojnë në drejtoritë e specifikuara në shtegun e sigurt në /etc/sudoers, përveç nëse një komandë është e pranishme në shtegun e sigurt, ju do të kundërshtoni një gabim siç është ai më poshtë.
Kjo do të ndodhë edhe nëse skripti ekziston në një direktori në variablin mjedisor PATH, sepse kur një përdorues thërret sudo, PATH zëvendësohet me safe_path.
$ echo $PATH
$ ls -l
$ sudo proconport.sh 80
Në skenarin e mësipërm, drejtoria /home/aaronkilik/bin është në variablin e mjedisit PATH dhe ne po përpiqemi të ekzekutojmë skriptin /home/aaronkilik/bin/proconport.sh (gjen dëgjimin e procesit në një port) me privilegje root.
Më pas hasëm gabimin \sudo: proconport.sh: komanda nuk u gjet, pasi /home/aaronkilik/bin nuk është në rrugën e sigurt_sudo siç tregohet në pamjen tjetër të ekranit.
Për ta rregulluar këtë, ne duhet të shtojmë direktorinë që përmban skriptet tona në sudo safe_path duke përdorur komandën visudo duke redaktuar skedarin /etc/sudoers si më poshtë.
$ sudo visudo
Kujdes: Kjo metodë ka implikime serioze sigurie veçanërisht në serverët që funksionojnë në internet. Në këtë mënyrë, ne rrezikojmë t'i ekspozojmë sistemet tona ndaj sulmeve të ndryshme, sepse një sulmues që arrin të fitojë akses në një direktori të pasigurt (pa privilegje superpërdoruesi) që është shtuar në safe_path, mund të ekzekutojë një skript/program me qëllim të keq me komandën sudo.
Për arsye sigurie, shikoni artikullin e mëposhtëm nga faqja e internetit sudo që shpjegon një dobësi në lidhje me safe_path: https://www.sudo.ws/sudo/alerts/secure_path.html
Mundësisht, ne mund të ofrojmë shtegun absolut për një skript gjatë ekzekutimit të tij me sudo:
$ sudo ./proconport.sh 80
Kjo eshte! Ju mund të ndiqni listën e artikujve në lidhje me komandën sudo:
- Si të ekzekutoni komandën 'sudo' pa futur një fjalëkalim në Linux
- Si të mbash më gjatë seancën e skadimit të fjalëkalimit sudo në Linux
- Si të rregulloni \Emri i përdoruesit nuk është në skedarin sudoers. Ky incident do të raportohet në Ubuntu
- Lëreni Sudo t'ju ofendojë kur futni fjalëkalim të pasaktë
Nëse keni ndonjë pyetje ose mendim në lidhje me këtë artikull, ndajeni me ne përmes formularit të komenteve më poshtë.