ПредишенСледващото

у дома # 149; статии # 149; Инсталиране и конфигуриране на Sudo в Debian 7

списък на разделите

Sudo - е програма, която позволява на администраторите да предоставят ограничени корен привилегии за потребителите и влезте корен дейност олово. Основната философия е да се даде възможно най-малко права, колкото е възможно, но в същото време позволява на хората правилно да изпълняват задълженията си. За разлика от командата су че потребителят въведе парола за профила си, не администраторската парола.

Sudo в Debian има петнадесет (бъдат предефинирани) изчакване, след въвеждане на парола. Това означава, че когато сте въвели първо администраторската парола, а след това имате 15 минути, като през това време можете да изпълните следната команда, без да въвеждате паролата. За изчакване може да бъде незабавно да зададете използване Sudo -k команда.

Инсталиране на Debian Sudo в 7

По време на инсталацията, можете да създадете конфигурационен файл / и т.н. / sudoers и /etc/sudoers.d директория. които ние ще обсъдим по-късно.

SUDO параметри на командата

Тук съдържа повечето от възможните варианти, но не всички. За да видите пълния списък, използвайте командата човек Sudo.

Конфигуриране Sudo в Debian 7

Препоръчително е да се определят всички потребителски настройки в файловете в директорията /etc/sudoers.d. а не в основните файлови / и т.н. / sudoers. Възможно е да създадете файл с произволно име в /etc/sudoers.d директория и вече в него се посочват необходимите настройки.

синхронизация sudoers файл

Най-общо казано, Sudo полезност е местен, че не разполага с вградени механизми за разпространение на общи настройки на множество сървъри от едно централно място. За синхронизация може да се използва, например, NFS. Rsync или LDAP.

Пример файлови sudoers съдържание

Когато четете ръководството за създаване на Sudo Debian, че е доста трудно да се разбере нещо, но по примера на всички си идва на мястото. Така че, за да започнете, помислете за пример на човек, sudoers:

# Псевдоними съдържащи потребителски имена
User_Alias ​​FULLTIMERS = millert, mikef, старомодна
User_Alias ​​PARTTIMERS = bostley, jwfox, обхождане
User_Alias ​​уебмастъри = ще Уенди, Wim

# Runas псевдоним, съдържащ имената на потребители или групи, от която ще се изпълни командата
Runas_Alias ​​ОП = корен, оператор
Runas_Alias ​​DB = Oracle, Sybase
Runas_Alias ​​ADMINGRP = ADM, Oper

# Псевдоними за конкретни домакини
Host_Alias ​​SPARC = bigtime, затъмнение, Moet, котва: \
SGI = Grolsch, глухарче, черен: \
ALPHA = джаджа, таламуса, Foobar: \
НРРА = боа, Наг, питон
Host_Alias ​​CUNETS = 128.138.0.0/255.255.0.0
Host_Alias ​​CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
Host_Alias ​​сървъри = майстор, поща, WWW, НЧ
Host_Alias ​​CDROM = ORION, Персей, Херкулес

# Псевдоними за обучение комплекти
Cmnd_Alias ​​сметища = / ЮЕсАр / хамбар / т, / ЮЕсАр / sbin / зареже, / ЮЕсАр / sbin / rdump, \
/ ЮЕсАр / sbin / възстановяване, / ЮЕсАр / sbin / rrestore
Cmnd_Alias ​​KILL = / ЮЕсАр / хамбар / убие
Cmnd_Alias ​​ПЕЧАТ = / ЮЕсАр / sbin / ЗЗК / ЮЕсАр / хамбар / lprm
Cmnd_Alias ​​ИЗКЛЮЧВАНЕ = / ЮЕсАр / sbin / изключване
Cmnd_Alias ​​HALT = / ЮЕсАр / sbin / спиране
Cmnd_Alias ​​REBOOT = / ЮЕсАр / sbin / рестартиране
Cmnd_Alias ​​черупки = / ЮЕсАр / хамбар / од, / ЮЕсАр / хамбар / CSH, / ЮЕсАр / хамбар / ksh, \
/ ЮЕсАр / местни / хамбар / tcsh, / ЮЕсАр / хамбар / РШ, \
/ ЮЕсАр / местни / хамбар / zsh
Cmnd_Alias ​​SU = / ЮЕсАр / хамбар / су
Cmnd_Alias ​​пейджъри = / ЮЕсАр / хамбар / повече, / ЮЕсАр / хамбар / PG, / ЮЕсАр / хамбар / по-малко

