<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF84:Безопасность - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF84:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 21:30:19 GMT</lastBuildDate>
		<item>
			<title>Yaleks: викификация</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF84:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&amp;diff=6140&amp;oldid=prev</link>
			<description>&lt;p&gt;викификация&lt;/p&gt;
&lt;a href=&quot;http://wiki2.linuxformat.ru/index.php?title=LXF84:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&amp;amp;diff=6140&amp;amp;oldid=6139&quot;&gt;(Различия между версиями)&lt;/a&gt;</description>
			<pubDate>Sat, 20 Dec 2008 12:43:13 GMT</pubDate>			<dc:creator>Yaleks</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF84:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C</comments>		</item>
		<item>
			<title>Yaleks: Новая: {{Цикл/Безопасность}} ==Безопасность: Стойкие пароли == ''ЧАСТЬ 1: Первая линия обороны Linux-системы – меха...</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF84:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&amp;diff=6139&amp;oldid=prev</link>
			<description>&lt;p&gt;Новая: {{Цикл/Безопасность}} ==Безопасность: Стойкие пароли == ''ЧАСТЬ 1: Первая линия обороны Linux-системы – меха...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Цикл/Безопасность}}&lt;br /&gt;
==Безопасность: Стойкие пароли ==&lt;br /&gt;
''ЧАСТЬ 1: Первая линия обороны Linux-системы – механизм пользовательских паролей. Д-р '''Крис Браун''' объяснит, как он работает и как ещё можно укрепить защиту системы.''&lt;br /&gt;
&lt;br /&gt;
«Уверенность», по словам Гекаты в трагедии Шекспира&lt;br /&gt;
«Макбет», «несет погибель смертным». Она хотела сказать, что чрезмерная вера Макбета в себя в конце концов&lt;br /&gt;
его погубит: ведь считая себя неуязвимым, он необоснованно рисковал. Прямо как вы! Вообразили, что ваш Linux неуязвим? Вы идете к&lt;br /&gt;
пропасти…&lt;br /&gt;
&lt;br /&gt;
Есть немало свидетельств, что работать в Linux куда безопаснее,&lt;br /&gt;
чем в Windows. Я сам видел цифры: Linux «из коробки» подхватывает заразу за три месяца, тогда как Windows – за три часа (см. http://www.honeynet.org). Но это не повод относиться к безопасности своей системы спустя рукава.&lt;br /&gt;
&lt;br /&gt;
В данной серии, состоящих из пяти уроков по безопасности Linux и&lt;br /&gt;
соответствующим открытым утилитам, мы рассмотрим, как обнаруживать уязвимости и прикрывать их. В первой части мы рассмотрим пароли и поговорим о контроле над привилегиями, даваемом sudo.&lt;br /&gt;
&lt;br /&gt;
Между безопасностью и удобством всегда существует компромисс.&lt;br /&gt;
Машина, запертая в комнате, где нет подключения к сети, конечно, намного сохраннее, чем машина с доступом в Интернет посреди проходного двора, однако настолько же и бесполезнее. Попробуем облечь убытки от уязвимостей в наукообразный вид – получится такая формула:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Ожидаемые убытки = (вероятность успешного вторжения) x (цена этого вторжения)&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На этих уроках я буду говорить об уменьшении вероятности&lt;br /&gt;
взлома, но важно также уменьшить потери от успешного вторжения.&lt;br /&gt;
Например, как можно скорее обнаружить вторжение гораздо лучше,&lt;br /&gt;
чем на много дней оставить его безнаказанным. Регулярное создание&lt;br /&gt;
резервных копий существенно сократит возможные потери данных.&lt;br /&gt;
Распределение сервисов на несколько машин (не кладите все яйца в&lt;br /&gt;
одну корзину) поможет предотвратить простои в работе организации&lt;br /&gt;
из-за единичного взлома. И так далее.&lt;br /&gt;
&lt;br /&gt;
=== Хэшируй это! ===&lt;br /&gt;
Начнем с начал: Linux – многопользовательская операционная система. Когда вы входите в нее, вам предложат ввести имя пользователя&lt;br /&gt;
и пароль для подтверждения того, что вы – это вы. Выбор хорошего&lt;br /&gt;
пароля – ключевая часть сохранения безопасности системы.&lt;br /&gt;
&lt;br /&gt;
Вот как работает механизм паролей в Linux. Информация о пользовательских учетных записях хранится в двух файлах: /etc/passwd и&lt;br /&gt;
/etc/shadow. Файл passwd содержит имя пользователя, его числовой&lt;br /&gt;
идентификатор (User ID, UID) и домашнюю директорию, но (вопреки&lt;br /&gt;
названию) пароля-то в нем и нет: он укрылся в файле shadow (далее&lt;br /&gt;
мы увидим, зачем нужно разделение на два файла). Файлы passwd и&lt;br /&gt;
shadow параллельны – каждой учетной записи пользователя соответствует строка в одном файле и строка в другом. Когда пользователь&lt;br /&gt;
устанавливает пароль, пароль хэшируется, а результат хэширования&lt;br /&gt;
помещается в /etc/shadow.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img 84 63 1.png|thumb|300px|Аутентификация с хэшем]]&lt;br /&gt;
Хэширование похоже на шифрование, в том смысле что из&lt;br /&gt;
внятного текста получается полная белиберда; однако, в отличие от&lt;br /&gt;
шифрования, хэширование – операция необратимая. Каждый раз,&lt;br /&gt;
когда вы вводите пароль, он хэшируется, и полученный хэш сравнивается с тем, что прописан в /etc/shadow. Linux не хранит пароли&lt;br /&gt;
в чистом виде.&lt;br /&gt;
&lt;br /&gt;
В зависимости от вашей Linux-системы, у вас есть выбор из трех&lt;br /&gt;
путей хэширования:&lt;br /&gt;
# Функция crypt от Unix, болтающаяся в системе уже много лет. Команда crypt реализует алгоритм DES (Data Encryption Standard) и генерирует 13-символьный хэш.&lt;br /&gt;
# MD5, который, как вы имели шанс заметить, используется для верификации ISO-образов компакт-дисков и передаваемых по сети файлов, а также в цифровых подписях. MD5 генерирует 34-символьный хэш.&lt;br /&gt;
# Blowfish (или, скорее, хэш-функция, выведенная по алгоритму Blowfish), генерирующий 60-символьный хэш.&lt;br /&gt;
Все эти алгоритмы используют «соль» (salt) – случайное число,&lt;br /&gt;
генерируемое при установке пароля. Соль и указанный пользователем пароль комбинируются и хэшируются. Соль и хэш сохраняются в&lt;br /&gt;
/etc/shadow. Если вы проверите свой /etc/shadow на системе, использующей хэши MD5, то ясно разглядите соль и хэш. Например, в строке&lt;br /&gt;
пароля $1$Ue1yZO5i$.6G/4l1AYliPdkTh1AkBi/ восемь символов после&lt;br /&gt;
$1$ – соль, а 22 после последнего $ – хэш. Мы увидим, что соль делает&lt;br /&gt;
взлом паролей гораздо труднее.&lt;br /&gt;
&lt;br /&gt;
Отчасти стойкость пароля зависит от качества хэш-алгоритма.&lt;br /&gt;
Хороший хэш-алгоритм в теории делает невозможным вычисление&lt;br /&gt;
пароля по хэшу. Конечно, зная хэш, вы всегда можете попробовать&lt;br /&gt;
метод грубой силы – хэшировать каждую возможную последовательность из (допустим) восьми символов в надежде найти соответствие.&lt;br /&gt;
Но существует около 90 отображаемых ASCII-символов, а это значит,&lt;br /&gt;
что перебрать придется 90 в восьмой степени вариантов – то есть&lt;br /&gt;
4,304,672,100,000,000.&lt;br /&gt;
&lt;br /&gt;
Если ваша машина способна вычислять 10000 хэшей в секунду, то&lt;br /&gt;
на весь перебор понадобится 13650 лет, а это, вероятно, дольше, чем&lt;br /&gt;
вам хотелось бы ждать. Соль еще более усложняет взлом, делая невозможным простое сравнение со списком хэшей для наиболее часто&lt;br /&gt;
употребляемых паролей, так что взломщики могут искать совпадение&lt;br /&gt;
только с одним паролем за раз.&lt;br /&gt;
&lt;br /&gt;
Наш анализ немного наивен, поскольку длина хэша тоже влияет на&lt;br /&gt;
интервал поиска, но по крайней мере будьте уверены – атаки грубой&lt;br /&gt;
силой (перебором) слишком медленны. (Более глубокий анализ можно найти в книге Брюса Шнайдера «Прикладная криптография», более&lt;br /&gt;
поверхностный – в «Цифровой крепости» Дэна Брауна). К сожалению,&lt;br /&gt;
реальный интервал поиска гораздо меньше, поскольку многие люди&lt;br /&gt;
выбирают для пароля простые слова или имена: любимого супруга или&lt;br /&gt;
собаки, или, того хуже, собственное имя пользователя.&lt;br /&gt;
&lt;br /&gt;
=== Потрошим колбасу ===&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Этика взломщика&lt;br /&gt;
|Содержание=John the Ripper – одна из утилит для оценки уязвимости,&lt;br /&gt;
которыми пользуются и «темные», и «светлые». Первые&lt;br /&gt;
пользуются ею для взлома паролей. Вторые применяют&lt;br /&gt;
ее для обнаружения слабых паролей, пока до них не&lt;br /&gt;
добрались плохие парни. Так что для порядка нужно бы написать про отказ&lt;br /&gt;
от ответственности. Во-первых, я (как и вся редакция LinuxFormat)&lt;br /&gt;
абсолютно не одобряю использование этой утилиты в корыстных целях.&lt;br /&gt;
Во-вторых, если вы решили применить эту утилиту на работе, сначала&lt;br /&gt;
получите «добро» от своего начальника. Есть реальный шанс, что вас&lt;br /&gt;
уволят, если обнаружится, что вы запускаете взломщик на рабочих&lt;br /&gt;
машинах без разрешения, даже если вы руководствуетесь благими&lt;br /&gt;
намерениями.&lt;br /&gt;
|Ширина=250px}}&lt;br /&gt;
Программы-взломщики паролей автоматизируют атаки, выбирая из&lt;br /&gt;
словаря пароль, из которого получается данный хэш. Они пользуются информацией из вашей базы данных паролей, и, увы, добиваются&lt;br /&gt;
успеха пугающе часто. Возьмем, к примеру, популярную утилиту John&lt;br /&gt;
the Ripper [Джон-Потрошитель, – прим. ред.].&lt;br /&gt;
&lt;br /&gt;
Вы можете скачать «Джона» с http://www.openwall.com. Перед запуском&lt;br /&gt;
слейте содержимое /etc/passwd и /etc/shadow в один файл. Это делает&lt;br /&gt;
команда unshadow (включенная в пакет John the Ripper):&lt;br /&gt;
 # unshadow /etc/passwd /etc/shadow &amp;gt; passwdcombo&lt;br /&gt;
