Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
if (execvp(SHELL, argv/*, envp*/)) {
perror("");
}
}
Поскольку вызов chroot может выполнять только суперпользователь, программу необходимо устанавливать с битом suid. После вызова привилегии суперпользователя больше не нужны: программа устанавливает эффективные идентификаторы пользователя и группы (euid и egid) в соответствии реальным, а затем запускает оболочку /bin/sh.
Вот соответствующий Makefile:
all:
cc -o chrootsh chrootsh.c
install: all
install -m 4555 chrootsh /bin/chrootsh
@if [ -z `grep "/bin/chrootsh" /etc/shells` ] ;
then
echo "/bin/chrootsh" >> /etc/shells ;
fi
clean:
rm chrootsh
Не забудьте сменить оболочку пользователя на /bin/chrootsh. Вся последовательность действий будет такой:
backup# make install clean
backup# ./makechroot.sh backup
backup# pw usermod backup -s /bin/chrootsh
Теперь можно зайти с хоста srv и убедиться, что все работает:
srv# ssh backup@backup
backup$ echo /*
/bin /usr
Эта команда показала содержимое текущего корневого каталога. Если вызов chroot прошел успешно, это каталог ~backup.
Процедура резервного копирования некоего каталога теперь сводится примерно к следующему: