Eu quero bloquear determinado comando linux para o usuário root com apenas alguns argumentos. O comando "df" deve ser bloqueado com o argumento -h, mas deve estar disponível para outros argumentos. Eu sei como bloquear todo o comando para executar, mas nunca bloqueado com essa segregação.
linux
command-line
user219140
fonte
fonte
root
tem controle total. Mesmo se você o bloqueou, digamos,df
usando o alias de um script, você pode contornar o problema chamando o binário.sudo
poderia ser útil na sua situação. Especificamente, como foi respondido aqui . Caso contrário, é um conceito errado desde o início desta idéia. Você dá acesso root ou não.TRUE
ouFALSE
. Não pode estar na metade do caminho. Existesudo
para esse fim.Respostas:
Uma maneira de pensar é usar um shell restrito como o rbash e colocar um script df no caminho personalizado para o usuário em que o comando certo é chamado, mas isso provavelmente não funcionará.
Root é um cara poderoso e, a menos que ele não seja realmente root, como no caso do rbac / selinux, você não é capaz de detê-lo.
Tente ver se isso pode ser feito, mas duvido.
A outra maneira é obter as fontes, remover a opção incorreta (do analisador de opções será suficiente) e reconstruir o binário. Isso tem seus próprios problemas.
fonte
/usr/bin/apt-get() { echo "This command not allow for you" } apt-get() { echo "This command not allow for you" } ./apt-get() { echo "This command not allow for you" }
Quero que os usuários não executem "apt-get update", mas eles podem usar o apt-get para instalar qualquer pacote. Acima irá bloquear completamente o comando apt-get.