В результате получится файл, где хэши будут вставлены во второе&lt;br /&gt;
поле файла passwd (как это было до изобретения shadow). Для выполнения описанной команды вы должны иметь привилегии суперпользователя, поскольку только он может читать /etc/shadow. Теперь запускайте John. Опций командной строки для настройки поиска хватает, но&lt;br /&gt;
благодаря разумным установкам по умолчанию John будет работать,&lt;br /&gt;
если ему просто указать имя полученного выше файла:&lt;br /&gt;
 # John passwdcombo&lt;br /&gt;
Не ждите, что результаты появятся сразу. Для тестирования я&lt;br /&gt;
создал десять пользовательских учетных записей со следующими&lt;br /&gt;
паролями: user1pw; secret; terces; secret42; Secret; ducttape; England;&lt;br /&gt;
pit; coat; milewide; sausages [те самые колбасы, – прим. ред.]. Из них&lt;br /&gt;
John нашел secret, terces и Secret в течение нескольких минут. В течение ночи он нашел England и sausages. Пять из десяти, хотя, конечно,&lt;br /&gt;
некоторые из этих паролей были нарочито слабыми.&lt;br /&gt;
&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Скорая помощь&lt;br /&gt;
|Содержание=Хотя сильные&lt;br /&gt;
пароли трудно&lt;br /&gt;
запомнить, но&lt;br /&gt;
лучше брать такие,&lt;br /&gt;
чем слово из&lt;br /&gt;
словаря или имя&lt;br /&gt;
любимой.&lt;br /&gt;
|Ширина=100px}}&lt;br /&gt;
В тесте участвовала версия John the Ripper 1.6-4 на Fedora Core 5 с&lt;br /&gt;
MD5-хэшами. Если угодно, настраивается John несколькими способами: подключением к нему разных списков паролей; указанием правил&lt;br /&gt;
по трансформации паролей из списка; через файл John.ini; через аргументы командной строки.&lt;br /&gt;
&lt;br /&gt;
Успех программ-взломщиков паролей поясняет, почему пароли не&lt;br /&gt;
хранятся в /etc/passwd: этот файл могут читать все пользователи (он&lt;br /&gt;
часто используется для поиска соответствия между пользователем и&lt;br /&gt;
UID), так что если бы хэши хранились здесь, любой пользователь мог&lt;br /&gt;
бы начать подбор паролей. Перемещение хэшей в /etc/shadow (который может читать только root) блокировало эту линию атаки.&lt;br /&gt;
&lt;br /&gt;
Наши результаты должны также укрепить в вас сознание необходимости выбирать сильные пароли. Те, кто использует слова, имеющегося в словаре, просто нарываются на неприятности. С другой стороны,&lt;br /&gt;
использование слишком сложного для запоминания и набора пароля&lt;br /&gt;
также неблагоразумно. (У одних моих клиентов пароль root был наклеен на терминал).&lt;br /&gt;
&lt;br /&gt;
Один из способов составления хорошего пароля – выбрать два&lt;br /&gt;
несвязанных слова и склеить их каким-нибудь знаком пунктуации;&lt;br /&gt;
например так: pico:drip или tiny-duck. Другой способ – взять слово, заменить часть букв на заглавные, а часть – на цифры: B33rMats&lt;br /&gt;
(beermats), a1rcr4FT (aircraft).&lt;br /&gt;
&lt;br /&gt;
Добиться того, чтобы ваши пользователи использовали сильные&lt;br /&gt;
пароли – вопрос обучения. Объясните, как выбрать хороший пароль,&lt;br /&gt;
и регулярно запускайте взломщик,&lt;br /&gt;
выявляя тех, кто не слушает советов. Если вы хотите автоматизировать принудительный выбор сильных&lt;br /&gt;
паролей, рассмотрите как вариант&lt;br /&gt;
установку модуля PAM pam_passwdqc.&lt;br /&gt;
Этому модулю можно поручить установку паролей, а заодно настроить&lt;br /&gt;
его на проверку паролей по длине&lt;br /&gt;
и смешиваемости символов (верхнего/нижнего регистра, цифр и других&lt;br /&gt;
знаков). Модуль доступен на http://www.openwall.com.&lt;br /&gt;
&lt;br /&gt;
=== Установка пароля Grub ===&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Скорая помощь&lt;br /&gt;
|Содержание=Установите пароль&lt;br /&gt;
на Grub для&lt;br /&gt;
предотвращения&lt;br /&gt;
доступа через&lt;br /&gt;
загрузку в однопользовательском&lt;br /&gt;
режиме&lt;br /&gt;
|Ширина=150px}}&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Атаки физического доступа&lt;br /&gt;
|Содержание=Перехват процесса загрузки Grub требует физического доступа к машине, и&lt;br /&gt;
если этот доступ есть, то есть и способы обхода пароля. Например, кнопка&lt;br /&gt;
Reset вашего компьютера заслуживает бирки «Для root-доступа нажимать&lt;br /&gt;
здесь». Возьмите LiveCD с диска к нашему журналу и загрузитесь с него, да даже&lt;br /&gt;
просто выберите спасательный (rescue) режим загрузки штатной ОС со стандартного носителя – и в&lt;br /&gt;
любом из этих случаев у вас будет полный доступ ко всей файловой системе. В конце концов, если и&lt;br /&gt;
это не удалось, всегда можно взять отвертку и унести жесткий диск в кармане.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
Взлом пароля – не единственный способ проникнуть в Linux-систему. Большинство систем в качестве загрузчика используют Grub. Grub&lt;br /&gt;
достаточно гибок в настройке и включает опции вмешательства в процесс загрузки и редактирования команд загрузки (или даже добавления новых команд).&lt;br /&gt;
&lt;br /&gt;
Grub умеет передавать аргументы ядру Linux, и один особо интересный трюк заключается в добавлении аргумента init=/bin/sh в конец&lt;br /&gt;
команды загрузки ядра. Этот аргумент скажет ядру, что вместо команды init нужно запустить /bin/sh, и вы получите полный доступ к системе&lt;br /&gt;
без ввода пароля суперпользователя.&lt;br /&gt;
&lt;br /&gt;
Атаки такого рода можно предотвратить, установив пароль на Grub.&lt;br /&gt;
Тогда интерактивные опции Grub не включатся до тех пор, пока не будет&lt;br /&gt;
введен верный пароль. Пароль нужен не на загрузку согласно имеющемуся файлу конфигурации Grub, а на редактирование и интерактивный&lt;br /&gt;
ввод команд.&lt;br /&gt;
&lt;br /&gt;
Пароль для Grub установить легко. Откройте файл /boot/Grub/menu.&lt;br /&gt;
lst и добавьте в глобальные настройки (в начале файла) строку вроде&lt;br /&gt;
этой:&lt;br /&gt;
 password --md5 $1$H06141$PTIpTGW7fNKspluqd1Mdk.&lt;br /&gt;
