Re: ntfs-3g и монтирование непривилегированным пользователем
Dmitrii Kashin -> debian-russian@lists.debian.org @ Mon, 10 Sep 2012 15:22:00 +0400:
>> >>>> Я подозреваю, что вариант с sudo окажется более безопасным, чем suid на
>> >>>> mount.ntfs-3g, потому что самозащиту оного хелпера проверяли куда
>> >>>> меньше, чем самозащиту mount и sudo. Я, в частности, сильно сомневаюсь,
>> >>>> что он вообще умеет смотреть в fstab.
>> >>
>> >>> Я думаю, что Вы, конечно, правы, но мне видится странным, что vfat я
>> >>> могу дать пользователю разрешение монтировать, просто подправив
>> >>> /etc/fstab и указав в соответствующем месте опцию user, а для
>> >>> монтирования флешки с ntfs мне приходится прибегать к ухищрениям с sudo.
>> >>
>> >> Файловая система vfat обрабатывается модулем ядра.
>> >> Файловая система ntfs-3g обрабатывается fuse, не имеющем особого
>> >> отношения к ядру.
>> >> Потому и ухищрения с добавлением пользователей в группу fuse.
>>
>> DK> Ну да, это так. Вот только разработчики ntfs-3g прямым текстом говорят,
>> DK> что опции user и users в /etc/fstab не работают, потому что mount
>> DK> вызывает ntfs-3g с пониженными привилегиями, считают это проблемой
>> DK> mount, а не ntfs-3g, и рекомендуют именно suid.
>>
>> Скажем так, я, в отличие от них, не считаю это _проблемой_ mount. mount
>> прав, imho.
>>
>> И я, в отличие от авторов ntfs-3g, не считаю suid правильным подходом по
>> вышеотквоченной причине, которую, если надо, могу расписать подробнее.
DK> Я, пожалуй, попрошу Вас объяснить подробнее. В чем принципиальное
DK> отличие делегирования прав процессу ntfs-3g через suid-бит и через sudo?
DK> Вот как, например, это работает у меня сейчас:
DK> --------------------
DK> $ whoami
DK> freehck
DK> $ groups
DK> freehck floppy sudo audio users fuse
DK> $ ls -l `which ntfs-3g`
DK> -rwsr-x--- 1 root fuse 141112 Сен 9 13:48 /bin/ntfs-3g
DK> $ ls -l /dev/sdc1
DK> brw-rw---T 1 root floppy 8, 33 Сен 10 15:03 /dev/sdc1
DK> $ grep flash /etc/fstab
DK> /dev/sdc1 /mnt/flash ntfs-3g
DK> noauto,rw,users,gid=users,fmask=0117,dmask=0002 0 0
DK> $ mount /mnt/flash/
DK> $ echo $?
DK> 0
DK> $ umount /mnt/flash/
DK> $ echo $?
DK> 0
DK> --------------------
DK> Таким образом, монтировать ntfs-3g имеют право только пользователи
DK> группы fuse. А монтировать они, разумеется, имеют право только те
DK> устройства, на которые они обладают правом записи.
DK> То есть у меня, равно, как и в случае с sudo, правом монтирования
DK> обладает группа пользователей, которым такая возможность была
DK> предоставлена администратором. Плюс еще они ограничены списком групп тех
DK> устройств, которые им надо монтировать. И мне видится такое ограничение
DK> достаточным.
А они точно ограничены? Или они все-таки могут позвать, скажем,
ntfs-3g -o какие,угодно,опции /dev/sdc1 /usr
при такой настройке? А то suid я вижу, а упоминаний про /etc/fstab в
man ntfs-3g - нет, и с какого перепугу он не сможет выполнить эту
команду, я не очень понимаю...
DK> Однако и в случае с suid-битом, и в случае c sudo, ntfs-3g работает с
DK> правами root. Так в чем же разница? Почему sudo как решение проблемы
DK> по-вашему лучше, чем suid?
А sudo позволяет сказать, что Васе можно выполнить mount /mnt/flash,
который сводится к ntfs-3g /dev/sdc1 /mnt/flash но нельзя выполнить
ntfs-3g - /dev/sdc1 /usr. В смысле, я точно уверен, что позволяет.
Ну и да, про отъем этих прав обратно в параллельном письме тоже верно
замечено. На выдачу прав это тоже распространяется, кстати - невозможно
сказать пользователю посреди его сеанса "я тебе дал права, можешь
работать". Сеанс придется закрывать, либо обучать пользователя
ухищрениям вида ssh localhost или (все тот же самый) sudo -u user.
Reply to: