Ключевые слова:user, (найти похожие документы)
Date: Thu, 14 Mar 2002 07:06:34 +0000 (UTC)
From: Valentin Nechayev <netch@segfault.kiev.ua>
Newsgroups: fido7.ru.unix.bsd
Subject: Разграничение привилегий в системе
> - теперь хочу разрешить ему выполнять mount.
Лучше всего поставь sudo и явно разреши этому пользователю исполнять
mount с нужными параметрами от рута.
> Что мне надо сделать и где почитать?
> И где можно почитать про то что может выполнять польватель, а что рут?
Есть такие базовые кордоны:
1. Что ядро разрешает делать только при uid равному 0.
Например: бутить/стопить, монтировать/демонтировать, переключаться в других
пользователей, вызывать chroot и jail, менять время, биндить порты ниже
1024, открывать raw sockets, ставить/снимать system flags на файлы
(schg, sunlnk и так далее), менять дисковые квоты, читать/писать файлы
независимо от прав доступа на них, стрелять любыми сигналами по любым
процессам, трейсить любые процессы, и так далее.
2. Что регулируется правами доступа на файлы и файловые "указатели" устройств.
Например,
root@iv:/CD##ls -l /dev/ad0
crw-r----- 2 root operator 116, 0x00010002 Jan 27 22:25 /dev/ad0
root может делать все, группа operator - читать. Но никто не мешает руту
изменить права на любые другие - например, дать всем писать на этот раздел;
от этого должен защитить здравый смысл админа и недырявость системы.
3. Что регулируется установившейся конфигурацией, но ограничивается ядром.
Например, kill -2 1 вызовет перегрузку машины, но никто кроме рута не
может сделать так потому, что процесс номер 1 работает от рута.
Если же squid работает от nobody и ты тоже зашел как nobody, никто
не помешает стрельнуть по нему сигналом.
4. Что регулируется шлюзами. su может все, но она явно так написана, чтобы
стать рутом мог только тот, кто входит в группу 0. sudo - разрешает команды
соответствии со своим конфигом. suexec (который у apache) разрешает запускать
что угодно, но только тому пользователю, от которого должен работать апач,
только в определенном каталоге с подкаталогами, только при целевом
пользователе с uid'ом в заданных пределах, и еще с кучей ограничений.
qmail-lspawn дает запускать только одному пользователю только одну команду,
но от рута; этого достаточно для доставки локальным пользователям.
P.S. Это где-то в таком виде писалось? А то вместо кидания URL растекаюсь
мыслию по древу...
/netch