Мы опять видим MD5-хэш (вместе с солью), который мы уже&lt;br /&gt;
встречали ранее. Есть несколько способов его генерации. Во-первых,&lt;br /&gt;
можно просто скопировать хэш существующей учетной записи из файла /etc/shadow. Естественно, тот, для которого вы знаете пароль. Во-вторых, можно запустить Grub из командной строки и ввести команду md5crypt. Программа попросит вас ввести пароль и выведет хэш.&lt;br /&gt;
Диалог выглядит так:&lt;br /&gt;
&amp;lt;pre&amp;gt;# Grub&lt;br /&gt;
GNU Grub version 0.95 (640K lower / 3072K upper memory)&lt;br /&gt;
Grub&amp;gt; md5crypt&lt;br /&gt;
Password: *********&lt;br /&gt;
Encrypted: $1$H06141$PTIpTGW7fNKspluqd1Mdk.&lt;br /&gt;
Grub&amp;gt; quit&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Теперь можно вставить этот хэш в /boot/Grub/menu.lst)&lt;br /&gt;
Если вы теперь загрузите машину, имея эту строку в файле конфигурации Grub, то сможете только выбирать ОС из предопределенных в&lt;br /&gt;
menu.lst, клавишами «вверх» и «вниз», а для других действий придется&lt;br /&gt;
нажать p и ввести пароль.&lt;br /&gt;
&lt;br /&gt;
В мультизагрузочной системе можно также заблокировать определенные пункты меню, и доступ к ним получат только знающие&lt;br /&gt;
пароль, причем пароль у каждого пункта может быть своим. Для&lt;br /&gt;
этого ознакомьтесь с руководством по Grub, доступном на http://www.gnu.org/software/Grub/manual.&lt;br /&gt;
&lt;br /&gt;
=== Контроль доступа ===&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Скорая помощь&lt;br /&gt;
|Содержание=Никогда не&lt;br /&gt;
выдавайте пароль&lt;br /&gt;
root. Если кому-то&lt;br /&gt;
понадобилось&lt;br /&gt;
ограниченное&lt;br /&gt;
повышение&lt;br /&gt;
привилегий,&lt;br /&gt;
используйте sudo.&lt;br /&gt;
|Ширина=150px}}&lt;br /&gt;
Не сомневаюсь: вы уже знаете, что в Linux есть специальная учетная&lt;br /&gt;
запись, называемая суперпользователем. Общепринятое имя для этой&lt;br /&gt;
записи – root, однако ключевой момент – числовой пользовательский&lt;br /&gt;
идентификатор, UID: для root он равен нулю. Если вы вошли в систему как root, считайте все проверки пройденными, а все права доступа&lt;br /&gt;
вашими – вы всемогущи. Как модель безопасности, понятие root вызывает примитивное чувство все-или-ничего.&lt;br /&gt;
&lt;br /&gt;
К примеру, если вы хотите позволить кому-нибудь подстраивать&lt;br /&gt;
системные часы, дайте ему пароль root, который позволит ему влезть&lt;br /&gt;
в секреты своего начальника. С точки зрения ролевой системы, по&lt;br /&gt;
контролю доступа ролей только две: смертный человек и Бог. Для&lt;br /&gt;
потенциального взломщика получение пароля root на вашей системе – абсолютная победа.&lt;br /&gt;
&lt;br /&gt;
Команда sudo позволяет системным администраторам распределять ответственность между пользователями более гибко. Sudo&lt;br /&gt;
контролируется конфигурационным файлом /etc/sudoers. Пытаясь&lt;br /&gt;
произвести впечатление на хорошенькую девушку на вечеринке, я&lt;br /&gt;
могу сказать что-то вроде «sudo предоставляет контролируемое&lt;br /&gt;
повышение привилегий» (мне никогда не удавалось стать душой&lt;br /&gt;
вечеринки). Или, говоря проще, он позволяет указать, кому что разрешается делать.&lt;br /&gt;
&lt;br /&gt;
Освоение sudo в значительной степени означает освоение синтаксиса файла /etc/sudoers. К сожалению, документация для sudoers&lt;br /&gt;
описывает синтаксис файла с использованием расширенной формы&lt;br /&gt;
Бэкуса-Наура, нотации для формального описания грамматик: если вы&lt;br /&gt;
не так давно получили ученую степень по компьютерным наукам, все&lt;br /&gt;
будет отлично, в противном случае – оставьте надежду. Тем не менее,&lt;br /&gt;
несколько примеров прояснят ситуацию.&lt;br /&gt;
&lt;br /&gt;
В качестве простого примера допустим, что я хочу разрешить пользователю harry изменять системное время и дату из командной строки,&lt;br /&gt;
используя команду date. Команда date позволяет любому пользователю, запустившим ее без аргументов, узнать текущее время и дату:&lt;br /&gt;
 $ date&lt;br /&gt;
 Thu Sep 15 07:56:52 BST 2006&lt;br /&gt;
