Использование su и sudo
Иногда системному администратору необходимо совершать действия от лица суперпользователя. Заходить под учетной записью root в программе login не рекомендуется, обычно этот метод используется в крайних случаях, когда другие варианты невозможны. Предпочтительней получать привелигии суперпользователя во время сеанса работы из под учетной записи обычного пользователя. На системном уровне подобная схема реализуется с помощью механизма setuid. Команд, способных предоставить обычному пользователю права суперпользователя, две --- su и sudo.
su
Команда su (switch user) позволеят получить права любого пользователя, при условии, что вам известен пароль этого пользователя.
Существует 4 режима работы su:
restricted --- выполнять su имеет право только root;
wheel --- выполнять su имеют право толькопользователи, входящие в группу wheel;
wheelonly --- использовать su могут все, но лишь пользователи, входящие в группу wheel, могут получать с её помощью права суперпользователя;
- public --- ограничения отсутствуют, любой пользователь может с использованием su получить права любого другого пользователя.
В AltLinux команда su, выполненная без параметров, дает права суперпользователя, не меняя при этом окружения. Чтобы изменить окружение, то есть запустить login shell соответствующего пользователя, необходимо использовать su -. Подробнее о том, что такое login shell и окружение, будет рассказано в следующем парграфе.
Login shell
Когда пользователь начинает сеанс работы с системой, в первую очередь запускается командный интерпетатор, указанный в /etc/passwd. Если для входа в систему и работы используется графический интерфейс в качестве основного, то кроме запуска самого командного интерпретатора, в нем выполняются скрипты инициализации графической сессии. Процесс этого командного интерпретатора отличается от процессов других шеллов, запущенных пользователем. Этот процесс называют login shell. В списке процессов к его имени в начале приписывается -. Login shell выполняет определенные дополнительные действия, например, устанавливает переменные окружения UID и GID.
sudo
Команда sudo обладает более широкими возможностями, чем su. Она позволяет уточнять, какие категории пользователей могут пользоваться учетными записями каких пользователей, а также ограничивать список команд, которые могут исполняться таким образом. Например, в процессе лекций, sudo использовлась для разрешения монтирования cdrom.
По умолчанию sudo сохраняет окружение пользователя, но это поведение можно изменить (таким образом можно реализовать запуск X-приложений от учетной записи root).
/etc/sudoers
/etc/sudoers --- конфигурационный файл для sudo. Редактируется этот файл командой visudo. Будучи запущенной без каких-либо предварительных действий, эта команда откроет /etc/sudoers в редакторе vi. Для изменения используемого редактора необходимо указать желаемый редактор в переменной окружения EDITOR.
В этом файле задаются пользователи, группы пользователей, команды, которые они могут выполнять, и прочие ограничения. Синтаксис /etc/sudoers подробно описан при помощи EBNF в man sudoers.
Рассмотрим простой, однако часто встречающийся на практике пример --- как дать возможность пользователям, входящим в некоторую группу(например, администраторам), выполнять произвольные команды, указывая при этом только собственный пароль:
%admin ALL=(ALL) ALL
Символ % означает, что admin --- название группы, а не имя пользователя.
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
End date |
50 |
1 |
1 |
1 |
|
1 |
|
|