Стандартная ситуация на Макинтоше, работающем под управлением OS X, во многом похожа на Windows Vista, со включенным контролем учетных записей пользователей (User Account Control – UAC): пользователь лишен административных прав, учетная запись администратора (пользователя root) отключена, и у пользователя запрашивается повышение полномочий, когда он делает что-то, требующее полномочий администратора. Как управлять учетной записью администратора и использовать ее при необходимости в Windows Vista, читателям вероятно известно. Но для тех, кто не знаком с компьютерами Макинтош, это может быть понятно не сразу.
На Макинтоше для выполнения административных функций (особенно в терминале) необходимо иметь возможность отдать команду sudo, что требует проверки подлинности. Это несложно – компьютеры Макинтош изначально настроены так, что для предоставления необходимой проверки подлинности достаточно вновь ввести свой пароль.
Чересчур несложно, скажет кое-кто, поскольку, как и в случае Windows, это означает, что если пароль угадан, украден или взломан, и он предоставляет доступ к системе локально или через SSH, злоумышленник может завладеть компьютером, как если бы у него были права пользователя root (пользователь root – эквивалент администратора в Windows). Что еще хуже, если злоумышленник запустит интерпретатор команд, используя "sudo –s", практически ничего не будет выводиться в журнал системы.
Так как же можно давать пользователям Макинтошей нужные им полномочия по мере необходимости и одновременно улучшать безопасность? Как ни странно это звучит, путем включения учетной записи пользователя root.
По умолчанию учетная запись пользователя root в OS X отключена, что следует общим правилам безопасности. Проблема в том, что в этом состоянии, как отмечалось выше, пользователю достаточно лишь заново ввести свои учетные данные, чтобы получить повышенные полномочия. Чтобы гарантировать невозможность получения доступа уровня пользователя root (администратора) путем простого повторного введения учетных данных, нужно включить учетную запись пользователя root, дав учетной записи "root" пароль. Чтобы сделать это, используйте свою служебную программу каталога или выдайте следующую команду из терминала:
sudo passwd root
Затем выполните запрос на ввод нового пароля (см. рис. 1). Не забывайте регулярно менять пароль.
Рис. 1. Создание пароля для пользователя root
Со включенной учетной записью пользователя root получение доступа уровня пользователя root (администратора) путем простого повторного введения учетных данных более невозможно. Это делает возможным более детализированную выдачу полномочий, поскольку теперь для выполнения административных функций необходимо вызвать отдельную учетную запись с повышенными полномочиями. Этой учетной записью можно управлять и защищать ее независимо от обычной учетной записи пользователя путем использования решений от сторонних производителей для случайного выбора и безопасного хранения пароля учетной записи и предоставления делегированного и подвергнутого аудиту интерфейса для получения пароля по мере необходимости.
Разобравшись с этим, необходимо убедиться, что команда sudo доступна тем, кому она нужна. Помните, что в OS X имеются три уровня пользователей: пользователи, администраторы и пользователь root. По умолчанию пользователи не могут выдавать команды sudo; это могут делать только администраторы и пользователь root. Если нежелательно, чтобы пользователи имели полномочия администраторов, но им нужна возможность выдавать команды sudo по мере необходимости, необходимо включить команды sudo для пользователей на своей системе OS X. Это можно сделать либо изменив файл /private/etc/sudoers, чтобы он включал конкретных пользователей, либо удалив комментарий к строке примера на рис. 2, который начинается с '%wheel' и затем добавляет пользователей к группе wheel.
Рис. 2. Включение sudo для указанных пользователей
Выполнив приведенные здесь указания, можно сделать возможным управление паролем пользователя root систем Макинтош автоматическими процессами, случайно создающими новый пароль на регулярной основе или вслед за восстановлением пароля. Тем самым системы могут сохранять соответствие политикам компании, а также требованиям, выдвинутым стандартами Payment Card Industry (PCI) Data Security Standard, законом Сарбейнса-Оксли, законом об отчетности в области медицинского страхования и другим. Можно также предотвратить бездумное повышение пользователями и администраторами уровня собственных привилегий путем простого повторного введения пароля.