А вот если вы попытаетесь изменить время и дату, не будучи root,&lt;br /&gt;
это вам не удастся:&lt;br /&gt;
 $ date 09150755&lt;br /&gt;
 date: cannot set date: Operation not permitted&lt;br /&gt;
 Thu Sep 15 07:55:00 BST 2006&lt;br /&gt;
Чтобы harry мог изменять дату и время, вы должны сообщить sudo,&lt;br /&gt;
что на запуск date у него есть права root. Для этого поместите такую&lt;br /&gt;
строку в /etc/sudoers:&lt;br /&gt;
 harry snowhite=(root) /bin/date&lt;br /&gt;
В терминологии sudo это называется спецификацией привилегий.&lt;br /&gt;
Давайте рассмотрим каждое поле:&lt;br /&gt;
* harry Первое поле – учетная запись, которой мы даем особые привилегии.&lt;br /&gt;
* snowhite Второе поле – имя машины, к которой имеют отношения эти привилегии. Указание конкретного имени позволит вам держать данные sudoers на целую когорту машин в одном файле (через NFS, например), и настройка будет у каждой своя. Часто в этом поле можно видеть ALL.&lt;br /&gt;
* =(root) Эта запись указывает пользователя, чьи права используются для запуска команд.&lt;br /&gt;
* /bin/date Последнее поле – имя команды, которую может запускать пользователь. Полный путь указывать обязательно.&lt;br /&gt;
&lt;br /&gt;
Для редактирования файла sudoers вы должны быть root и использовать при этом команду visudo (а не обычный редактор). Наш друг&lt;br /&gt;
visudo заблокирует файл от одновременных обновлений и проверит&lt;br /&gt;
его синтаксис перед сохранением.&lt;br /&gt;
&lt;br /&gt;
С этой строкой в sudoers harry может менять время и дату так:&lt;br /&gt;
 $ sudo date 09150755&lt;br /&gt;
