Како контролисати судо приступ на Линук-у

Команда судо вам омогућава да покренете команде на Линук-у као да сте неко други, као што је роот. судо вам такође омогућава да контролишете ко може да приступи роот-овим могућностима, са грануларношћу. Омогућите корисницима пун приступ или им дозволите да користе мали подскуп команди. Показаћемо вам како.

судо и Роот дозволе

Сви смо чули (претерано поједностављење) да је све у Линуку датотека. Истина, практично све у оперативном систему, од процеса, датотека, директоријума, сокета и цеви, разговара са језгром преко дескриптора датотеке. Дакле, иако све није датотека, са већином објеката оперативног система се рукује као да јесу. Где је могуће, дизајн Линук и Уник оперативних система се придржава овог принципа.

Концепт „све је датотека“ је далекосежан у Линуку. Тада је лако видети како су дозволе за датотеке у Линуку постале један од ослонаца привилегија и права корисника. Ако поседујете датотеку или директоријум (посебну врсту датотеке), са њима можете да радите шта желите, укључујући уређивање, преименовање, премештање и брисање. Такође можете да подесите дозволе за датотеку тако да други корисници или групе корисника могу да читају, мењају или извршавају датотеку. Овим дозволама управљају сви.

Сви који су, осим суперкорисника, познати као роот. Основни налог је посебно привилегован налог. Није везан за дозволе ни за један од објеката у оперативном систему. Роот корисник може да уради било шта било чему и, прилично, у било које време.

Наравно, свако ко има приступ роот лозинки може учинити исто. Могли су да изазову пустош било злонамерно или случајно. У ствари, роот корисник може да изазове пустош тако што направи грешку. Нико није непогрешив. То је опасна ствар.

Због тога се сада сматра најбољом праксом да се уопште не пријављујете као роот. Пријавите се са редовним корисничким налогом и користите судо за подигните своје привилегије за кратко време требају ти. Често је то само издавање једне наредбе.

Листа судоерс

судо је већ био инсталиран на рачунарима Убунту 18.04.3, Мањаро 18.1.0 и Федора 31 који су коришћени за истраживање овог чланка. Ово није изненађење. судо постоји од раних 1980-их и постао је стандардни начин рада суперкорисника за скоро све дистрибуције.

Када инсталирате модерну дистрибуцију, корисник којег креирате током инсталације се додаје на листу корисника која се зове судоерс. Ово су корисници који могу да користе команду судо. Пошто имате судо овлашћења, можете их користити да додате друге кориснике на листу судоера.

Наравно, непромишљено је давати пун статус суперкорисника хтели-нећели, или било коме ко има само делимичну или специфичну потребу. Листа судоерс вам омогућава да одредите са којим командама различитим корисницима је дозвољено да користе судо. На тај начин им не дајете кључеве краљевства, али они и даље могу да остваре оно што треба да ураде.

  Како лако преузети и инсталирати апликације на Линук-у помоћу АппИмаге Поол-а

Покретање команде као други корисник

Првобитно се звао „суперусер до“, јер сте могли да радите ствари као суперкорисник. Његов опсег је сада проширен и можете користити судо да извршите команду као да сте било који корисник. Преименован је да одражава ту нову функционалност. Сада се зове „замена корисника уради“.

Да бисмо користили судо за покретање команде као други корисник, морамо да користимо опцију -у (корисник). Ево, ми ћемо покренути ко сам ја командује као корисник мари. Ако користите команду судо без опције -у, покренућете команду као роот.

И наравно, пошто користите судо, од вас ће бити затражено да унесете лозинку.

sudo -u mary whoami

Одговор од вхоами-а нам говори да је кориснички налог који покреће команду мари.

Можете користити команду судо да бисте се пријавили као други корисник, а да не знате његову лозинку. Биће вам затражено да унесете сопствену лозинку. Морамо да користимо опцију -и (логин).

sudo -i -u mary
pwd
whoami
ls -hl
exit

Пријављени сте као мари. Датотеке „.басхрц“, „.басх_алиасес“ и „.профиле“ за мари кориснички налог се обрађују тачно као да се власник мари корисничког налога сам пријавио.

Командна линија се мења како би се одразила да је ово сесија за кориснички налог мари.
Пвдцомманд репротума да сте сада у Мари’с кућни именик.
вхоами нам каже да користите кориснички налог мари.
Датотеке у директоријуму припадају Мари корисничком налогу.
Команда за излаз вас враћа на вашу нормалну сесију корисничког налога.

