Limitar comandos que o usuário pede executar

Publicado por Rodrigo Brito Alves em 11/08/2016

[ Hits: 4.034 ]

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

Backup do Outlook de uma estação com Windows XP

Erro "depende: initrd-tools"

Fita DAT Linux: formatar e gravar

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

Arrays no BASH

Leitura recomendada

Utilizando o nmap para descobrir versão dos serviços

Não consegue se registrar no Redhat [Resolvido]

CentOS 5 - Remover pacotes desnecessários

Ataque de dicionário com OpenSSL - quebrando senhas

Instalando Tcptrack no Slackware 13

  

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
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts