The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Монтирование не из под рута (mount() syscall)"
Версия для распечатки Пред. тема | След. тема
Форум Информационная безопасность
Исходное сообщение [ Отслеживать ]

"Монтирование не из под рута (mount() syscall)" +/
Сообщение от psea (?), 21-Мрт-09, 20:15 
Задался вопросом как примонтировать раздел не из под рута.
У программы mount есть опция user, которая позволяет монтировать ФС обычным пользователям. Работает эта опция просто, т.к. у файла /bin/mount установлен setuid бит, то /bin/mount просто изменяет euid на 0 и вызывает системный вызов mount(). Возник вопрос "зачем нужен setuid бит /bin/mount? нельзя ли примонтировать ФС без опции user?"
стал пробовать:
изменил права - rw-rw-rw user,user /dev/hda1
написал программку mymount которая вызывает mount("/dev/hda1", "/home/user/hda1",0,0)
вызываю её под user - не работает, вызываю под root - работает. Почему? ведь пользователь user имеет права на чтение файла /dev/hda1 и монтировать он его хочет в свой каталог. man 2 mount дал ответ на вопрос, оказывается "Appropriate privilege (Linux: the CAP_SYS_ADMIN capability) is required to mount and unmount file systems." Хорошо на тебе эту капабилити, выполнил "root# setcap cap_sys_admin+ep /home/user/mymount" и все заработало, пользователь user получил возможность монтировать /dev/hda1. потом сменил права для /dev/hda1 на такие:
rw-rw---- root,root /dev/hda1. запускаю свой mymount и раздел без проблем монтируется! как так ведь пользователь user не имеет права на чтение /dev/hda1! т.е. получается читать /dev/hda1 не могу, а вот монтировать (при наличии capability CAP_SYS_ADMIN) могу.
Уважаемые разъясните пожалуйста так оно и должно быть? или я где-то что-то упустил из виду?
Ответить | Правка | Cообщить модератору

Оглавление
Монтирование не из под рута (mount() syscall), psea, 21-Мрт-09, 20:15  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру