- Роот корисник је суперкорисник Линукса, са потпуном контролом над системом и без ограничења дозвола.
- Модерне дистрибуције дају приоритет коришћењу sudo и su за добијање привремених привилегија уместо директног пријављивања као root.
- Непажљиво коришћење root приступа може довести до губитка података, грешака у покретању система и озбиљних безбедносних проблема.
- Омогућавање, блокирање и ревизија root приступа, у комбинацији са добрим sudo праксама, јесу неопходни за безбедну администрацију.
Ако користите Линукс кратко време, пре или касније ћете наићи на чувени root корисник, суперкорисник који може да ради и поништава ствари у систему практично без ограничењаТо је тај мистериозни налог који се појављује у туторијалима, онај који вам омогућава да инсталирате пакете, подесите осетљива подешавања или поправите систем који се неће покренути... али који такође може да вам уништи машину једном погрешно откуцаном командом.
У већини модерних дистрибуција, посебно у Ubuntu-у и његовим дериватима, више није уобичајено директно се пријављивати као root. Уместо тога, пожељнији метод је коришћење другог корисника. Користите команде попут sudo и su да бисте добили администраторска права само када је то потребноОво смањује ризике и оставља траг у системским логовима. Упркос томе, добро разумевање шта је root, како се разликује од sudo и su, када их користити, како деактивирати налог и како повратити лозинку је неопходно ако желите да се лако крећете кроз Linux.
Шта је root корисник у Линуксу и зашто је толико посебан?
У било ком Јуникс-ликом систему (Линукс, BSD, macOS, итд.) постоји један суперкорисник са веома јасном улогом: root је налог са UID 0 и апсолутним ауторитетом над свим датотекама, процесима и системским ресурсимаНе постоје конвенционална ограничења дозвола; ако root жели да нешто прочита, измени или обрише, то ће учинити.
Са овог налога можете Инсталирајте и деинсталирајте програме, ажурирајте систем, уредите конфигурационе датотеке у /etc, управљајте сервисима, креирајте и бришите кориснике, форматирајте дискове или промените критичне дозволеТо је еквивалент корисника „Администратор“ у систему Windows, али са још већим могућностима приступа унутрашњем раду система без ограничења.
Због тога се многе дистрибуције попут Убунтуа одлучују за Не дозволите директно root пријављивање након инсталацијеУместо тога, креира се нормалан налог (који припада групи администратори) и sudo се користи за обављање одређених административних задатака, смањујући изложеност ризику.
У другим дистрибуцијама, као што је Дебијан у својој класичној конфигурацији, уобичајено је дефинисати лозинку за root кориснике током инсталације, тако да Суперкорисник се може користити директно у конзоли или за неке веома специфичне задатке.иако сам систем такође подстиче употребу команде sudo.
Поред root и „људских“ корисника, Linux такође користи корисници система типа сервиса (демон), са веома ограниченим дозволамаОви посебни корисници покрећу процесе као што су веб сервери, базе података или системски демони, тако да безбедносна грешка у сервису не даје аутоматски апсолутну контролу над системом, као што би се десило када би све радило под root приступом.
Врсте корисника у Линуксу и како да сазнате ко сте
Иако у пракси може изгледати да постоји много врста налога, на нивоу дозвола подела је веома јасна: корен са једне стране и „остало“ са другеСваки корисник који нема UID 0 је, технички, непривилеговани корисник, иако може имати одређена додатна дозвола захваљујући sudo-у.
Уобичајени радни рачуни су обични корисници са ограниченим дозволама на систему датотекаМогу да управљају својим личним датотекама, покрећу апликације, користе мрежу и, ако су у одговарајућој групи, позивају sudo да би стекли додатне привилегије за одређене задатке.
Роот суперкорисник је глобални административни налогНије намењен за свакодневну употребу, већ за одржавање, напредну конфигурацију или операције опоравка. Због тога многе дистрибуције чине директан приступ овом налогу мало компликованијим, како би избегле изненађења за почетнике и ограничиле утицај људске грешке.
Ако икада имате било какву сумњу у то који корисник радите у терминалу, можете погледати Шелл промпт: када се завршава са $ користите нормалан налог, а када се завршава са # сте под root примаоцемТакође можете покренути команду вхоами или проверите нумерички идентификатор са ид -уАко добијете „root“ или „0“, налазите се у режиму суперкорисника.
Поред тога, упит се обично приказује корисничко име, име рачунара, тренутни директоријум и симбол $ или #На пример, нешто попут alumno@equipo:/home/alumno$ означава обичног корисника, док root@equipo:/root# То одражава сесију директне администрације.
root, sudo и su: шта сваки од њих ради и када их користити
У свакодневној употреби, обично не куцамо root лозинку све време. Уместо тога, већина модерних дистрибуција се одлучује за Привремено повећајте привилегије са обичног налога користећи алате као што су sudo и suИако се понекад користе наизменично у разговорима, они испуњавају различите улоге и важно их је јасно разликовати.
Команда судо (којим управља супер корисник) омогућава овлашћеном кориснику да изврши одређена команда са дозволама другог корисника, обично root-аНа тај начин, бележи шта је извршено, ко је то покренуо и када, остављајући запис у безбедносним логовима система.
Са своје стране, ваш (заменски корисник) је дизајниран за промена корисничког идентитета унутар исте терминалне сесијеАко га позовете без параметара, обично ће покушати да се пребаци на root налог (питајући за лозинку). Ако наведете корисничко име, пребацићете се на тај налог, са његовим дозволама и окружењем.
Како судо функционише и зашто је толико важан
У системима као што је Ubuntu, припадност групи судо (или „admin“ у старијим верзијама) значи да овај налог може извршавајте команде као root уносом сопствене корисничке лозинкебез потребе да знате лозинку суперкорисника. Правила која контролишу шта свака особа може да ради дефинисана су у датотеци / етц / судоерс, што се безбедно уређује командом висудо.
Да бисте га користили, једноставно ставите реч испред њега. sudo пре команде која захтева повишена праваНа пример, инсталација пакета се обично врши овако:
sudo apt install vlc
У овом случају, apt се покреће као root, пише у системске директоријуме као што су /usr или /var и бележи измене у базу података пакета, чак и ако сте и даље пријављени са својим нормалним корисником. Када се поруџбина заврши, аутоматски ћете се вратити на своја уобичајена дозвола..
Поред тога, судо имплементира мали „време милости“Након што унесете лозинку, можете поново покренути `sudo` неколико минута без тражења. Ово убрзава администрацију, али такође уводи малу рањивост ако неко приступи вашем рачунару током тог времена. Ако желите да пооштрите ову политику, можете поставити грејс период на нулу уређивањем `sudoers` помоћу:
Defaults:ALL timestamp_timeout=0
На овај начин, Сваки пут када користите sudo, мораћете поново да се аутентификујете, донекле заморније али безбедније у осетљивим или вишекорисничким окружењима.
Команда `su` и потпуно пребацивање на други налог
Команда „su“, с друге стране, Не извршава ниједну команду, већ отвара нову љуску под идентитетом другог корисникаАко се позива „без силе“:
su
Систем претпоставља да желите да пређете на root приступ и стога Тражиће од вас лозинку суперкорисника.Ако је пријава успешна, видећете да се симбол промпта мења у # и од тог тренутка ће се свака команда коју извршите извршавати са root привилегијама док се не одјавите. излаз.
Такође можете навести одређеног корисника:
su nombreusuario
Ово је веома корисно када управљате сервиси који раде са сопственим налозима (нпр. postgres, www-data, итд.) и потребно је да радите као они без затварања главне сесијеПоново, када завршите, коришћење команде exit враћа вас на претходног корисника.
На системима где је root налог закључан или нема лозинку (као што су многе Ubuntu инсталације), нећете моћи директно да се пребаците на тај налог помоћу команде `su`. У тим случајевима, уобичајени приступ је ланац зној и његов, на пример:
sudo su o sudo -i
Помоћу ових команди уносите своју корисничку лозинку (не root лозинку) и добијате административну љуску са окружењем сличним директном root пријављивању. Ово је веома згодно ако ћете извршавати неколико радњи заредом, али је и опасније, па је препоручљиво да се одјавите из root сесије чим завршите.
Када има смисла користити root, sudo или su?
Теорија је у реду, али у свакодневном животу је битно који алат користити у свакој конкретној ситуацији да би се брзо радило без ризика за системКао опште правило, кад год је то могуће, користите sudo за одређене команде и избегавајте трајне root шкољке; ако желите дубље да се позабавите Када и зашто треба избегавати знојење, погледајте тај водич.
На пример, за инсталирајте или ажурирајте софтвер У дистрибуцијама заснованим на Дебијану или Убунтуу, уобичајена пракса је:
sudo apt updatesudo apt upgradesudo apt install gparted
У овим сценаријима, трајно пријављивање као root не додаје много. Добијате одређену погодност, али умножавате ризике брисања или измене нечега што не би требало..
Такође ћете користити sudo када уређивање датотека конфигурације система, на пример:
sudo nano /etc/hostssudo nano /etc/ssh/sshd_config
На овај начин, само едитор ради са дозволама суперкорисника, а када га затворите, враћате се на свој нормалан ниво привилегија.
Насупрот томе, `su` (или `sudo -i`) може бити корисно када Повезаћете многе административне операције Додавање `sudo` пре сваке команде било би сметња. На пример, приликом обављања сложених задатака одржавања, управљања вишеструким налозима, рада са партицијама итд. Упркос томе, добра је пракса ограничити време проведено у том режиму и изаћи из њега чим завршите.
Веома практичан оперативни детаљ је да, ако нисте сигурни да ли сте root или не, можете покренути вхоами o ид -уАко добијете „root“ или „0“, време је да будете изузетно опрезни пре него што откуцате било шта деструктивно.
Прикажи звездице приликом куцања лозинке помоћу sudo-а
Подразумевано, многе дистрибуције (укључујући Ubuntu) Не приказују никакве знакове када унесете лозинку у конзолуБез тачака или звездица. Ово се ради да би се избегло откривање дужине тастера, мада у пракси многи корисници сматрају да је то незгодно јер немају визуелну потврду да куцају.
Већ неко време, sudo нуди опцију под називом пвфеедбацк Ово омогућава приказивање звездица на екрану када се унесе лозинка. Нека новија издања Убунтуа су почела да омогућавају ово, али можете то сами активирати на било ком систему изменом конфигурације судо команде:
1. Отворите уређивач безбедне конфигурације помоћу:
sudo visudo
2. Унутар датотеке која се отвори (обично /etc/sudoers), додајте ред попут овог:
Defaults pwfeedback
3. Сачувај и затвори. Од тог тренутка, Сваки знак који унесете приликом уноса лозинке за судо биће представљен звездицом.Ако касније желите да се вратите на класично понашање (без визуелног одјека), једноставно уклоните ту линију и поново сачувајте датотеку помоћу Висуда.
Ово прилагођавање не утиче на криптографску безбедност команде Sudo, али утиче Може побољшати употребљивост за оне који више воле да имају визуелну потврду онога што куцају.посебно на тастатурама без позадинског осветљења или приликом куцања са удаљених терминала.
Прави ризици непажљивог коришћења рута
Рут налог је моћан колико и опасан. Линукс је дизајниран са слојевима заштите како би обичном кориснику било тешко да случајно пробије систем, али Када повећате привилегије, те баријере нестају и сваки пропуст може се претворити у катастрофу..
Прва озбиљна опасност је случајно брисање важних датотека или директоријумаКоманде попут rm -rf / o rm -rf /* Познати су управо зато што, ако се покрену као root, могу да обришу практично сав садржај фајл система за неколико секунди. Али није потребно ићи у ту крајност: једноставно погрешно унесите путању или оставите променљиву празну, на пример:
rm -rf $directorio/*
Ако `$directory` није дефинисан како сте очекивали, команда може указивати на потпуно другу локацију од оне коју сте намеравали. Као root, систем вам неће правити превише проблема, и када се команда заврши, Опоравак је обично веома тежак или једноставно немогућ. без резервних копија или форензичких алата.
Још једна важна опасност је извршавање злонамерног софтвера или скрипти са пуним привилегијамаПреузимање инсталатера са непознате веб странице и његово покретање помоћу команде sudo или из root љуске даје том коду апсолутну контролу: може инсталирати руткитове, бекдорове, кејлогере, модификовати језгро или се сакрити дубоко у систему. Често, док се проблем открије, нападач је већ неко време био унутра.
Такође морате бити опрезни када измените дозволе за критичне датотеке помоћу chmod или chownНаруџбина као што је chmod 000 /etc Неправилна манипулација /boot, GRUB bootloader-ом или /etc/passwd може довести до тога да систем не може да се покрене. У таквим случајевима, чак ни покретање са LiveCD-а не гарантује једноставну поправку; у продукционим окружењима могу бити потребне професионалне услуге опоравка.
Коначно, са становишта ревизије, директно пријављивање као root елиминише велики део могућности праћења. Када користите sudo, свака команда се бележи заједно са корисником који ју је извршио.Ако се све уради као root без коришћења sudo-а, логови ће само рећи да је „root нешто урадио“, али не и ко је био за тастатуром, што компликује истраге и усклађеност са безбедносним прописима.
Омогућите, онемогућите и закључајте root налог
У зависности од ваше дистрибуције, root налог може бити Омогућено лозинком, закључано или једноставно без додељеног кључаУ системима сличним Убунтуу, root је обично онемогућен за директно пријављивање, док се у другим дистрибуцијама лозинка дефинише током инсталације.
Ако је root налог закључан на вашем рачунару, можете га омогућити од корисника са sudo привилегијама покретањем:
sudo passwd root
Систем ће вас прво затражити корисничку лозинку, а затим ће вас питати да унесете и потврдите нову root лозинку. Од тог тренутка, Налог ће бити активиран и моћи ћете да се пријавите као суперкорисник у виртуелним терминалима или, у неким случајевима, чак и у графичком интерфејсу.Иако је ово последње веома непрепоручљиво.
Ако одлучите да више не желите да вам буде доступан root приступ, можете поново закључати налог помоћу:
sudo passwd -l root
Параметар -l блокира приступ повезивањем неважеће лозинке, тако да Не можете се пријавити као root, ни помоћу `su` нити на екрану за пријаву.Међутим, овлашћени корисници ће и даље моћи да користе sudo за администрирање система, тако да нећете остати без начина за обављање задатака одржавања.
Неке дистрибуције такође нуде опцију за онемогућавање и поновно активирање root приступа комбинацијама као што су sudo passwd -dl root o sudo passwd -u root да га откључате. У сваком случају, Општа препорука је да се root налог држи закључан и да се увек ради са sudo-ом осим у веома специфичним случајевима, као што су окружења за спасавање или опоравак тешко оштећених система.
Опоравите или промените root лозинку
Може се догодити да без обзира да ли сте изгубили root лозинку, онемогућили је или једноставно треба да је редефинишете на серверу чија је оригинална конфигурација сада заборављена. Линукс нуди неколико начина да се ово уради, у зависности од тога да ли се систем покреће или је потребно да користите екстерни уређај.
Ако ваш рачунар и даље досеже GRUB менаџер за покретање, веома честа опција је да искористите предност режим опоравкаИзбором ове варијанте у напредном менију, систем покреће смањено окружење и нуди вам опцију за добијање конзоле са привилегијама суперкорисника.
Када се нађете унутар те љуске, прво што треба да урадите је Поново монтирајте фајл систем са дозволама за писањепошто је често у режиму само за читање:
mount -o rw,remount /
Затим можете покренути стандардну команду да бисте поставили нову лозинку:
passwd root
Унесите нови кључ два пута и да бисте били сигурни да су промене записане на диск, користите:
syncreboot
Приликом поновног покретања, Роот налог ће имати лозинку коју сте управо поставили.тако да га можете користити где је потребно (идеално, штедљиво и са опрезом).
Ако се систем чак ни не покрене, можете прибећи LiveCD или LiveUSB из Linux дистрибуцијеНа пример, Ubuntu. Покрените систем са тог медија, изаберите опцију „Испробај“ без инсталирања и отворите терминал. Обично прво постајете root у живом окружењу помоћу:
sudo su
Затим, потребно је да пронађете партицију на којој је инсталиран систем који треба поправити, користећи нешто попут:
fdisk -l
Када идентификујете исправан уређај (на пример, /dev/sda1), монтирајте га у радну фасциклу:
mkdir /mnt/recovermount /dev/sda1 /mnt/recover
Следећи корак се састоји од „промени корен“ окружења на монтирану партицијутако да passwd делује на инсталирани систем, а не на живо окружење:
chroot /mnt/recover
Одатле можете покренути:
passwd root
да подесите нову лозинку. Након изласка из chroot-а и поновног покретања, Оригинални систем ће се покренути са ажурираним акредитивима суперкорисника.То је веома моћан маневар за спасавање закључаних машина, али такође истиче зашто је од виталног значаја заштитити физички приступ и покретање система са спољних медија на критичним серверима.
Рут приступ у Убунтуу и безбедносне политике
Убунту и многи његови деривати (Ксубунту, Кубунту, Линукс Минт, итд.) су изградили свој безбедносни модел на веома јасној идеји: root постоји, али се скоро увек користи индиректно преко sudo-а.Ово има неколико практичних и безбедносних предности.
У стандардној инсталацији, Није дефинисана лозинка за rootОво спречава кориснике да се директно пријављују са овим налогом и на TTY терминалима и у графичком окружењу. Уместо тога, први корисник креиран током инсталације се додаје у sudo групу, а сви административни послови се обављају подизањем привилегија са тог налога.
Овај приступ смањује површину напада Штити од напада грубом силом на root налог (на пример, путем SSH-а) и минимизира шансе да људска грешка има катастрофалне последице, јер приморава администратора да размишља сваки пут када користи sudo.
У веома специфичним контекстима (лабораторије, спасилачка окружења, високо изоловане машине), то може бити оправдано. доделите лозинку root-у помоћу sudo passwd root и дозволите директно пријављивање, али је најбоље ово сматрати привременом мером. Када се проблем реши, боље је поново закључати налог и наставити рад са sudo-ом.
Поред тога, за задатке који захтевају трајну root љуску, Ubuntu пружа команде као што су:
sudo -i o sudo su -
да Они симулирају потпуно root пријављивање, са сопственим окружењем и PATH-омОво је корисно за скрипте и алате који очекују да буду у „чистом“ root окружењу да би исправно функционисали без потребе за омогућавањем трајног директног пријављивања.
Root приступ путем SSH-а: омогућавање, онемогућавање и обезбеђивање
На удаљеним серверима, питање root приступа постаје још важније. Подразумевано, већина Ubuntu инсталација Они онемогућавају директно root пријављивање преко SSH-аОво вас приморава да се пријавите са нормалним корисничким налогом, а затим користите sudo. То је кључна безбедносна мера за спречавање аутоматизованих напада.
Ако, из неког веома оправданог разлога, морате да омогућите тај приступ, основни процес укључује ове кораке: прво доделите лозинку root-у Ако га немате:
sudo passwd root
А затим измените конфигурацију SSH сервера:
sudo nano /etc/ssh/sshd_config
Унутар ове датотеке потражите директиву ПермитРоотЛогинАко је коментарисано или у „prohibit-password“, можете га променити у:
PermitRootLogin yes
Сачувајте промене и поново покрените услугу:
sudo systemctl restart ssh
Одатле се можете директно пријавити као root путем SSH-а, нешто што Ово представља значајну рањивост ако се користи само са лозинком.Минимум прихватљиво у овом случају би било комбиновање са аутентификацијом јавним кључем и, ако је могуће, ограничавање приступа путем IP адресе или путем бастиона или VPN-а.
Да бисте преокренули ситуацију и ојачали безбедност, поново уредите / етц / ссх / ссхд_цонфиг и конфигуришите:
PermitRootLogin no
Или, ако желите субјективно да дозволите само приступ кључу:
PermitRootLogin prohibit-password
Поново покрените SSH и, ако желите да идете корак даље, закључајте и локални root налог помоћу:
sudo passwd -l root
Дакле, Сви задаци удаљене администрације мораће да прођу кроз редовне кориснике и судо привилегије., будући да су регистровани и подложни правилима датотеке sudoers.
Најбоље праксе при коришћењу привилегија суперкорисника
Савладавање root, sudo и su команда није само о памћењу команди, већ о усвојите навике које минимизирају ризик при раду са високим привилегијамаПостоји неколико разумних пракси које вреди интегрисати у вашу свакодневну рутину.
Најважније је увек примењивати принцип најмањих привилегија: имати само неопходне дозволе и само онолико дуго колико је апсолутно неопходно. Преведено на Линук, ово значи коришћење `sudo` за изоловане команде кад год је то могуће и избегавање дужег боравка у root љусци без потребе.
То је такође кључно Никада не покрећите скрипте или бинарне датотеке из сумњивих извора као root корисник.Пре него што покренете фрагмент кода који сте копирали са интернета, отворите га помоћу уређивача текста и проверите шта тачно ради. Ако не разумете неки део, будите сумњичави. Када је у питању преузети софтвер, увек покушајте да га набавите из званичних репозиторијума, веб-сајтова пројеката или других реномираних извора и проверите контролне суме ако их програмер објављује.
ако имате могућност, Прво, тестирајте скрипте или приручнике у изолованом окружењу (виртуелна машина, Docker контејнер, тест окружење) пре него што их примените на производни сервер или вашу главну машину и консултујте се Трикови за софтвер на ЛинуксуТо вам може уштедети много муке.
На серверима са више администратора, препоручљиво је ићи корак даље и конфигуришите џемпере на грануларни начинОво омогућава свакој особи да извршава само оне команде које су јој заиста потребне. Ово ограничава потенцијалну штету од грешке или компромитованог налога, а такође одржава могућност праћења ко је шта урадио у било ком тренутку.
Праћењем ових аспеката и поштујући идеју да Рут је алат за специфичне ситуације, а не корисник који тестира свакодневне задатке.Можете у потпуности искористити флексибилност Линукса без непотребног угрожавања стабилности и безбедности вашег система.
Линукс екосистем се у великој мери ослања на раздвајање између обичног корисника и суперкорисника, и на механизме попут sudo и su за пребацивање између њих само када је то потребно; разумевање како root функционише, када га користити, како ограничити његову изложеност и како га опоравити у случају нужде је кључни део за мудро управљање било којом дистрибуцијом, било да је на вашем личном лаптопу или на критичном производном серверу.


