Estarei pontuando abaixo as devidas configurações:
1. Criação do diretório do usuário:
# mkdir /home/squadra
2. Arquivos de suporte de sessão do usuário:
# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
crw-rw-rw- 1 root root 1, 3 Mai 19 2014 /dev/null
crw-rw-rw- 1 root root 1, 8 Mai 19 2014 /dev/random
lrwxrwxrwx 1 root root 15 Mai 19 2014 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Mai 19 2014 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Mai 19 2014 /dev/stdout -> /proc/self/fd/1
crw-rw-rw- 1 root tty 5, 0 Jul 12 17:31 /dev/tty
crw-rw-rw- 1 root root 1, 5 Mai 19 2014 /dev/zero
3. Criação do diretório de sessão:
# mkdir -p /home/squadra/dev/
4. Com o comando mknod crie os arquivos. Lembrando de usar sempre o parâmetro -m para especificar os bits de permissões dos arquivos.
# mknod -m 666 null c 1 3
# mknod -m 666 random c 1 8
# mknod -m 666 tty c 5 0
# mknod -m 666 zero c 1 5
5. Mudar a permissão do home do usuário:
# chmod 0755 /home/squadra/
6. Validar a permissão do home do usuário:
# ls -ltr /home/squadra
dr-xr-xr-x. 27 root root 4096 Mar 22 10:50
7. Agora temos que criar o diretório bin e copiar o /bin/bash:
# mkdir -p /home/squadra/bin
# cp -v /bin/bash /home/squadra/bin/
"/bin/bash" -> "/home/squadra/bin/bash"
8. Como o bash requer as bibliotecas. Se faz necessário a criação do diretório /lib64 dentro do home do usuário e a cópia das lib.
# mkdir -p /home/squadra/lib64
# ldd /bin/bash
linux-vdso.so.1 => (0x00007fff272f6000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003b69e00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003b59a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003b59e00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003b59600000)
# cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/squadra/lib64/
"/lib64/libtinfo.so.5" -> "/home/squadra/lib64/libtinfo.so.5"
"/lib64/libdl.so.2" -> "/home/squadra/lib64/libdl.so.2"
"/lib64/libc.so.6" -> "/home/squadra/lib64/libc.so.6"
"/lib64/ld-linux-x86-64.so.2" -> "/home/squadra/lib64/ld-linux-x86-64.so.2"
9. Agora iremos criar o usuário:
# useradd squadra
useradd: aviso: o diretório pessoal já existe.
Não copiando nenhum arquivo do diretório skel.
10. Iremos criar o diretório /etc no home do usuário e realizar a cópia do /etc/passwd e /etc/group:
# mkdir /home/squadra/etc
# cp -vf /etc/{passwd,group} /home/squadra/etc/
"/etc/passwd" -> "/home/squadra/etc/passwd"
"/etc/group" -> "/home/squadra/etc/group"
11. Agora chegou a hora de definirmos o enjaulamento no ssh:
# vi /etc/ssh/sshd_config
#define username to apply chroot jail to
Match User squadra
#specify chroot jail
ChrootDirectory /home/squadra
12. Restart do ssh:
# service sshd restart
13. Como o meu usuário irá apenas ler logs, eu defini os comandos que ele pode executar:
# cp -v /bin/ls /home/squadr/bin/
# cp -v /bin/cat /home/squadr/bin/
# cp -v /bin/more /home/squadr/bin/
# cp -v /bin/tail /home/squadr/bin/
14. Uma dica: verificar as lib de todos os comandos. Caso não estiverem no arquivo /home/squadra/lib64/, basta copiar. Exemplo abaixo:
# ldd /bin/ls
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f544ba0c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f544b61b000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f544b3a9000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f544b1a5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f544be56000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f544af86000)
Lembrando que o usuário (squadra) foi apenas o meu usuário de teste.
Espero ter ajudado com esse artigo!