У harry спросят пароль. Некоторые дистрибутивы Linux включают в&lt;br /&gt;
/etc/sudoers строку вроде этой:&lt;br /&gt;
 Defaults targetpw&lt;br /&gt;
При наличии этой строки harry должен будет вводить не свой&lt;br /&gt;
пароль, а пароль того пользователя, от лица которого запускается&lt;br /&gt;
команда (обычно root). Вы должны удалить эту строку из sudoers, что-бы пользователь вводил свой пароль, а не root’а. Иначе будет потеряна&lt;br /&gt;
вся гибкость ролевой системы. Вы также должны удалить такую строку, если у вас она найдется:&lt;br /&gt;
 ALL ALL=(ALL) ALL&lt;br /&gt;
Когда harry воспользуется sudo и введет пароль, sudo на какое-то время позволит ему выполнять команды без проверки пароля. По&lt;br /&gt;
умолчанию этот промежуток времени равен пяти минутам; вы можете&lt;br /&gt;
его изменить, добавив в sudoers такую строку:&lt;br /&gt;
Defaults timestamp_timeout=0&lt;br /&gt;
Нулевое значение означает, что sudo будет спрашивать пароль&lt;br /&gt;
всегда.&lt;br /&gt;
&lt;br /&gt;
=== Ролевая игра ===&lt;br /&gt;
Давайте рассмотрим другие особенности sudoers. Ключевое слово ALL&lt;br /&gt;
используется в некоторых местах файла. Например:&lt;br /&gt;
 isaac ALL=(ALL) ALL&lt;br /&gt;
