- Root је суперкорисник Линукса са потпуном контролом над системом, изнад свих уобичајених ограничења дозвола.
- Уобичајена пракса је да се не пријављујете као root, већ да користите sudo или su за добијање повишених привилегија на контролисан и привремен начин.
- Непажљиво коришћење root приступа може обрисати систем, инсталирати злонамерни софтвер или нарушити безбедност, па је најбоље минимизирати његову употребу и прегледати команде.
- Правилно конфигурисање судоер команди, закључавање root налога и праћење најбољих пракси омогућава безбедну и праћену администрацију Линукса.
Ако долазите са Windows-а (погледајте корисничке налоге у Windows-у ) и слетате на Linux, чувени root корисник може звучати као неразумљив израз, али је заправо кључни елемент који одваја стабилан и безбедан систем од потпуне катастрофе. Root је „апсолутни шеф“ система, онај који може да инсталира, брише, поквари и поправи практично све без тражења дозволе.
Разумевање сврхе команде root у Linux-у, њеног односа према командама `sudo` и `su`, као и повезаних ризика, је неопходно за управљање вашим системом, било да је у питању кућни лаптоп или производни сервер . Овај чланак ће детаљно и приступачним језиком објаснити шта је root, како се користи у различитим дистрибуцијама (посебно Ubuntu), његове потенцијалне опасности и најбоље праксе како бисте избегли да ваш рачунар постане неупотребљив.
Шта је root корисник у Линуксу и шта га чини посебним?
У сваком ГНУ/Линукс систему постоји корисник са пуним привилегијама који се зове root, такође познат као суперкорисник . Овај корисник има UID 0 и није подложан уобичајеним ограничењима дозвола за датотеке и процесе: може да чита, мења или брише било коју датотеку, инсталира или деинсталира софтвер, мења системска подешавања, управља другим корисницима и приступа критичним сервисима.
Ако га упоредите са Windows-ом, root би био еквивалент администраторског приступа, али са још већом моћи.Зато што је у Линуксу модел дозвола префињенији и раздвајање између корисника и сервиса је много строже. Док је обичан корисник ограничен у ономе што може да ради у путањама као што су /etc, /usr, /var o /bootРут приступ вам омогућава приступ свуда без тражења дозволе.
Поред редовних корисника и root-а, Linux дефинише „системске кориснике“ или сервисне налоге (демоне) са веома ограниченим дозволама које се користе за покретање веб сервера, база података или других демона. Ово осигурава да чак и ако је сервис угрожен, нападач неће аутоматски добити потпун приступ систему... осим ако не успе да ескалира привилегије до root-а.
Подразумевано, стандардни корисник не може инсталирати системске програме, мењати глобалне конфигурационе датотеке или креирати директоријуме у осетљивим областима.Да бисте извршили било који од ових задатака, мораћете да повећате привилегије користећи алате као што су sudo o suшто су управо уобичајени механизми за контролисано „позивање“ суперкорисника.
У многим модерним дистрибуцијама, посебно у Ubuntu-у и његовим дериватима, директно root пријављивање је онемогућено.Уместо тога, током инсталације се креира обичан корисник који припада групи администратори (на пример, sudo o admin) и команда се користи sudo да бисте извршили административне радње захтевањем сопствене лозинке, а не root лозинке.
Разлика између обичних корисника, root-а и sudo групе
Линукс имплементира систем дозвола заснован на корисницима и групама . Генерално говорећи, можемо разликовати три главне врсте налога које ћете срести у свакодневној употреби када говоримо о root-у:
Усуариос нормалесОво су налози људи који користе систем. Они имају дом Могу да инсталирају програме у свој директоријум, покрећу десктоп апликације, чувају документе итд. Међутим, Не могу да обављају задатке системске администрације како инсталирати глобалне пакете, изменити конфигурације у /etc или управљати другим корисницима, осим ако не користе sudo o su.
Корисни корисник је суперкорисник са апсолутном контролом. Не подлеже ограничењима дозвола осим онима које намеће сам кернел или напредни безбедносни механизми . Буквално може да „ради шта му се прохте“, од брисања коренског директоријума до промене дозвола било које датотеке. Управо из тог разлога, његова употреба за свакодневне задатке се не препоручује.
Администраторски корисници (sudoers): су обични корисници који припадају посебној групи (обично sudo o admin) И Имају дозволу да извршавају команде као root користећи sudoНа пример, да бисте додали корисника у групу sudo Можете користити нешто овако:sudo usermod -aG sudo nombreusuario
Када корисник постане део sudo групе, може да извршава привилеговане команде додавањем префикса sudoСистем ће тражити вашу лозинку (не root лозинку) и ако је исправна, извршиће команду са привилегијама суперкорисника. Ово пружа добру равнотежу између безбедности и практичности.
Шта је корен у пракси и за шта се користи?
Ван теорије, root корисник је идентитет који систем користи за прављење било каквих дубоких промена . Можете наставити да радите са својим нормалним корисничким налогом и приступати root-у само када је то потребно. Погледајмо неке од његових главних употреба.
Инсталирајте или деинсталирајте системски софтверМенаџери пакета (као што су) apt, dnf o pacmanПотребно је да пишу на заштићене путање, тако да Увек раде са root привилегијамаТипичан пример би био:sudo apt install vlc
Уредите датотеке конфигурације системаВећина системских сервиса и програма се конфигурише путем текстуалних датотека у директоријумима као што су /etcДа бисте их отворили помоћу уређивача и сачували, потребна су вам повећана права. На пример:sudo nano /etc/hosts
Промените root лозинку или лозинке других корисникаОперације као што је промена лозинке суперкорисника или лозинке другог налога подразумевају приступ бази података лозинки система. Типична команда би била:sudo passwd root
Извршавајте потенцијално опасне команде. Алати попут rm (избриши), chmod (промена дозвола), chown (промена власника) или mkfs (форматирање) може нанети много штете ако се злоупотреби. Систем захтева root дозволе за операције које утичу на критичне датотеке или уређаје. како би се спречило да обичан корисник случајно уништи систем.
Управљајте покретањем, гашењем и поновним покретањем машинеКоманде попут reboot, poweroff или напредно руковање systemctl о системским услугама Такође захтевају привилегије суперкорисника. За више информација о systemd и његово управљање услугама Можете консултовати специјализовану документацију. У супротном, сваки корисник би могао поново покренути производни сервер кад год пожели.
У пракси, ако нешто не успе са грешком „дозвола одбијена“ у Линуксу, вероватно је да ћете морати да га покренете са root привилегијама. коришћење sudo или привремено пребацивање на суперкорисника са su.
Команде sudo и su: када користити сваку од њих
Када схватите да је root корисник „власник“ система, време је да разумете како да добијете те привилегије са свог уобичајеног корисничког налога.Два класична алата за ово су sudo y suкоје не раде потпуно исту ствар, иако их многи људи мешају.
sudo („superuser do“) се користи за извршавање једне команде са дозволама другог корисника, обично root-а.Не мењате сесије, не постајете root „за све“; само се та одређена команда извршава са повишеним привилегијама. На пример:sudo apt install gparted
Сваки пут када користите sudo Систем ће вас питати за лозинку (ако је нисте унели у скорије време).Након неколико минута неактивности, судо „карта“ истиче и мораћете поново да се аутентификујете, што додаје важан слој безбедности.
su („промена корисника“) мења ваш кориснички идентитет у истој сесијиАко га користите без аргумената, постаћете root (тражиће root лозинку) и све наредне команде ће се извршавати са тим привилегијама док не изађете. exit. На пример:suContraseña:whoami # devuelve 'root'
Такође можете да користите su nombreusuario да пређете са једног корисника на другогпод условом да знате лозинку за циљни налог. Ово ће потпуно променити окружење у окружење новог корисника (променљиве, домитд.) препоручује се употреба su - o su - nombreusuario.
Генерално, сматра се безбеднијим и препоручљивијим за употребу sudo за одређене команде и прибегавајте su само када вам је заиста потребна продужена рут сесија (на пример, код задатака опоравка или сложеног одржавања).
Посебности root-а у Ubuntu-у и изведеним дистрибуцијама
Убунту и многе дистрибуције засноване на Убунтуу прате прилично јасну безбедносну филозофију: root корисник постоји, али је блокиран за директно пријављивање . То значи да након стандардне инсталације не можете да се пријавите као root, ни у терминалу ни у графичком окружењу, користећи лозинку, јер она није додељена.
Уместо тога, Убунту се одлучује за интензивну употребу sudoТоком процеса инсталације, креира се администраторски корисник који припада групи sudoОдатле се сваки административни задатак обавља помоћу:sudo comando
Ако вам је потребна „пуна“ root љуска у Ubuntu-у, имате неколико безбедних опција.:sudo -i # Отворите сесију пријаве са root налогомsudo su - # Пређи на root са окружењем за пријаву
Обе методе вас остављају као root у том терминалу док не изађете са exitВидећете да се упит обично мења и завршава са # уместо $Ово је класичан знак да имате привилегије суперкорисника. Важно је имати ово на уму како бисте избегли извршавање опасних команди тамо где не би требало.
Иако се не препоручује, можете омогућити root корисника у Убунтуу тако што ћете му доделити лозинку. са:sudo passwd root
Након уноса и потврде нове лозинке, root ће бити „откључан“ и биће могуће, на пример, користити su без претходног sudo-а или чак дозвољавања директног пријављивања путем TTY-а или SSH-а (нешто што се јако не препоручује на изложеним серверима).
Прави ризици непажљивог коришћења рута
Рад као root, а да тачно не знате шта радите, је као вожња камиона у рикверц на аутопуту: можда ће успети, али ако изгубите концентрацију чак и на секунду, биће катастрофа . Линукс је дизајниран да буде прилично безбедан по подразумеваним подешавањима, али чим повећате привилегије, многе заштите нестају.
Први велики ризик је случајно брисање или оштећење система датотекаКоманде као што су:rm -rf /rm -rf /*
или чак суптилније конструкције као што су:rm -rf "$directorio"/*
Могу уништити цео систем за неколико секунди ако се покрећу као root и путања није оно што мислите.Понекад је све што је потребно празна променљива, погрешно постављена коса црта или погрешно постављен тастер Tab да би се наизглед невина команда претворила у катастрофу.
Друга велика опасност је инсталирање злонамерног софтвера са пуним привилегијама . Преузимање и покретање скрипти са интернета као root корисник без гледања кода је као давање кључа од куће странцу. Злонамерна скрипта може да инсталира руткитове , кејлогере или бекдорове, да модификује језгро, шпијунира све што радите и да остане скривена дуго времена.
Такође је релативно лако угрозити безбедност система манипулисањем дозволама за критичне датотеке.На пример, ако покренете нешто попут:chmod 000 /etc -R
или промените дозволе за /boot до /etc/passwd без знања шта радиш, Можете учинити машину немогућом за покретање или онемогућити аутентификацију корисника.У многим случајевима, једино решење је коришћење LiveCD-а или чак поновна инсталација.
Са становишта безбедности, стално коришћење root налога чини тај налог јединственом тачком отказа . Ако нападач добије root приступ (путем грубе силе, фишинга, злонамерног софтвера итд.), има потпуну контролу: може да шифрује дискове, украде податке, придружи се ботнету или користи ваш сервер за напад на треће стране. Да бисте ублажили ове ризике, требало би да истражите технике јачања помоћу SELinux- а и других механизама заштите.
Штавише, интензивна употреба корена отежава праћење.Када се команде извршавају са sudoСистем бележи ко их је покренуо и када, док ако се све ради као root није јасно ко стоји иза сваке акције, што компликује ревизије и дијагнозу проблема.
Прикажи звездице приликом куцања лозинке за судо
Подразумевано, када унесете лозинку за sudo у многим дистрибуцијама (као што је Ubuntu), не видите тачке или звездице . Ово је замишљено као безбедносна мера како би се спречило да било ко закључи дужину ваше лозинке само гледајући у екран, али у пракси је то прилично незгодно: куцате и чини се да се ништа не дешава.
Већ неко време, sudo је дозвољавао активацију понашања које се зове pwfeedbackПриказује звездицу за сваки знак који откуцате. Не открива вашу лозинку, али потврђује да тастатура реагује и помаже вам да откријете грешке у куцању.
Да бисте га активирали, потребно је да измените конфигурацију судо-а помоћу алатке „Secure“ visudoОво валидира синтаксу пре чувања како би се спречило да изгубите sudo привилегије због неке глупе грешке. Кораци би били следећи:
1. Отворите подешавања судо-а:sudo visudo
2. Додајте линију:Defaults pwfeedback
3. Сачувајте и изађите из уређивача
Од тог тренутка, сваки пут када унесете своју sudo лозинку, појављиваће се звездице.Ако у било ком тренутку желите да се вратите на првобитно понашање, једноставно уклоните ту линију користећи `return`. visudo.
Онемогућите или блокирајте root налог
У окружењима где више људи има приступ истом рачунару, root лозинка се лако може злоупотребити . Ако превише људи зна ту лозинку, само је питање времена када ће неко изазвати (или претрпети) велики проблем. Веома разумно решење је да се онемогући root налог и користи само sudo.
Када закључате root налог, спречавате кориснике да се директно пријаве као тај корисник. и такође спречавате његову употребу su Да бисте добили root приступ помоћу лозинке. Међутим, Овлашћени корисници ће и даље моћи да користе sudo да извршава привилегована наређења.
Да бисте закључали root налог у многим дистрибуцијама, једноставно покрените:sudo passwd -l root
Ова команда „замрзава“ root лозинку тако да се не може користитиАко касније будете морали поново да га активирате, мораћете да поставите нову лозинку, попут:sudo passwd root
Опоравите или промените своју root лозинку ако сте је изгубили
Ако сте заборавили root лозинку или сте закључали налог и потребно је да је повратите, није све изгубљено . Линукс нуди неколико начина за њено ресетовање, обично покретањем система у посебном режиму или коришћењем LiveCD-а.
Веома уобичајена опција је да се то уради из GRUB-а, користећи режим опоравка . Многе дистрибуције имају ставку „Напредне опције“ где можете изабрати „Режим опоравка“. Његовим избором се учитава ограничено окружење са опцијама за спасавање.
Ако изаберете опцију за добијање root конзоле у режиму опоравка , стандардни ток је обично следећи:
1. Монтирајте фајл систем са дозволама за писање:mount -o rw,remount /
2. Поставите нову лозинку за root корисника:passwd root
3. Синхронизујте податке и поново покрените рачунар да бисте применили промене:syncreboot
Други главни начин је покретање система са LiveCD-а или LiveUSB-а неке Linux дистрибуције (на пример, Ubuntu у режиму „Покушај без инсталирања“) и рад на инсталираном систему споља.
У типичном сценарију са LiveCD-ом, кораци би били следећи :
1. Отворите терминал и преузмите привремену root шкољку:sudo su
2. Идентификујте партицију која садржи ваш Linux систем помоћу нечега попут:fdisk -l
3. Монтирајте ту партицију у радни директоријум (пример користећи /dev/sda1):mkdir /mnt/recovermount /dev/sda1 /mnt/recover
4. Промените корен система у директоријум монтиран са chroot:chroot /mnt/recover
5. Одатле, користите passwd root да бисте поставили нову лозинку и, након одјаве и поновног покретања, моћи ћете поново да се нормално пријавите.
Датотека /etc/sudoers и како прецизно подесити root дозволе
Један од најмоћнијих (и најделикатнијих) аспеката управљања root директоријумом је датотека /etc/sudoers, где је дефинисано ко може да користи sudoОвде можете детаљно прилагодити приступ са повишеним привилегијама, наводећи где и које команде треба извршити.
Веома важно: никада не мењајте /etc/sudoers директно са било којим уредникомУвек користите:sudo visudo
јер овај алат Проверите синтаксу пре чувањаГрешка у овој датотеци може вас спречити да користите sudo, и са visudo Минимизујете тај ризик.
Типичан садржај /etc/sudoers Чист Убунту укључује линије сличне:root ALL=(ALL:ALL) ALL%sudo ALL=(ALL:ALL) ALL
Први означава да root корисник може да изврши било коју команду на било ком хосту као било који корисник и група.Други ради исто, али за све кориснике у групи. sudoНа овај начин, свако у тој групи има потпуну моћ путем sudo.
За напредније конфигурације, sudoers вам омогућава да дефинишете алијасе за кориснике, команде и групе за извршење , на пример:
User_Alias ADMINES = pepe, perico, andres
Cmnd_Alias POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart
Runas_Alias WEB = www-data, apache
Са овим дефиницијама бисте, на пример, могли дати АДМИНИСТРАТОРИМА дозволу да искључе или поново покрену систем без лозинке са правилом као што је:ADMINES ALL = NOPASSWD: POWER
Ознаке попут NOPASSWD Омогућавају вам да извршите одређене команде помоћу sudo-а без потребе за уносом лозинке.Ово је веома корисно у аутоматизованим скриптама, интеграцијама са другим системима или персоналним рачунарима где сте једини корисник.
Као занимљивост, постоји опција која се зове insults да, ако га додате у линије DefaultsЗбог тога вас sudo „вређа“ на енглеском сваки пут када унесете погрешну лозинку.Не побољшава безбедност, али барем вам измами осмех на лице усред посла.
Коришћење root-а за управљање датотекама и дозволама из терминала
У пракси, велики део употребе root права је усмерен на управљање датотекама и дозволама путем терминала . Са привилегијама суперкорисника, можете се кретати кроз цео систем датотека и мењати шта год вам је потребно, увек уз изузетан опрез.
Неке основне команде које постају посебно осетљиве као root корисник су:
ls: наводи датотеке и директоријуме. Као root корисник ћете видети чак и датотеке које други корисници не могу да наведу.
cp y mvДа бисте копирали и преместили датотеке или директоријуме, користите `sudo`. На пример, можете користити `sudo` да бисте преместили фонт из... Descargas горе /usr/share/fonts/ тако да буде доступан целом систему.
rm: брише датотеке и фасцикле. У комбинацији са -r y -f Изузетно је опасно ако га користите као root без правилно провере путање.
chmod y chownОва подешавања мењају дозволе и власништво. Она су неопходна за одобравање приступа датотекама одређеним корисницима, али злоупотреба може учинити систем небезбедним или неупотребљивим.
Типичан пример коришћења root-а за инсталирање системског фонта би био :
sudo cp ~/Descargas/Underdog.ttf /usr/share/fonts/sudo chmod 644 /usr/share/fonts/Underdog.ttf
Режим 644 То указује да власник (root) може да чита и пише, док група и остали корисници могу само да читају., довољно да фонт ради, али без дозвољавања случајних промена.
