macOS - não pode rm sem sudo

0

Novo proprietário de um Mac, conhecendo a máquina.

Eu tropecei em uma questão que é bastante incômoda - eu não posso usar rm sem sudo. Na verdade, sempre que escrevo um comando rm, o resultado é o seguinte:

rm: illegal option -- I
usage: rm [-f | -i] [-dPRrvW] file ...
   unlink file

ao passo que, se eu sudo o comando, ele continua com sucesso.

Informação extra:

  • macOS Sierra v.10.12.6
  • Todos os arquivos têm permissões de acesso de 777 e pertencem ao usuário 'staff'.
  • staff não é um grupo / usuário feito por usuários. A expectativa é que é um usuário base / grupo fornecido pelo sistema operacional.

Então a questão é, como posso fazer com que eu não precise usar o sudo a qualquer momento que eu queira modificar esses arquivos? (E por extensão o que é esse usuário 'staff'?)

    
por Philippe Hebert 07.09.2017 / 18:56

2 respostas

2

Na mensagem de erro, parece que você tem um alias ou função que está redefinindo rm adicionando parâmetros extras, pois sudo opera em um ambiente diferente do shell de onde é chamado e geralmente não importa o alias e definições de função dos scripts de inicialização do shell.

Este comando mostra todas as possíveis interpretações do comando rm :

type -a rm

Além disso, dentro do shell você pode usar $(which rm) ... em vez de rm ... para ter certeza de que está usando o executável adequado, pois o programa which externo não sabe sobre o alias e as definições de função que o O comando interno type verifica. Um comando com um componente de diretório sempre vai para o sistema de arquivos para encontrá-lo, ignorando aliases e funções.

Note que você não precisa de acesso de gravação a um arquivo para excluí-lo: o que você precisa é de acesso de gravação ao seu diretório pai.

    
por 08.09.2017 / 22:11
1

Com base nos comentários da sua pergunta, a menos que seu usuário seja o proprietário do arquivo, é mais do que provável que você não consiga apagar o objeto sem permissões de superusuário.

Staff é o grupo de sistemas do MacOS. A modificação de arquivos pertencentes a esse grupo seria potencialmente perigosa, embora você provavelmente saiba o que está fazendo em seu caso de uso.

Quanto à diretiva -I , isso não está no comando rm do MacOS; você precisará usar -i , a menos que tenha uma substituição semelhante.

Para pular sudo, você pode adicionar um alias rm em seu .bashrc ( rm='sudo rm -i' ) e adicionar a si mesmo ao arquivo Sudoers do MacOS com sudo visudo , adicionando YOUR_USERNAME_HERE ALL=NOPASSWD: ALL para acesso completo ao sudo a todos os comandos ou YOUR_USERNAME_HERE ALL=(ALL:ALL) NOPASSWD: /bin/rm para restringir o acesso total apenas ao comando rm.

Nota: O comando rm do MacOS pode não estar localizado em / bin / rm. Eu não usei isso recentemente, mas suponho que ele esteja localizado lá de um conhecimento anterior.

    
por 07.09.2017 / 22:38