Уређивање судоерс датотеке

Да бисте додали кориснике на листу људи који могу да користе судо , потребно је да уредите судоерс датотеку. Од виталног је значаја да то радите само помоћу команде висудо. Команда висудо спречава више људи да покушавају да уређују судоерс датотеку одједном. Такође врши проверу синтаксе и рашчлањивање на садржај датотеке док их чувате.

Ако ваше измене не прођу тестове, датотека се не чува на слепо. Добијате опције. Можете да откажете и одустанете од промена, да се вратите и поново уредите промене или да натерате да се нетачне измене сачувају. Последња опција је озбиљно лоша идеја. Немојте бити у искушењу да то урадите. Можете се наћи у ситуацији да сви случајно не могу да користе судо.

Иако започнете процес уређивања помоћу команде висудо, висудо није уређивач. Позива једног од ваших постојећих уредника да изврши измене датотеке. На Мањару и Убунту-у је покренута висудо команда једноставан уредник нано. На Федори, висудо је лансирао способније—али мање интуитиван—вим.

Ако желите да користите нано на Федори, можете то учинити лако. Прво, инсталирајте нано:

судо днф инсталл нано

А онда је висудо морао бити позван овом командом:

sudo EDITOR=nano visudo

То изгледа као добар кандидат за псеудоним. Нано едитор се отвара са судоерс датотеком учитаном у њега.

Додавање корисника у судо групу

Користите висудо да отворите судоерс датотеку. Или користите ову команду или ону горе описану да одредите уређивач по свом избору:

sudo visudo

Скролујте кроз датотеку судоерс док не видите дефиницију %судо уноса.

Знак процента означава да је ово дефиниција групе, а не дефиниција корисника. У неким дистрибуцијама, ред %судо има хеш # на почетку реда. Ово чини линију коментаром. Ако је то случај, уклоните хеш и сачувајте датотеку.

  Како инсталирати ВПС Оффице на Линук

%судо линија се раставља овако:

%судо: Име групе.
АЛЛ=: Ово правило се примењује на све хостове на овој мрежи.
(СВИ:СВИ): чланови ове групе могу да покрећу команде као сви корисници и све групе.
Сви: чланови ове групе могу да покрећу све команде.

Да то мало преформулишемо, чланови ове групе могу покренути било коју команду, као било који корисник или било која група, на овом рачунару или на било ком другом хосту у овој мрежи. Дакле, једноставан начин да некоме дате роот привилегије и могућност да користи судо је да их додате у судо групу.

Имамо два корисника, Том и Мари, са корисничким налозима Том и Мари. Додаћемо кориснички налог том у судо групу помоћу команде усермод. Опција -Г (групе) одређује групу којој ћемо додати том налог. Опција -а (додати) додаје ову групу на листу група у којима се том кориснички налог већ налази. Без ове опције, том корисничког налога би био стављен у нову групу, али би уклоњен из било које друге групе.

sudo usermod -a -G sudo tom

Хајде да проверимо у којим групама је Мери:

groups

Кориснички налог мари је само у мари групи.

Хајде да проверимо са Томом:

groups

Том кориснички налог—а самим тим и Том—налази се у групама том и судо.

Хајде да покушамо да наведемо Мери да уради нешто што захтева судо привилегије.

sudo less /etc/shadow

Мери не може да погледа унутар ограничене датотеке „/етц/схадов.“ Добија благу замерку због покушаја да користи судо без дозволе. Хајдемо како је Том прошао:

sudo less /etc/shadow

Чим Том унесе своју лозинку, приказује му се /етц/схадов датотека.

Само додавањем у судо групу, уздигнут је у елитни ранг оних који могу да користе судо. Потпуно неограничено.

Давање корисницима ограничених судо права

Том је добио пуна судо права. Он може да уради све што може да уради роот—или било ко други у судо групи. То би му могло дати више моћи него што бисте радо предали. Понекад постоји захтев да корисник изврши функцију која захтева роот привилегије, али не постоји оправдан случај да има потпуни судо приступ. Можете постићи ту равнотежу тако што ћете их додати у датотеку судоерс и навести команде које могу да користе.

Хајде да упознамо Харија, власника корисничког налога Харри. Он није у судо групи и нема судо привилегије.

groups