След това замени някои от стойностите, определени по подразбиране по време на компилация. Искаме Sudo да влезете чрез Syslog, проведено с помощта на упълномощаване във всички случаи. Искаме ли да служители, които работят на пълен работен ден получил предупреждение от Sudo, потребителското millert не трябва да въведете парола, и ние не искаме да нулирате командата променливи на обкръжението LOGNAME, ползвател или потребителско име е изпълнен като корен. В допълнение, машините в Host_Alias ​​SERVERS пазим допълнителен местен регистрационен файл и се уверете, че няма да бъде записано всяка година в съответствие както трупи ще се съхранява в продължение на няколко години. И накрая, за сигурността на отборите в списък пейджъри на деактивираме способността да тече други команди.

# Замяна вградена по подразбиране
По подразбиране Syslog = удостоверяване
По подразбиране> корен! Set_logname
По подразбиране: FULLTIMERS лекция!
По подразбиране: millert удостоверяване!
[Мейл защитен] log_year, лог = / Var / дневник / sudo.log
По подразбиране! Пейджъри noexec

След това идва от страна, която е определено, които той може да се изпълнява.

корен ALL = (ALL) ALL
% Колелото ALL = (ALL) ALL

Ние позволяваме на седефчето и от всички потребители в група колело извършват някоя команда на всеки хост, като всеки потребител.

FULLTIMERS ALL = NOPASSWD: ALL

Служителите, които работят на пълно работно време (millert, mikef и старомодна) могат да се движат всяка команда на всеки хост, без да въвеждате парола.

PARTTIMERS ALL = ALL

Служители, работещи част на деня (bostley, jwfox и обхождане) могат да изпълнят всяка команда на всеки хост, но първо трябва да преминат процедурата за удостоверяване.

жак CSNETS = ALL

Потребителят жак може да изпълни всяка команда на машини от списъка CSNETS.

оператор ALL = сметища, убиват, изключване, куци и рестартиране, ПЕЧАТ, \
sudoedit / и т.н. / Printcap, / ЮЕсАр / опера / хамбар /

Операторът може да работи команди ограничени до проста система за поддръжка. Тези команди са свързани със създаването на резервни копия, процесът на убиване, системата за печат, изключете системата и команди в директорията / ЮЕсАр / опера / хамбар / на.

Джо ALL = / ЮЕсАр / хамбар / су оператор

Потребителят може да използва Джо су само да станете потребител на оператора.

Pete НРРА = / ЮЕсАр / бен / ако съществува [A-Za-Z] *. / ЮЕсАр / хамбар / ако съществува корен

% Opers ALL = (: ADMINGRP) / ЮЕсАр / sbin /

Членове в Opers на групата могат да се изпълняват команди от / ЮЕсАр / sbin /, от името на себе си, във връзка с който и да е група от Runas_Alias ​​ADMINGRP (адм група и опера).

Пийт потребител може да сменя паролата на всеки потребител с изключение на корен на НРРА всяка машина от списъка. В този случай, не е в състояние да посочите няколко потребителски имена от командния ред.

Боб SPARC = (ОП) ALL. SGI = (ОП) ALL

Боб потребител може да изпълни всяка команда на машини на SPARC и SGI групи от името на народа Runas_Alias ​​ОП (корен и оператор).

джим + biglab = ALL

Потребителят джим да изпълнявате всяка команда в biglab netgroup. Sudo знае, че biglab - мрежа група чрез "+" префикс.

Fred ALL = (DB) NOPASSWD: ALL

Джон ALPHA = / ЮЕсАр / хамбар / су [-] *. / ЮЕсАр / хамбар / су * корен *

ALPHA върху машините в списъка на потребителското Джон може да използвате, за да станете су всеки потребител, различен от корен. Въпреки това, той не може да използвате всеки от параметрите на командата СУ.

Джен ALL. СЪРВЪРИ = ALL

Потребителят Джен да изпълнявате всяка команда на всяка машина, с изключение на тези, включени в списъка на сървъри.

Джил SERVERS = / ЮЕсАр / хамбар /. SU. черупки

На някой от списъка с машини сървъри, Джил може да изпълнява никакви команди, освен, съдържаща се в списъците, СУ и черупки.

стив CSNETS = (оператор) / ЮЕсАр / местни / op_commands /

Потребителят стив да изпълнявате всяка команда в директорията / ЮЕсАр / местни / op_commands / CSNETS на машините в мрежата, но само като потребител оператор.

