Кажется, что ssh-агент не работает при определении источника файла. У Вас есть строки 46 и 47 прокомментированных:
# eval `ssh-agent`
# ssh-add ~/.ssh/id_rsa
Попытайтесь не комментировать те строки.
Вы могли бы хотеть настроить chroot взгляд тюрьмы на Jailkit.
Тюрьма ch anges корень, как в /
, к новому пути.
Как простой пример как запуск.
Прежде всего Вы, скорее всего, хотели бы иметь chroot каталог на отдельном разделе - таким образом, что пользователь не может заполнить Ваш системный раздел.
Но ради простоты:
Сделайте chroot каталог:
# mkdir /usr/chroot_test
# cd /usr/chroot_test
Сделайте системные каталоги:
# mkdir bin etc home lib var
Добавьте некоторые основные инструменты:
Здесь можно использовать ldd
найти зависимости.
# ldd /bin/bash
linux-gate.so.1 => (0xb774d000)
libtinfo.so.5 => /lib/libtinfo.so.5 (0xb770a000)
libdl.so.2 => /lib/libdl.so.2 (0xb7705000)
libc.so.6 => /lib/libc.so.6 (0xb755a000)
/lib/ld-linux.so.2 (0xb774e000)
Скопируйте их в lib chroot:
# cp /lib/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux.so.2} lib/
Теперь введите chroot
# chroot /usr/chroot_test
bash-4.2# ls
bash: ls: command not found
bash-4.2# pwd
/
bash-4.2# exit
exit
Хорошо. Работы. Добавьте еще некоторые инструменты:
# sed '/=>/!d;/=>\s*(/d;s/.*=>\s*\([^ ]*\) .*/\1/' < <(ldd /bin/{ls,cat,vi}) | sort -u)
... copy
И т.д.
Затем добавьте вход в систему chroot (http://kegel.com/crosstool/current/doc/chroot-login-howto.html).
Но, как упомянуто, при помощи jailkit это может быть упрощено: http://olivier.sessink.nl/jailkit/howtos_chroot_shell.html.
Можно использовать Списки управления Доступом к файлу для удаления полномочий от определенных пользователей. Команда является setfacl, который Наборы (Создает) ACL на Файле.
Использование в качестве примера:
root@host:/tmp# date > f1
root@host:/tmp# ls -l f1
-rw-r--r-- 1 root root 30 Mar 28 12:12 f1
root@host:/tmp# setfacl -m u:johan:0 f1
root@host:/tmp# ls -l f1
-rw-r--r--+ 1 root root 30 Mar 28 12:12 f1
Заметьте + символ после полномочий. Это говорит Вам, что файлу установили ACL. Опция команды setfacl-m говорит этому создавать/изменять ACL. Аргумент "u:johan:0" заставляет Пользовательскую Запись для пользователя "johan" быть установленной на "0", который является сокращением для режима полномочий "0 0 0", эквивалентный "-------" для традиционного "rwx rwx rwx" наборы полномочий.
root@host:/tmp# getfacl f1
# file: f1
# owner: root
# group: root
user::rw-
user:johan:---
group::r--
mask::r--
other::r--
root@host:/tmp# cat f1
Thu Mar 28 12:12:07 SAST 2013
root@host:/tmp# exit
После Выхода команды имеют полномочия указанного пользователя, например, "johan"
johan@host:/tmp> cat f1
cat: f1: Permission denied
Теперь сказавший все относительно это быть очень осторожным. Без разбора удаляющий доступ от / и т.д. вызовет все виды отказов, и пользователи, вероятно, не смогут войти в систему. Много чтений системных функций, с полномочиями зарегистрированного пользователя, различных конфигурационных файлов в / и т.д. Однако предотвращение пользовательского доступа из определенных отдельных файлов совершенно приемлемо.
Файлы, по поводу которых Вы так волнуетесь, предназначены, чтобы быть публично доступными. Действительно уязвимые данные заперты. Да, Unix является (дизайном и историей) довольно открытой системой.
Если Вы так волнуетесь по поводу того пользователя, просто блокируете ее. У пользователя, которому Вы не доверяете, нет места на Ваших машинах.
Или пойдите, сверяются с Вашим paranoidist, возможно, он выходит из-под контроля.