Como eu crio uma conta que só pode usar os comandos ls e cd?

2

Como faço para criar uma conta em uma caixa do CentOS, de tal forma que o usuário só possa usar os comandos cd e ls, mas tenha todos os direitos para usar esses comandos em todos os lugares no sistema de arquivos? O usuário deve poder visualizar os nomes de TODOS os arquivos e diretórios no sistema, mas não deve poder visualizar seu conteúdo, fazer alterações, etc.

    
por Pascal 19.11.2013 / 03:15

1 resposta

3

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.

    
por 19.11.2013 / 05:07

Tags