Эта строка говорит о том, что пользователь isaac может запускать&lt;br /&gt;
любую программу от лица любого пользователя на любой машине&lt;br /&gt;
(конечно, если он укажет свой пароль или пароль соответствующего&lt;br /&gt;
пользователя на нужной машине).&lt;br /&gt;
&lt;br /&gt;
Вы также можете определять псевдонимы (alias). Псевдонимы – это&lt;br /&gt;
просто именованные списки пользователей, машин или команд. Сами&lt;br /&gt;
по себе псевдонимы ничего не делают, зато они облегчают написание&lt;br /&gt;
привилегий для множества пользователей. Покажу вам на примере.&lt;br /&gt;
&lt;br /&gt;
Пусть вы хотите дать определенному пользователю права на управление пользовательскими учетными записями. Для этого есть множество утилит – useradd, groupadd и т.д. В sudoers вы можете определить командный псевдоним (назовем его USERMGMT):&lt;br /&gt;
 Cmnd_Alias USERMGMT=/usr/sbin/useradd,/usr/sbin/usermod,\&lt;br /&gt;
 /usr/sbin/groupadd,/usr/sbin/groupmod,\&lt;br /&gt;
 /usr/sbin/userdel,/usr/sbin/groupdel&lt;br /&gt;
Обратите внимание на символ \, означающий, что строка имеет продолжение. Определив псевдоним, мы можем дать пользователю isaac&lt;br /&gt;
возможность запускать любую из этих программ таким образом:&lt;br /&gt;
 isaac ALL=(root) USERMGMT&lt;br /&gt;
