Como fazer com que “rm” exija privilégios de root?

3

Eu geralmente uso mal o "rm" para "mv"! Espero fazer "rm" um comando que requer privilégios de root, como "apt-get". Como fazer isso, por favor? Meu sistema é o Ubuntu 10.10.

    
por updogliu 16.02.2012 / 08:38

5 respostas

11

A melhor solução é usar rm -i

    
por 16.02.2012 / 10:48
4

O aliasing definitivo da versão interativa de rm é a melhor solução, porque você não deseja que os scripts normais sejam rompidos quando rm de repente começar a se comportar de maneira diferente. Basta adicionar alias rm="rm -i" ao seu ~/.bashrc e você receberá uma pergunta como rm: remove regular file 'filename'? , que terá de responder com y [ENTER] ou n [ENTER] .

Eu acho melhor o aliasing sudo rm , porque você é explicitamente informado sobre quais arquivos devem ser deletados, enquanto que com o sudo você só precisa de uma senha como em uma dúzia de outras ocasiões e antes disso você irá aprovar o comando sudo rm * . O comando rm -i protege você de tais (e menos óbvias) combinações de curingas muito gananciosas, porque ele pergunta sobre cada arquivo.

    
por 17.02.2012 / 16:49
2

Que tal alias rm para 'sudo rm'? Toda vez que você precisa digitar a senha.

    
por 16.02.2012 / 10:32
0

Você poderia alias rm para algo como echo 'Do you really want to remove this?'

Isso impedirá que você use o rm.

Então, se você realmente quiser remover algo, precisará digitar /bin/rm (para ignorar o alias).

    
por 17.02.2012 / 16:12
0

Isso está fora do topo da minha cabeça. Tenho certeza de que as pessoas vão corrigir a edição se eu tiver minha sintaxe desativada ou algo assim.

Insira este script no seu ~ / bin e chame-o de rm.

#!/bin/sh

# Run /bin/rm using all the arguments from the command line
/bin/rm $@

Certifique-se de que ~ / bin seja o primeiro em seu $ PATH para que seu rm seja encontrado antes de / bin / rm.

Defina esse script para a propriedade root: your_group e permissões 760 para que você precise sudo para executar rm e não será necessário ser root para gravar ou ler o arquivo. Você também pode contornar esse script simplesmente usando / bin / rm em vez de rm, mas fará isso conscientemente. Talvez você até tenha o hábito de especificar rm por caminho absoluto e, eventualmente, não usará o script extra.

Se você não estiver familiarizado com a configuração de sua própria variável de caminho, edite seu .bash_profile com essas linhas (ou edite se elas já existirem).

PATH=~/bin:$PATH
export PATH

Você precisará reiniciar o bash ou usar o comando 'source .bash_profile' para trazer suas alterações para o shell atual.

(Naturalmente, rm -i é muito mais simples e menos invasivo do que chmoding rm em si, mas isso responde a pergunta como solicitado sem quebrar nada que não seja executado pelo usuário que já conhece a limitação.)

    
por 20.02.2012 / 23:14

Tags