“cp -f” não funciona? Eliminando alias padrões em distros RedHat like’s

Em distribuições LINUX RedHat e suas derivadas (Centos, Fedora, e possivelmente outras) utilizam por padrão uma listagem de aliases, que substituem o comando cp, rm e mv padrões do Linux. Trata-se de um “nível de segurança” que considero abusivo em distros enterprise como o RedHat. Estes aliases passam por padrão o parâmetro -i aos ditos comandos que “podem comprometer” a integridade do sistema, se não utilizados corretamente.

Mas porque um administrador que DEVE saber que a opção -f dos ditos comandos é para FORÇAR a mudança precisaria desta “MÃOZINHA” da gigante RedHat? Imaginem o trabalho que da ter de reestruturar uma diretório com 100 arquivos sendo que 50 deles já existem, e ter de responder y/s para cara sobrescrita de arquivo… Seria chato ter que burlar isso né?

Pois bem, para mudar isso é simples, depois de tanto tempo sendo incomodado por este padrão:

Os aliases estão armazenados no arquivo de configuração .bashrc do diretório ~root, e possui o seguinte conteúdo:

[root@localhost ~]# cat ~/.bashrc
# .bashrc

# User specific aliases and functions

alias rm=’rm -i’
alias cp=’cp -i’
alias mv=’mv -i’

Para a correção, se for de sua preferência é claro, basta comentar as linhas dos aliases indesejados, colocando o caractere # no início da linha. Como pode ser observado, este padrão abrange somente o usuário root, até onde pude constatar.

 

Espero ter colaborado para eliminar este “DETALHE” que, vamos dizer, incomoda um pouco… 🙂

Por: Franklin Moretti

6 thoughts on ““cp -f” não funciona? Eliminando alias padrões em distros RedHat like’s

  1. Você pode “bypassar” um alias executando-o com um caractere de escape, como uma contra-barra. Assim:

    rm -f

    Assim, mesmo que exista um alias para o rm, o sistema não irá executar o comando em questão usando o alias.

  2. Franklin, só um complemento:
    Se o alias nao te atrapalha no dia a dia e você só quer tirá-lo para uma operação específica, pode-se usar “unalias comando”, que o shell retira o alias para aquele comando naquela sessão. Na próxima sessão de shell iniciada ele está lá de novo 😉

    Abraço, e tá bacana o blog!

    1. Exatamente.. Como a maioria de nossas rotinas “trapalhadas” por estes alias são executadas como Root, vale também como solução adicionar em ~root/.bashrc o unalias.

      Obrigado pela contribuição no BLOG, é justamente isso que precisamos, respostas, dicas, críticas, etc…

      Abraços.

  3. Olá,

    Eu acho válido o aliás e sempre configuro isso no Debian. Já tive um funcionário que deu um rm -f / , causando um estrago irreparável no servidor.
    Se a pessoa quer usar o -f, é só passar a path inteira do comando:

    /bin/rm -f

    Para saber onde o comando fica:

    whereis rm

    😉

    1. É isso ai.. =D

      Mas conhecer a estrutura da distro que forma seu data-center sempre é válido. Soluções para detalhes como este sempre tem, mas saber a origem doque causa também é importante.

      Muito obrigado por colaborar com o BLog..

      Abraços..!

Leave a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *