Право root’а

Самый простой способ получить права администратора — это авторизоваться в приглашении текстовой консоли под логином root с вводом соответствующего пароля (который почти во всех дистрибутивах задаётся при инсталляции). Однако в данном случае просто не означает хорошо.

О том, что не следует выполнять под root’ом повседневную работу, говорилось и писалось не меньше, чем о необходимости регулярного резервного копирования. Кроме абстрактных (и подчас игнорируемых начинающими пользователями) соображений о безопасности, риске случайного повреждения системы и пользовательских данных, работа с правами администратора банально неудобна.

Во-первых, на консоль администратора могут поступать всякого рода системные сообщения (например, об авторизации пользователей, подключении устройств и так далее), важные для него, но бесполезные (и даже мешающие) обычному пользователю.

Во-вторых, в большинстве современных десктоп-ориентированных дистрибутивов используется графический вход в систему через менеджеры сеансов вроде Gdm или Kdm. И обычно они по умолчанию сконфигурированы так, что не допускают авторизации root’ом в сеансе оконной системы X. Что, конечно, можно изменить в настройках или обойти — переключившись в текстовую консоль и зайти под аккаунтом суперпользователя там. В принципе, можно даже от имени администратора запустить второй Иксовый сеанс — по умолчанию часто запрещено и это, но в мире FOSS, как известно, нет таких умолчальных настроек, которые нельзя было бы изменить.

Весь вопрос в том, а нужно ли это делать? Честно говоря, я с трудом представляю себе, ситуацию, требующую запуска Иксового сеанса именно от лица администратора — разве что в KDE, для придания приложениям, вызываемым в интегрированных средах пунктами меню типа Edit as root, привычного внешнего вида. Да и то, проще скопировать соответствующие настройки из домашнего каталога пользователя в каталог /root и, при необходимости, чуть подкорректировать их.

В-третьих, существуют дистрибутивы, в которых пароль root’а по умолчанию вообще не задаётся и, соответственно, прямой доступ к его аккаунту оказывается невозможным. Типичный пример этому — Ubuntu и все её производные. Сходная политика, насколько мне известно, проводится и в дистрибутивах Altlinux. Конечно, и это обходимо, причём разными способами — ведь, вопреки расхожему мнению, сам по себе аккаунт суперпользователя в Ubuntu существует -- нет только его пароля.

Наконец, существуют и системы, в которых аккаунта суперпользователя по умолчанию действительно нет. Примером тому -- OpenSolaris, где разграничение полномочий пользователей реализовано по модели ролевого доступа. Хотя и здесь при желании учётную запись полноценного root-оператора.

Однако, опять-таки, надо ли это народу -- пускаться на всякого рода ухищрения для того, чтобы авторизоваться непосредственно root'ом? Разве что дабы на вопрос:

Юзверь я дрожащая, или право root'а имею?

гордо ответить по образцу Раскольникова. И подчас с теми же печальными последствиями.

Разумеется, если повседневная работа пользователя заключается в беспрерывном реконфигурировании системы, установке программного обеспечения или тестировании оборудования, требующего прямого доступа к устройствам, авторизация суперпользователем может оказаться необходимостью. Однако большинству обычных пользователей административные привилегии требуются лишь время от времени. И именно на это время их и следует получать. Впрочем, это относится и к пользователям указанной выше категории — разве что время их root’овых полномочий может быть неограниченно длинным.

В связи с этим в современных Unix-подобных системах наблюдается тенденция всё больше и больше ограничивать доступ пользователей к административным привилегиям. В какой-то мере она коррелирует с их десктопизацией и связанным с ней падением уровня начальной подготовки пользователей. И не надо рассматривать это как ущемление их, пользователей, прав: ибо на локальной, тем более домашней, машине пользователь сам себе администратор, и всегда тем или иным способом соответствующие полномочия может получить. В случаях, когда они нужны по делу, а не куражу ради.

Так вот, основными средствами для получения прав администратора обычным пользователем являются специальные утилиты su и sudo (вместе с дополняющими последнюю утилитами visudo и sudoedit). Первая служит преимущественно для перехода в режим суперпользователя на неопределённое время, вторая же — главным образом для исполнения единичных команд, требующих административного доступа (хотя на самом деле обе они могут использоваться и с той, и с другой целью). Что же до visudo и sudoedit — это узкоспециализированные команды, предназначенные для редактирования общесистемных конфигурационных файлов (в том числе и конфига самой sudo) обычным пользователем.

В интегрированных графических средах типа KDE и GNOME возможен доступ к административным действиям непосредственно из пользовательского сеанса. До недавнего времени средства такого доступа самостоятельного значения не имели, ибо базировались на механизмах либо su, либо sudo. Однако ныне во многих дистрибутивах Linux принята самостоятельная система разграничения полномочий, именуемая PolicyKit, каковой со временем будет посвящена специальная страница.

Есть и более изощрённые способы организации для простого пользователя доступа к действиям, требующим root’овых полномочий. Например, ролевое распределение прав, принятое, как уже было сказано, в OpenSolaris, или использование "политик" в системе SELinux, используемой.в RHEL и Fedora.


Содержание


Теги: