Права суперполозователя в ALTLinux

Операционки на базе Unix
Post Reply
User avatar
ИМХО
Бытовой хакер
Бытовой хакер
Posts: 975
Joined: 02 Mar 2010, 13:21
ОС: Maui 2
Location: Чолпон-Ата
Contact:

Права суперполозователя в ALTLinux

Post by ИМХО » 10 Mar 2010, 17:07

Вопрос: Как перейти в режим суперпользователя (переключиться в root)?

Ответ: В терминале наберите команду su -

Пояснения:
При переходе в режим суперпользователя командой su происходит просто вызов командного интерпретатора с правами root. При этом значения переменных окружения, в частности $PATH, остается таким же, как у пользователя. То есть в переменной $PATH не окажется каталогов /sbin, /usr/sbin, и без указания полного имени будут недоступны команды route, lilo, mkswap и другие. Более того, переменная $HOME будет указывать на каталог пользователя, и все программы, запущенные в режиме суперпользователя, сохранят свои настройки с правами рута в каталоге пользователя, что в дальнейшем может вызвать проблемы.

Вот часть текста man su
Su сконфигурирована для работы посредством Linux-PAM API. По сути дела
она инициализирует саму себя как сервис "su" с Linux-PAM, и использует
для аутентификации сконфигурированные модули account, authentication и
session с последующим вызовом сессии с подменой идентификатора
пользователя. Заметьте, что в отличии от login(1), если пароль(ли)
пользователя устарели (устаревают), то новый пароль запрошен не будет.
В действительности, любая ошибка из компонента Linux-PAM accounting
будет фатальна. Дело обстоит так для всех пользователей, кроме
суперпользователя. В случае с суперпользователем обнаружение ошибки
вызовет отображение предупреждения, однако su продолжит вызов оболочки
запрошенного пользователя.

Чтобы избежать этого, следует использовать su -. В этом режиме su запустит командный интерпретатор в качестве login shell (подробнее см. man bash /INVOCATION), и он будет вести себя в точности так, как если бы в систему залогинился root.

Для раздачи ограниченных прав суперпользователя применяется утилита sudo
Last edited by ИМХО on 10 Mar 2010, 17:13, edited 1 time in total.
User avatar
ИМХО
Бытовой хакер
Бытовой хакер
Posts: 975
Joined: 02 Mar 2010, 13:21
ОС: Maui 2
Location: Чолпон-Ата
Contact:

Re: Права суперполозователя в ALTLinux

Post by ИМХО » 10 Mar 2010, 17:12

Для многих пользователей команда "su" - синоним получения прав суперпользователя. Это не совсем верно. Команда "su", сама по себе, лишь вызывает оболочку другого пользователя в системе, - т.е позволяет получить права другого пользователя, который должен быть указан аргументом к этой команде. В этом достаточно удостоверится введя команду "su root" или "su [имя_вашего_пользователя]". Однако, т.к 99% использования команды "su" приходится на получение привилегий суперпользователя, логичным было сделать пользователя "по умолчанию" - которым и является суперпользователь.

У команды "su" есть один очень важный параметр "-" (тире), который существенно изменяет её работу. При выполнении "su -" вызывается оболочка регистрации в системе. Это часто сбивает с толку новичков: "su" - предоставляет Вам только права другого пользователя, "su -" же позволяет войти под другим пользователем. Второе означает, что вместе с предоставлением прав у вас изменится текущий рабочий каталог, домашний каталог и переменные окружения. Учитывая, что "по умолчанию" в ALT Linux каталоги содержащие утилиты для выполнения административных задач - /sbin и /usr/sbin включены в системную переменную PATH только для суперпользователя, для выполнения административных задач следует использовать команду "su -".

Более того, я рекомендую вам всегда использовать именно последнюю конструкцию. Использование команды "su" без параметра "-" чревато проблемами - запущенная таким образом программа, сохраняет свои настройки в каталоге вызывающего, а не вызываемого пользователя (помните, вам предоставляются только права). Если этот пользователь root - вы получите в своем домашнем каталоге файлы настроек программы к которым не будете иметь доступа. Следует ли говорить, что запустив в дальнейшем ту же самую программу из под своего аккаунта вы, в лучшем случае, не сможете сохранить своих настроек, в худшем - программа вообще не запустится. Лучше вообще не использовать команду "su" для запуска программ со своими переменными окружения, для этого более подходит команда "sudo".
Post Reply