Различия между версиями 6 и 7
Версия 6 от 2008-08-08 04:47:30
Размер: 7141
Редактор: eSyr
Комментарий:
Версия 7 от 2008-08-11 14:50:55
Размер: 7355
Редактор: Allena
Комментарий: .уес
Удаления помечены так. Добавления помечены так.
Строка 3: Строка 3:
Что ещё нужно системному администратору --- совершать действия от лица суперпользвателя. Нехорошо заходить в программе login от лица root. Обычно это требуется, если никаких других вариантов нет. А в принципе рекомендуется заходить в пользователя, а потом получать рутовые привилегии. Как это делать: мы знаем, что у нас есть такая штука как setuid, и, видимо, надо использовать какую-то программу, которая будет сетуидная, запуская её, она будет от лица рута, и дальше уже сможет дать пользователю права. Таких команд две: su и sudo.
Иногда системному администратору необходимо совершать действия от лица суперпользователя. Заходить под учетной записью root в программе login не рекомендуется, обычно этот метод используется в крайних случаях, когда другие варианты невозможны. Предпочтительней получать привелигии суперпользователя во время сеанса работы с аккаунтом обычного пользователя. На системном уровне подобная схема реализуется с помощью механизма setuid. Команд, способных предоставить обычному пользователю права суперпользователя, две --- su и sudo.
Строка 6: Строка 7:
Команда {{{su}}} (switch user) позволеят получить права любого пользователя, при условии, что вам известен пароль этого пользователя.
Строка 7: Строка 9:
Первая, switch user, позволяет получить права любого пользователя, введя его пароль. На su существует control, который позволяет делать четыре вещи: restricted --- только рут может делать su, wheel --- только члены группы wheel, wheelonly --- запускать могут все, только члены группы wheel могут приобретать рута, и public --- все могут запускать для всего. Команда su позволяет всего лишь выполнить шелл, запущенный от указанного пользователя, или одну команду от оного. ALT-specific: команда su без параметров даёт только права суперпользователя, но окружение остаётся тем же. По идее это несекьюрная штука, поскольку можно модифицировать окружение таким образом, что выполнив su, из под рута что-нибудь не то сделаете. Чтобы при выполнении команды su получить окружение пользователя (войти в login shell пользователя), над делать su -. Существует 4 режима работы {{{su}}}:
 *restricted --- выполнять {{{su}}} имеет право только root;
 *wheel --- выполнять {{{su}}} имеют право толькопользователи, входящие в группу wheel;
 *wheelonly --- использовать {{{su}}} могут все, но лишь пользователи, входящие в группу wheel, могут получать с её помощью права суперпользователя;
 *public --- ограничения отсутствуют, любой пользователь может с использованием su получить права любого другого пользователя.

В AltLinux команда {{{su}}}, выполненная без параметров, дает права суперпользователя, не меняя при этом окружения. Чтобы изменить окружение, то есть запустить login shell соответствующего пользователя, необходимо использовать {{{su -}}}. Подробнее о том, что такое login shell и окружение, будет рассказано в следующем парграфе.
Строка 10: Строка 18:

Когда пользователь регистрируется в системе, первым делом запускается shell, который прописан в passwd. Когда это было в терминале, это было логично. Когда пошло поветрие делать графический интерфейс в качестве основного, и регистрирование в системе тоже графическое, то всё равно запускатеся shell, который, к примеру, выполняет скрипты инициализации графической сессии пользователя, и дальше всё остальное. Этот шелл отличается от других шеллов, запущенных пользователем, даже именем в списке процессов (к нему приписывается `-` в начале).

Login shell замечает, что он login, и выполняет несколько больше файлов.
Когда пользователь начинает сеанс работы с системой, в первую очередь запускается командный интерпетатор, указанный в /etc/passwd. Если для входа в систему и работы используется графический интерфейс в качестве основного, то кроме запуска самого командного интерпретатора, в нем выполняются скрипты инициализации графической сессии. Процесс этого командного интерпретатора отличается от процессов других шеллов, запущенных пользователем. Этот процесс называют login shell. В списке процессов к его имени в начале приписывается `-`. Login shell выполняет определенные дополнительные действия, например, устанавливает переменные окружения UID и GID.
Строка 40: Строка 45:
|| 20 || 1 || 1 || 1 || || 1 || MaximByshevskiKonopko, [[Allena]], MaximByshevskiKonopko || || || || 30 || 1 || 1 || 1 || || 1 || MaximByshevskiKonopko, [[Allena]], MaximByshevskiKonopko || || ||

Использование 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 намного хитрее. Она позволяет выполнять заданные команды от лица заданных пользователей заданным категориям пользователей или пользователям Лектор, например, пользуется командой sudo для разрешения монтирования cdrom.

sudo по умолчанию сохраняет окружение пользователя (в принципе, работу с окружением при исполнении команды через sudo можно настроить), тем самым становится возможно запускать X-приложения от root'а.

/etc/sudoers

Конфигурационный файл для программы sudo. Важно помнить, что редактировать его необходимо при помощи команды visudo, которая, будучи запущена без каких-либо модификаций, откроет этот файл в редакторе vi. Пользователи, не знакомые с vi, могут при запуске этой команды указать желаемый редактор в переменной окружения EDITOR.

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

Простой пример, который используется довольно часто --- дать возможность пользователям некоторой группы (администраторам) выполнять произвольные команды (вводя при этом для подтверждения собственный пароль):

%admin ALL=(ALL) ALL

Здесь % обозначает, что admin --- идентификатор группы, а не пользователя.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

30

1

1

1

1

MaximByshevskiKonopko, Allena, MaximByshevskiKonopko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080731/02SuSudo (последним исправлял пользователь MaximByshevskiKonopko 2008-10-09 22:11:07)