Мат Валкирия = KILL

На личната му работно място и матов потребител се нуждае от възможност да убие процеси.

Уебмастъри WWW = (WWW) ВСИЧКО, (корен) / ЮЕсАр / хамбар / су WWW

На уеб хост, като всеки потребител в списъка за уебмастъри (воля, Уенди и Вим), може да пуснете някой команда от WWW потребител (която е собственик на файловете на сайта) или просто да WWW потребител с помощта на командата СУ.

ALL CDROM = NOPASSWD: / sbin / демонтирате / CDROM, \
/ Sbin / монтиране -o nosuid \, nodev / сътрудничество / cd0a / CDROM

Всеки потребител може да се монтира или откача CDROM върху машините в списъка с CDROM, без да въвеждате паролата.

На следващо място, ние анализираме подробно различните елементи на файла / и т.н. / sudoers.

sudoers формат на файла

sudoers файл съдържа два вида записи: псевдоними (общи променливи) и потребителски спецификации (посочете кой, какво и къде може да работи).

Когато има няколко спецификации за един и същи потребител, те се прилагат в последователността, в която се използва от последния.

В резултат на това спецификация форма е както следва:

кой къде = (от името на кого), че

В по-пълна форма:

кой къде = (от името на някого), че (от името на някого), че. където = (от името на някого), че (от името на кого), че

Можете също така да определите кои от групите можете да изпълните следната команда:

кой къде = (от името на някого. от група), които

Или още по-сложна версия:

= Където някой (чието име, от името на някого. От група на група), че това

Конзолите на даден потребител или група могат да се изпълняват команди. Потребители и групи са разделени една от друга със запетая. Членовете на групите се отделят чрез колони.

Ако искате един и същи потребител, за да настроите различни настройки на различни хостове, за отделяне на дебелото черво също са използвани.

user1 хост1 = (оп. opgr) / BIN / LS

Това правило казва, че ползвателят на user1 да изпълни командата / BIN / LS, както следва:

вписвания Форма псевдоним

Tip_aliasa Наименование = т.1, параграф 2. Наименование = параграф 3, параграф 4

Alias ​​име може да съдържа и букви, регистри, цифри и долна черта. Името трябва да започва с главна буква.

видове псевдоними

User_Alias

