Limitar comandos que o usuário pede executar
Dica publicada em Linux / Segurança
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
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
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
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
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.