Вы можете рассматривать USERMGMT как роль (хотя в документации к sudo этот термин не используется), определяющую команды,&lt;br /&gt;
которые играющий эту роль может выполнить.&lt;br /&gt;
&lt;br /&gt;
Можно определять псевдонимы пользователей (имя перечня пользователей) и присвоить им роли:&lt;br /&gt;
 User_Alias ADMINS tom,joe,sue&lt;br /&gt;
 ADMINS ALL=(root) USERMGMT&lt;br /&gt;
Таким способом мы объявили, что tom, joe и sue могут играть роль&lt;br /&gt;
USERMGMT.&lt;br /&gt;
Так же можно определить и список машин, используя диапазон IP-адресов или имена хостов:&lt;br /&gt;
 Host_Alias LOCALNET 192.168.0.0/255.255.255.0&lt;br /&gt;
 Host_Alias TRUSTEES snowhite,happy,sneezy&lt;br /&gt;
Теперь мы можем дать определенным пользователям привилегии&lt;br /&gt;
только на определенных машинах:&lt;br /&gt;
 ADMINS TRUSTEES=(root) USERMGMT&lt;br /&gt;
Что ж, на сегодня хватит. Вы узнали о том, как работает механизм&lt;br /&gt;
паролей в Linux, и, надеюсь, до вас дошло, почему необходимо придумывать сильные пароли. Вы увидели, как можно защититься от тривиальной атаки с физическим доступом, установив пароль на Grub. Вы&lt;br /&gt;
узнали, как избежать раздачи пароля root кому попало и использовать&lt;br /&gt;
sudo для того, чтобы позволить определенным пользователям запускать определенные программы с ограниченными привилегиями.&lt;/div&gt;</description>
			<pubDate>Sat, 20 Dec 2008 12:42:28 GMT</pubDate>			<dc:creator>Yaleks</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF84:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C</comments>		</item>
	</channel>
</rss>