Por que o usuário root pode editar arquivos somente leitura, mas um usuário comum com acesso sudo não pode?

7

Se você tentar anexar a um arquivo sem permissões de gravação (digamos, o arquivo / etc / sudoers que é de propriedade root e possui as permissões 0440), se você for o usuário root real, isso funciona. No entanto, se você for outro usuário usando o sudo, receberá um erro de permissão negada.

Por que isso? Não por causa da propriedade do arquivo - ele também não funciona com arquivos pertencentes ao usuário normal. O usuário root real parece ter mais permissões do que as que são concedidas com o sudo. Qual é a razão para isso? Existe uma maneira de conceder essa permissão para usuários usando o sudo?

    
por fields 16.12.2010 / 16:47

2 respostas

11

Parece que você está fazendo algo como:

sudo echo "blah blah blah de blah" >> /etc/protected_file

Isso não funciona porque o sudo se aplica ao comando echo , que felizmente é executado como root, mas o redirecionamento faz parte do seu shell atual, que não está sendo executado como root.

Soluções comuns são:

sudo bash -c 'echo "blah blah blah de blah" >> /etc/protected_file'

e

echo "blah blah blah de blah" | sudo tee -a /etc/protected_file
    
por 16.12.2010 / 17:03
2

Nota: Você deve estar usando "visudo" para editar o arquivo sudoers, porque ele verifica se há erros de sintaxe no arquivo antes de permitir que você os confirme, para evitar que você se bloqueie.

    
por 16.12.2010 / 17:12