Bloquear comando linux com argumento específico

-1

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.

user219140
fonte
3
Você não pode. roottem controle total. Mesmo se você o bloqueou, digamos, dfusando o alias de um script, você pode contornar o problema chamando o binário.
Nathan C
Por definição, é impossível restringir verdadeiramente o que a raiz pode fazer em um sistema * nix. Você pode colocar obstáculos no caminho, mas qualquer usuário com competência intermediária que execute como root poderá contorná-los. Se você não confia absolutamente em alguém, não deixe que ele corra como raiz.
evilsoup
11
Parece que sudopoderia 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. TRUEou FALSE. Não pode estar na metade do caminho. Existe sudopara esse fim.
VL-80

Respostas:

0

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.

  • Você perde o gerenciamento de pacotes
  • Você pode facilmente criar falhas de segurança como esta
zeridon
fonte
Aqui está o que eu usei para bloquear o apt-get na máquina Ubuntu no .bashrc: /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.
user219140
O polkit não está fazendo o mesmo no gnome? e em segundo lugar, por que, pelo amor de Deus, você deseja que os usuários possam usar comandos administrativos. Se você estiver fornecendo senhas root ... há algo errado com seu modelo de administração.
Zeridon
Este não é um sistema de produção, mas um sistema de teste. Os usuários aqui têm privilégios de root, mas não sabem muito sobre o sistema. Eu não quero que eles usem "apt-get update" (o centos atualiza sua versão com isso), mas eles podem usar o apt-get para instalar pacotes.
precisa saber é o seguinte
O Centos não usa o apt-get, mas o rpm / yum. Se você quiser mascarar que é rpm, escreva um nome de script de wrapper para apt-get e deixe que os usuários o executem. Se for um sistema de teste, faça um bom backup sólido, talvez apenas um hw raid1 com 1 disco removido e permita que os usuários joguem / destruam. Ainda acredito que deixar os usuários correrem livremente até em um sistema de teste não é aceitável.
zeridon
Desculpe pelo erro de digitação. S / b yum. Vou tentar com o script wrapper. Não tenho controle sobre esse sistema, exceto a parte de configuração, e não quero que eles venham a mim para reconstruir a máquina.
precisa saber é o seguinte