Той може да съдържа един или повече потребителски имена, потребители самоличност (префикси с #), имената на потребителски групи и тяхното ID (представка% и% #, съответно), мрежовите групи (с префикс +), имена и ID без yunikosovye група (с префикси%:% и #, съответно), както и потребителски псевдоними (User_Aliases). Всеки елемент може да бъде предшествано от удивителен знак ( "!").

Артикулите могат да бъдат затворени в двойни кавички, за да се избегне използването на бягство специални знаци. Ако използвате двойни кавички представки трябва да бъдат включени в текста между кавичките.

Runas_Alias

Този псевдоним може да съдържа същите точки като User_Alias. Моля, имайте предвид, че имената и групи се сравняват като струни. С други думи, двете потребители (групи) с различни имена, но с една и съща UID (GID) се считат за различни. Ако искате да изберете всички потребителски имена със същия UID (например, корен, и toor), можете да използвате UID (# 0 в този пример).

Host_Alias

Cmnd_Alias

Списъкът може да включва един или повече команди, директории или други псевдоними. Екипът - е напълно определено име на файла (тоест, съдържащ пътя към файла), който може да съдържа заместващи символи. А просто името на файла позволява на потребителя да изпълни командата с никакви аргументи. Въпреки това, можете да посочите и аргументи от командния ред (включително заместващи символи). От друга страна, можете да посочите "", за да се предотврати използването на каквито и да било аргументи за тази команда. Directory - е напълно квалифицирана пътека завършва с "/". Когато в Cmnd_Alias ​​директорията е в списъка, потребителят може да работи всеки файл в рамките на тази директория (но не и нейните поддиректории).

Първостепенни по подразбиране

Някои опции могат да бъдат променяни по време на план от един или повече записи по подразбиране, които могат да повлияят на всички потребители на всеки хост, всички потребители на определена домакин на конкретен потребител, определена команда или команда, изпълнена от конкретен потребител. Струва си да припомним, че записите на отделните отбори не могат да включват аргументи. Ако искате да зададете аргументи, задайте Cmnd_Alias ​​и да го използвате.

Подразбиране Когато запис за различни псевдоними, използвани от различни символи, показващи типа на псевдоним:

"По подразбиране" '@' Host_List
"По подразбиране '': 'USER_LIST
'' По подразбиране "! Cmnd_List
"По подразбиране" ">" Runas_List

Параметрите могат да бъдат знамената, целочислени стойности, струнни и списъци. Знамена булеви и могат да бъдат изключени, като се използва "!" Оператор. Стойностите могат да бъдат поставени в кавички, ако те съдържат няколко думи. Специални знаци могат да бъдат избягали с наклонена черта (\).

Списъци имат две задача оператор + = и - =. Тези оператори се използват за добавяне и премахване от списъка, съответно.

записи "По подразбиране" се обработват в следния ред: първо, основните, за домакини и потребители, а след това runas и най-накрая, за екипите.

Ключови думи

С команда може да се използва от нула или повече ключови думи. Има осем ключови думи: NOPASSWD, ако съществува, NOEXEC, EXEC, SetEnv, NOSETENV, LOG_INPUT, NOLOG_INPUT, LOG_OUTPUT и NOLOG_OUTPUT.

NOPASSWD и PASSWD

user1 хост1 = NOPASSWD: / хамбар / ли, / хамбар / LN, PASSWD: / хамбар / убие

NOEXEC и EXEC

NOEXEC може да се използва за предотвратяване на стартирането на динамично свързан изпълним с помощта на наличните команди за изпълнение. например:

user1 хост1 = NOEXEC: / ЮЕсАр / хамбар / повече

заместващи символи

Sudo позволява използването на заместващи символи (както и на мета или глобални символи) в хост имена, пътища и аргументи от командния ред във файла с sudoers. Струва си да припомним, че това не е регулярен израз.

* - Замества нула или повече символа.
? - замества всеки отделен знак.
[. ] - замества всички символи в даден диапазон.
[. ] - замества всеки символ е извън посочения диапазон.
\ - имена бягство характер, за да могат да се използват специални знаци.

Можете също да използвате класове характер. Въпреки това, тъй dvoetochnie ( ":") е специален характер, е необходимо да се екран:

това ще бъде всеки файл, като се започне с писмото.

В допълнение, наклонената черта не се заменя със заместващи символи. Например:

съответства / ЮЕсАр / хамбар / кой, но не съвпада с / ЮЕсАр / хамбар / X11 / Xterm.

За да се забрани използването на аргументи на командния ред, можете да използвате двойни кавички - "".

Включването на съдържанието на други файлове в sudoers

Включване ( "включват уязвимост" от включване) на съдържанието на други файлове е възможно с помощта на #INCLUDE директиви и #includedir.

Може да се използва в ситуация, в която сте насоки за Sudo са общи за всички сървъри и специфични за всеки сървър. В този случай, можете да създадете два файла, например, и sudoers sudoers.local. След това, на втория inkluda първо чрез директиви (заедно с иконата на решетка):

Можете също да създавате файлове с различни части след период, съответстващ на името на сървъра и inkluda тях, както следва:

където вместо% Н заместен хост.

Що се отнася до директива #includedir. можете да създадете папка, в която могат да се добавят файлове и те автоматично ще бъдат включени в досието на sudoers. Например, след инсталиране на Debian Sudo /etc/sudoers.d/ създадена. и във файла / и т.н. / sudoers добавена директива:

Добре е да отбележим, че файловете се обработват и сортират лексикално, а не от броя. Това е, например, /etc/sudoers.d/01_first файл ще бъдат обработени преди /etc/sudoers.d/10_second, но файл с име /etc/sudoers.d/1_whoops ще бъдат обработени след /etc/sudoers.d/10_second защото първото име не е нула.

Допълнителни специални символи

ALL - тя е запазена дума, която определя всички възможни стойности. Тя може да се използва вместо евентуални псевдоними и ценности в областта ", които", "къде", "от", "какво". Не се опитвайте да създадете псевдоними име ALL.

Удивителният знак ( "!") се използва като оператор на логическо отрицание (не) и ви позволява да се изключат определени стойности. Например, вие може да позволи да се извършва действие, с изключение на някои употреба и всички! " ".

Огромни опашки могат да бъдат разделени на поднизове с помощта на обратно наклонена черта ( '\') стои в края на всеки подниз с изключение на последната.

Празнините между елементите на "=", ":", "(" ")" не е необходимо. Това означава, че те могат да бъдат използвани, и не може да се използва.

Следните знаци трябва да са избягали, като се използва наклонена черта ( '\'):

Свързани статии

Подкрепете проекта - споделете линка, благодаря!