Você poderia algo tão louco ... como escrever um shell muito burro como um script bash. Então você pode usar esse script bash como seu shell para esse usuário.
crie um arquivo chamado dumb_shell e insira isso:
#!/bin/bash
printf "$(pwd)$ "
while read line
do
command=$(echo $line | awk '{print $1}')
# check if it is one of the valid commands
if [ "$command" = "ls" -o "$command" = "cd" -o "$command" = "pwd" -o "$command" = "exit" ]
then
#check for possible security vulnerabilities in the command
if [ "$(echo $line | awk '/;|>|<|&|\|/ {print}')" = "" ]
then
#execute the command
$line
fi
fi
printf "$(pwd)$ "
done
Quando eu testei isso, coloquei o arquivo no meu diretório / opt /. Certifique-se de que o arquivo é executável
chmod a+x /opt/dumb_shell
Faça o dumb_shell do shell que é usado quando o usuário efetua login. Você pode fazer isso substituindo o shell desse usuário no arquivo / etc / passwd ou usando usermod -s /opt/dumb_shell username
.
A entrada em / etc / passwd deve mudar conforme mostrado abaixo:
user:x:1001:1001:user,,,:/home/user:/bin/bash
alterado para:
user:x:1001:1001:user,,,:/home/user:/opt/dumb_shell
Você precisará garantir que o usuário escolhido tenha permissões suficientes para ver todos os arquivos que deseja ver.