[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: