Май 162011
 

Так как я редко появляюсь на второстипенной работе, все удаленно делаю и лишний раз не хочеться ехать .
Решил дать доступ на серера для работы не кторым пользователям, но решил урезать ихнию активность в пределах их ней домашней диреткории.
Еще этот метод называют посадить в тюрьму, тоетсь пользак не сможет получить доступ по верх домашней директории.
Прежде всего проверим настройки ssh Subsystem sftp internal-sftp

#!/bin/sh
# Скрипт в помощь реолизации тюрьмы для пользователя
#
# Поехали
# Передаем в скрипт пользователя нашего
if [ "$user" = "" ] ; then
echo "    Usage: $0 [ username ]"
exit
fi
# выборка у нашего пользака парметр gid
gid=`more /etc/master.passwd | grep "$user" | cut -d ":" -f 4`
home=/home/$user
# определяем бинарные директории
bin="
/bin/chmod
/bin/cp
/bin/rm
/bin/pwd
/bin/df
/bin/date
/bin/echo
/bin/expr
/bin/ln
/bin/ls
/bin/mkdir
/bin/mv
/bin/ps
/bin/rmdir
/bin/csh
/bin/sh
/bin/cat
/bin/more
/usr/bin/awk
/usr/bin/diff
/usr/bin/du
/usr/bin/ee
/usr/bin/fetch
/usr/bin/find
/usr/bin/grep
/usr/bin/less
/usr/bin/sed
/usr/bin/sort
/usr/bin/scp
/usr/bin/tail
/usr/bin/touch
/usr/bin/uname
/usr/bin/uptime
/usr/bin/gunzip
/usr/bin/gzip
/usr/local/bin/unzip
/usr/bin/tar
/usr/bin/bzip2"
#
#Содания диретокрий
mkdir $home/bin
mkdir $home/etc
mkdir $home/lib
mkdir $home/libexec
mkdir $home/tmp
mkdir -p $home/usr/bin
mkdir -p $home/home/$user
mkdir -p $home/usr/local/bin
mkdir $home/usr/local/etc
mkdir $home/usr/local/share
#
# Копируем бинарники.
do
cp $bin_ $home$bin_
done
#
# Определяем какие библиотеки необходимо скопировать.
# Определяем список зависимостей от динамических библиотек.
for bin_ in $bin;
do
ldd $bin_ | awk '{print $3}' | grep "." >> /tmp/libs
done
#
# Копируем либы.
for bin_ in `ls /tmp/libs | sort | uniq`;
do
cp $bin_ $home/lib/
done
#
# Копируем необходимые файлы.
cp /etc/termcap /etc/resolv.conf /etc/nsswitch.conf $home/etc/
#
# Копируем /etc/profile и определяем названия консоли.
echo 'export TERMCAP=/etc/termcap' > $home/etc/profile
echo 'export PS1="(chroot)$PS1"' >> $home/etc/profile
#
# Копируем /etc/group
more /etc/group | grep $gid > $home/etc/group
#
# Создаем пользователя в нутри chroot окружения.
more /etc/master.passwd | grep "$user" > $home/etc/master.passwd
# Обновляем
pwd_mkdb -d $home/etc $home/etc/master.passwd
#
# Выставляем права на директории.
chown -R $user:$gid $HOME/
chown root:wheel $home
chmod 755 $home
chmod 777 $home/tmp
#
# Удаляем временно скопированные нами библиотеки.
rm -rf /tmp/libs
#
# END

  5 комментариев to “Скрипт в помощь chroot”

  1. В этом скрипте не хватает очистки /tmp директории от скопированных библиотек, добавьте очистку временно скопированных данных.
    А так нормально, я сам на подобие использую скрипт.

  2. Спасибо , что заметили мой косяк. забыл указать очистку директории.
    Исправил:
    rm -rf /tmp/libs

  3. #!/bin/sh
    # Скрипт в помощь реолизации тюрьмы для пользователя
    #Содания диретокрий
    реализации.
    директорий. и прочие грамматические/синтаксические ошибки.

  4. да ни как, не дойдут руки грамматику исправить.
    Обычно проблему решаешь в короткие сроки, и сразу по горячим следам пишешь заментку , что бы в дальнейшем не разбираться в проблеме,

  5. Спасибо.

 Leave a Reply

(required)

(required)

38 Запросов к базе. 0,433 Генерации страницы, 36MB Использование памяти.
Вы зашли с IP: 54.80.87.62