[devel] suid-root files
Grigory Batalov
=?iso-8859-1?q?bga_=CE=C1_altlinux=2Eru?=
Ср Июл 16 16:34:29 MSD 2003
On Wed, 16 Jul 2003 11:51:17 +0400
Stanislav Ievlev <inger на altlinux.org> wrote:
> > А как быть, если программа рассчитывает быть запущенной
> > как SUID-root? В пакете Amanda семь таких программ.
> > Sisyphus_check ругается.
> sisyphus_check ругается не на то что они SUID (кстати обязательно
> проверьте, действительно, ли нужен SUID, можно ли перейти на SGID схему?)
Без правки исходников не удастся. Впрочем, программы
при запуске проверяют uid запускавшего и выходят с ошибкой,
если это не amanda. Так что риск немного снижается.
> а на то что они доступны на чтение другим пользователям.
> Правильные права должны быть 2711 и 4711 соответственно.
А можно 4710? Вот так будет правильно?
amanda.spec:
---
%install
...
# Control settings
%__mkdir_p %buildroot%_sysconfdir/control.d/facilities
for i in %_libdir/amanda/dumper %_libdir/amanda/planner %_sbindir/amcheck \
%_libdir/amanda/calcsize %_libdir/amanda/killpgrp \
%_libdir/amanda/rundump %_libdir/amanda/runtar; do
PROGNAME=`basename $i`
%__cat > %buildroot%_sysconfdir/control.d/facilities/$PROGNAME << EOF
#!/bin/sh
. /etc/control.d/functions
BINARY=$i
new_fmode public 4710 root disk
new_fmode restricted 700 root root
control_fmode "\$BINARY" "\$*" || exit 1
EOF
done
%__chmod 0755 %buildroot%_sysconfdir/control.d/facilities/*
...
%pre client
[ $1 -eq 1 ] || /usr/sbin/control-dump calcsize killpgrp rundump runtar
%post client
%post_ldconfig
[ $1 -eq 1 ] || /usr/sbin/control-restore calcsize killpgrp rundump runtar
%pre server
[ $1 -eq 1 ] || /usr/sbin/control-dump dumper planner amcheck
%post server
%post_ldconfig
[ $1 -eq 1 ] || /usr/sbin/control-restore dumper planner amcheck
...
%files server
%attr(4710,root,disk) %_libdir/amanda/dumper
%attr(4710,root,disk) %_libdir/amanda/planner
%attr(4710,root,disk) %_sbindir/amcheck
%config %_sysconfdir/control.d/facilities/dumper
%config %_sysconfdir/control.d/facilities/planner
%config %_sysconfdir/control.d/facilities/amcheck
...
%files client
%attr(4710,root,disk) %_libdir/amanda/calcsize
%attr(4710,root,disk) %_libdir/amanda/killpgrp
%attr(4710,root,disk) %_libdir/amanda/rundump
%attr(4710,root,disk) %_libdir/amanda/runtar
%config %_sysconfdir/control.d/facilities/calcsize
%config %_sysconfdir/control.d/facilities/killpgrp
%config %_sysconfdir/control.d/facilities/rundump
%config %_sysconfdir/control.d/facilities/runtar
...
---
В итоге получим примерно следующие control-файлы:
#!/bin/sh
. /etc/control.d/functions
BINARY=/usr/sbin/amcheck
new_fmode public 4710 root disk
new_fmode restricted 700 root root
control_fmode "$BINARY" "$*" || exit 1
> Обязательно повесьте эту штуку на control и ещё лучше по умолчанию
> включать restricted режим для control.
А как это сделать, или оно так и есть по умолчанию?
--
Григорий Баталов,
группа техподдержки
ОАО "Ковдорский ГОК"
Подробная информация о списке рассылки Devel