Процессы, права доступа

При доступе процесса к польз опред. id файла и опред. список групп, в которые входит польз-владелец процесса.

Сотв., алгоритм простой:

Изменять права дост. к файлам может только владелец. uid сменить нельзя, gid можно менять только из список своих групп.

Среди всех uid в системе выделяется один, процессы, выполняемые от лица которого, не исп. права доступа (система с доверенным субъектом). Если uid процесса равен 0, то он вып. от лица суперпольз и при доступе файла он его получает. Соотв, root может поставить права доступа чему угодно.

По этой причине крайне не рек. выполнять обыденные действия от лица рута. Зачем нужен суперпольз.? Для административных действий. Второе --- некие процессы, которые что-то с системой делают. Соотв, использование root'а стараются (особенно в OWL и ALT Linux) минимизировать.

Впрос: может ли поменять себе процесс uid? да, тлько если у него сначала был uid = 0. Для этго сущ. вызов setuid. Зачем это исп.: для логина исп. login или *dm. Они вып. от лица суперпольз. Псле логина порождается новый процесс, меняется uid и запускается шелл. Получается стройная система: какие-то программы запуск. под рутом, дальше они запущены от лица пользователей. А дальше уже uid наследуется. По этой причине польз., что бы он не делал, не может повысить себе права.

У этой стрйной арзитектуры есть один изъен --- часто польз. надо соверш. действия от лица суперпольз. При этом логиниться как рут чень не хочется, хчется всего лишь запустить пд рутом программу. Ещё дно типичное действие --- смена пароля, настройка. Ответ --- существует мех. получения прав суперпольз. обычным пользователем. При запуске процесса насл. uid рдительскго прцесса за одним иск. --- если у файла установлен setuid-бит, и этот файл запускемый, то получ. процесс получает uid не пользователя, а файла. Программа sudo позв. определить список команд, который мжно вып. польз. с несвоими правами. Естественно, команда sudo должна выполняться с правами рута. Есть более простая программа, su, которая позв. запустить процесс с чужими правами.

Есть некоторое количесвто программ, которым необх. в процессе работы изм. свой uid. Поэтму эти прграммы при старте должны плучить uid 0. В ls -l символ s озн., чт есть x-бит и есть бит setuid.

Аналогично setgid --- добавление gid для процесса из gid файла. Типичные usecases --- passwd в альте и игры.

Из всего сказанного: вы можете удалить файл из своего каталога, даже если он чужой. Таким образом появляется опасное место --- /tmp. Если бы не одно извращение, то омжно было бы удалить чужой файл. Извращение --- sticky bit --- нельзя удалять чужие файлы.


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

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

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

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

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

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

Level

Maintainer

Start date

End date

0

1

1

1

1

MaximByshevskiKonopko, VladimirLysikov, MaximByshevskiKonopko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex