O chroot está procurando o que você está procurando?
Eu quero bloquear um usuário em uma determinada árvore de diretórios. Isso é ele / ela pode cd mais fundo na árvore, mas não mais alto fora da árvore. Tudo o mais no ambiente deve ser exatamente o mesmo.
Editar: Como posso fazer isso sem chroot? Eu estou lançando um bash via objective-c pode criar um aplicativo de terminal. Eu preciso de usuário para poder acessar / usr / include e todos os outros lugares no sistema, eu só preciso deles para ser bloqueado em uma estrutura de diretórios. O chroot parece requerer privilégios de root para rodar. Executar o bash no modo restritivo é restritivo.
O chroot está procurando o que você está procurando?
O que você está tentando alcançar?
Se você deseja proteção dos usuários, é um problema de segurança e não consigo imaginar como reduzir sua capacidade de cd
em qualquer diretório pode ser de algum benefício. Você pode tentar uma VM (bastante segura) ou chroot jail (não muito seguro).
Se você quiser protegê-los de si mesmo, basta substituir cd
in .bashrc
assim:
cd() {
builtin cd "$@"
if [[ ! "$(pwd)" =~ ^$HOME ]]
then
echo "Escape is futile"
builtin cd - >/dev/null
fi
}
Sem a ajuda do kernel, você não poderá restringir totalmente o usuário dentro de um diretório. Mesmo usando strace / ktrace é limitado porque provavelmente será complexo para implementar corretamente e tornar o usuário um pesadelo.
Se você usa o FreeBSD, veja o sub-sistema da cadeia. É muito eficiente. Senão, você precisa chroot seus usuários, se eles estão registrando via
Tags bash