Корисно је да Хари може да инсталира софтвер, али не желимо да има пуна судо права. Ок нема проблема. хајде да покренемо висудо:

sudo visudo

Померајте се надоле кроз датотеку док не прођете кроз дефиниције групе. Додаћемо линију за Харија. Пошто је ово дефиниција корисника, а не дефиниција групе, не морамо да почињемо ред са предзнаком процента.

Унос за кориснички налог харри је:

harry    ALL=/usr/bin/apt-get

Имајте на уму да постоји картица између „хари“ и „АЛЛ=“.

Ово гласи као кориснички налог харри може да користи наведене команде на свим хостовима повезаним на ову мрежу. Наведена је једна команда, а то је „/уср/бин/апт-гет“. Харију можемо да одобримо приступ више од једне команде додавањем на листу команди, одвојених зарезима.

  Како пронаћи кључне информације о систему на Линук-у помоћу И-Нек-а

Додајте ред у датотеку судоерс и сачувајте датотеку. Ако желите још једном да проверите да ли је ред синтаксички исправан, можемо да замолимо висудо да скенира датотеку и провери синтаксу за нас, користећи опцију -ц (само провера):

sudo visudo -c

Провере се врше и висудо извештава да је све у реду. Хари би сада требало да може да користи апт-гет да инсталирате софтвер али га треба одбити ако покуша да користи било коју другу команду која захтева судо.

sudo apt-get install finger

Харију су додељена одговарајућа судо права и он је у могућности да инсталира софтвер.

Шта се дешава ако Хари покуша да користи другу команду која захтева судо?

sudo shutdown now

Харију је онемогућено да изврши команду. Успешно смо му одобрили посебан, ограничен приступ. Може да користи номиновану команду и ништа друго.

Коришћење судоерс корисничких алиаса

Ако желимо да дамо Мари исте привилегије, могли бисмо да додамо ред у датотеку судоерс за кориснички налог мари на потпуно исти начин као што смо урадили са Харијем. Други, уреднији начин да се постигне иста ствар је коришћење Усер_Алиас-а.

у судоерс датотеци, Усер_Алиас садржи листу имена корисничких налога. Име Усер_Алиас-а се тада може користити у дефиницији за представљање свих тих корисничких налога. Ако желите да промените привилегије за те корисничке налоге, имате само један ред за уређивање.

Хајде да направимо Усер_Алиас и користимо га у нашој судоерс датотеци.

sudo visudo

Scroll down in the file until you come to the User_Alias specification line.


Додајте Усер_Алиас тако што ћете откуцати:

User_Alias INSTALLERS = harry, mary

Сваки елемент је одвојен размаком, а не табулатором. Логика се распада као:

Усер_Алиас: Ово говори Висудо-у да ће ово бити Усер_Алиас.
ИНСТАЛАТЕРИ: Ово је произвољан назив за овај алиас.
= харри, мари: Листа корисника које треба укључити у овај алиас.

Сада ћемо уредити ред који смо претходно додали за кориснички налог харри:

harry    ALL=/usr/bin/apt-get

Промените га тако да пише:

INSTALLERS    ALL=/usr/bin/apt-get

Ово каже да сви кориснички налози садржани у дефиницији „ИНСТАЛЛЕРС” Усер_Алиас могу покренути команду апт-гет. Ово можемо тестирати са Мери, која би сада требало да буде у могућности да инсталира софтвер.

sudo apt-get install colordiff

Мери је у могућности да инсталира софтвер јер се налази у „ИНСТАЛЛЕРС“ Усер_Алиас-у и том кориснику су додељена та права.

Три брза судо трика

Када заборавите да додате судо команди, откуцајте

sudo !!

И последња команда ће се поновити са судо додатим на почетак реда.

Када користите судо и аутентификујете своју лозинку, нећете морати да користите своју лозинку са даљим судо командама 15 минута. Ако желите да се ваша аутентикација одмах заборави, користите:

sudo -k

Да ли сте се икада запитали где можете да видите неуспеле покушаје судо команде? Они иду у датотеку „/вар/лог/аутх.лог“. Можете га погледати са:

less /var/log/auth.log

Можемо видети унос за кориснички налог Мари која је била пријављена на ТТИ птс/1 када је покушала да покрене команду за искључивање као корисник „роот“.

Са великом снагом…

…долази могућност делегирања делова на друге. Сада знате како селективно оснажити друге кориснике.