Limitar comandos que o usuário pede executar

Publicado por Rodrigo Brito Alves em 11/08/2016

[ Hits: 4.353 ]

Blog: https://www.facebook.com/rodrigo.b.alves

 


Limitar comandos que o usuário pede executar



Esta dica explica como limitar comandos que o usuário pode executar. Liberaremos apenas os comandos: more, ping e telnet.

Crie o arquivo .bash_profile, no diretório home do usuário:

# touch /home/camila/.bash_profile

Edite o arquivo e adicione:

# vim /home/camila/.bash_profile

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Crie o diretório apps, na home do usuário:

# mkdir -p /home/camila/apps

Crie o link simbólico no diretório apps, para os comandos-autorizados:

# ln -s /bin/more /home/camila/apps/more
# ln -s /bin/ping /home/camila/apps/ping
# ln -s /usr/bin/telnet /home/camila/apps/telnet


Altere o proprietário do diretório apps, recursivamente:

# chown -R camila /home/camila/apps

Obs.: para localizar o caminho completo do comando, utilize o which:

# which telnet
/usr/bin/telnet

Outras dicas deste autor

Somar variáveis nos shells BASH e sh

Quota no Debian Etch

Substituindo palavras no editor VI

Redirecionar a porta 80 para 3128 com iptables, menos a tua máquina

Imprimindo em uma HP Laserjet 3030 conectada a um Jetdirect através linha de comando

Leitura recomendada

Webinar III - Principais ameaças à aplicações web - Top 10 do OWASP

Esqueceu a senha do root. Troque-a

Problema de conexão usando o protocolo TLS

Configurar HeartBeat

Lista de servidores compatíveis com OpenBSD

  

Comentários
[1] Comentário enviado por dzm_linux em 12/09/2016 - 13:17h

Amigo,

A intenção da dica é interessante, e o seu raciocínio faz sentido.

Entretanto, se as instruções da sua dica forem seguidas, não será produzido o resultado esperado, por diversas razões:

1. A criação do arquivo ~/.bash_profile, e a definição da variável $PATH não fez sentido. Lá você incluiu o diretório ~/bin à variável $PATH, mas criou o diretório ~/apps.

2. Você somente adicionou o diretório ~/bin (apps) à variável $PATH. As demais localizações continuariam disponíveis, e os demais comandos continuariam funcionando normalmente. Talvez o ideal fosse que a variável $PATH só tivesse a localização ~/apps.

3. Ainda assim, os demais comandos não ficariam restritos. Para executá-los bastaria digitar seu caminho absoluto. E acredite, nada como uma restrição para a pessoa buscar extrapolá-la.

Por favor, não veja meu comentário como negativo. Só busquei esclarecer os pontos que entendi como discrepantes.

Até mais.

[2] Comentário enviado por roddy em 06/12/2017 - 22:11h

Verdade amigo, obrigado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts