Como obtenho permissões para editar arquivos de configuração do sistema?

40

Não consigo editar e salvar arquivos de configuração no sistema raiz (por exemplo: /etc/dhcp/dhcpd.config ); apenas diz "permissão negada" ou a opção de salvar está bloqueada no editor de texto.

Tenho certeza de que sou usuário root, mas como posso ter certeza? Se eu sou um usuário root, como faço para corrigir isso?

    
por Matthew Wilson 03.01.2012 / 06:24

10 respostas

35

Qual editor de texto você está usando? Se você é um usuário root e conhece a senha, tente (em um terminal):

  • sudoedit /etc/dhcp/dhcpd.config se você estiver usando um editor baseado em terminal, como nano ou ssh'ing em um servidor.
  • gksudo <text editor here> /etc/dhcp/dhcpd.config se você estiver usando um editor baseado em GUI, como gedit

Em ambos os casos, você precisará primeiro fornecer sua senha de root quando solicitado.

No Ubuntu 14.04 em diante, gksudo não está instalado por padrão. Você terá que instalar o pacote gksu (do Centro de Software ou via sudo apt-get install gksu ) para obtê-lo.

No Ubuntu 17.10 em diante, Wayland é o padrão em vez do tradicional servidor X, e executar editores gráficos como root é difícil. Consulte Por que o gksu / gksudo não funciona com o Wayland? para obter detalhes.

    
por Christopher Kyle Horton 03.01.2012 / 06:53
14

Se você não quiser usar um terminal, pode invocar um programa GUI como root (este exemplo é para o Gedit):

  1. Pressione Alt + F2 para abrir a caixa de diálogo Executar.
  2. Digite gksudo seguido do nome do executável do programa (que pode ser diferente do nome exibido pela GUI). Por exemplo:

    gksudo gedit
    
  3. Pressione Enter .
por Scott Severance 03.01.2012 / 07:47
10

Não consigo pensar em um caso em que o root obtenha permission denied .

Em 12.04 você pode fazer assim: alt + f2 e digite gksudo na caixa que aparece assim:
Você recebe uma caixa como esta e digite gedit e clique em ok :

Clique aberto:

Apenas navegue até o arquivo:

Feito

Aviso: há um superusuário / root por um motivo. É para você não acidentalmente colocar algo ruim ou fora da estrutura em algo importante por engano. Você deve ser extremamente cuidadoso para que o que quer que você edite como root seja o arquivo correto que você quer editar e que sua sintaxe é perfeita. Se outras ferramentas estiverem disponíveis para edição, é recomendável usá-las. Por exemplo, use o comando visudo terminal em vez de editar manualmente /etc/sudoers .

Alguns arquivos que podem ficar bagunçados são fáceis de recuperar. Outros são relativamente complicados ou você tem que usar o console de recuperação e muita linha de comando.

Sim, a linha de comando do console de recuperação parece um pouco mais assustadora do que esta . Apenas tenha cuidado.

    
por RobotHumans 13.04.2012 / 22:03
5

Você pode testar se o seu shell atual está executando como root algumas maneiras diferentes

~/ > whoami
paul
~/ > sudo whoami
root
~/ > id
uid=1000(paul) gid=1000(paul) groups=1000(devs),4(adm),20(dialout),24(cdrom),…
~/ > sudo id
uid=0(root) gid=0(root) group=0(root)

Outras respostas oferecem boas maneiras de escalar para o privilégio de root, por isso não vou repeti-las. Assumindo que você é root e ainda não é possível editar o arquivo /etc/dhcp/dhcpd.config - então muito provavelmente alguém ou algum programa usou o programa chattr para tornar o arquivo imutável .

Na página de manual do chattr :

  

Um arquivo com o atributo 'i' não pode ser modificado: não pode ser excluído   ou renomeado, nenhum link pode ser criado para este arquivo e nenhum dado pode ser   escrito no arquivo. Apenas o superusuário ou um processo que possui o   O recurso CAP_LINUX_IMMUTABLE pode definir ou limpar este atributo.

Você pode descobrir usando lsattr

lsattr /etc/dhcp/dhcpd.config

Se de fato for imutável, você pode desativar isso assim:

chattr -i /etc/dhcp/dhcpd.config
    
por pbr 11.04.2012 / 04:09
1

Se você estiver usando o Ubuntu 17.04 ou superior, é recomendado usar o gvfs admin backend . Basta adicionar admin: // à frente do caminho de arquivo completo que você deseja abrir em um aplicativo como o Editor de texto ou o Arquivos de aplicativos .

Por exemplo, para alterar as configurações de inicialização, abra

admin:///etc/default/grub

Se você estiver usando o Ubuntu 17.10 com o Wayland padrão, o sudo e o gksu, como mencionado na resposta anterior, não funcionarão.

    
por Jeremy Bicha 23.10.2017 / 20:41
0

Se nem sudo ou gksudo funcionar, a outra opção é igual a todas as outras distribuições Linux: su .

Por exemplo:

su
<texteditor> /etc/dhcp/dhcpd.config

Ah, e há outro problema, o arquivo .conf, não o .config

    
por Chris Weigle 03.01.2012 / 06:57
0

Para garantir a segurança usando cp /etc/dhcp/dhcpd.config /$HOME/dhcpd.config.backup e execute gksu gedit /etc/dhcp/dhcpd.config

Substitua gedit pelo editor de sua escolha

você receberá uma solicitação imediata

Digite sua senha aqui

Uma nova janela é aberta e você pode editar sua configuração aqui

Caso algo dê errado, você poderá restaurá-lo a partir do seu backup na pasta pessoal

É negada permissão por causa do sistema geral de como o Linux lida com a permissão

Tudo na pasta $HOME pertence ao usuário, enquanto qualquer coisa abaixo de / pertence ao root. Qualquer arquivo criado em uma pasta acessível pelo usuário pertence a esse usuário

o arquivo /etc/dhcp/dhcpd.conf que você está tentando acessar pertence ao root, e a maioria dos arquivos criados em /etc/ pertence à raiz por padrão por motivos de segurança

Você ainda pode editar esse arquivo elevando suas permissões

Para fazer isso você tem várias maneiras

  • use su , que significa usuário do switch. Sem quaisquer atributos, funciona como um comando para mudar para a conta root

  • usando sudo , o que eleva sua permissão para apenas um comando. É frequentemente usado apenas para aplicativos de linha de comando, como editores de texto CLI como vim , nano etc

  • usando gksu , o que eleva sua permissão para apenas um comando, mas, ao contrário de sudo , é usado para um programa gráfico, como editores de texto da GUI, como gedit . ele usa um prompt gráfico para facilitar a inserção de uma senha

por Amith KK 13.04.2012 / 18:13
0

Não consigo editar e salvar arquivos de configuração no sistema raiz (por exemplo: /etc/dhcp/dhcpd.config); apenas diz "permissão negada" ou a opção salvar está bloqueada no editor de texto.

Tenho certeza de que sou usuário root, mas como posso ter certeza? Se eu sou um usuário root, como faço para corrigir isso?

@Matthem
Você está absolutamente certo de que você é o administrador, mas no Ubuntu, o usuário root está desabilitado por padrão. O que significa que, mesmo se você for o único usuário em seu sistema, assim como o administrador, não será possível entrar como usuário root, por motivos de segurança.

Então, o que você pode fazer é:

  1. Primeiro, abra o arquivo a ser editado, edite e salve o arquivo (digamos, example.txt) em seu diretório pessoal e, em seguida, vá para a linha de comando usando

    CTRL + ALT + F1 ou CTRL + ALT + F2

    e depois log-in como você faria log-in na GUI (especificando seu nome de usuário e senha) e, em seguida, rastrear o arquivo usando:

    ls  -al
    

    isto mostraria os diferentes arquivos salvos no seu diretório pessoal cCurrent. Então use:

    sudo mv example.txt /etc/dhcp/
    

    Este comando pedirá a senha do usuário root. Digite a senha e pronto.

  2. Em seguida, efetue logout da linha de comando usando logout, exit ou CTRL + D .

  3. Então pressione CTRL + ALT + F7 para voltar à GUI normal, e agora você poderá ver que você editou o arquivo com sucesso.

  4. Como alternativa, como essa forma de edição de arquivos é um pouco demorada, o que você pode fazer é alterar a propriedade desses arquivos e diretórios raiz para seu nome de usuário (MAS, CUIDADO, isso é prejudicial, pois da próxima vez que tentar modificar um arquivo não irá avisá-lo das alterações e restrições).

    De qualquer forma, para alterar a propriedade de arquivos e diretórios, você pode usar o seguinte comando na linha de comando:

    sudo chmod -R your-user-name:admin .
    

    O. (DOT) aqui representa o diretório pai.

    Após o comando ser executado com sucesso, vá até a GUI e selecione qualquer arquivo em /bin ou /root , clique com o botão direito do mouse e selecione Propriedades. Você verá que é o proprietário dos arquivos enquanto o proprietário do grupo é admin.

por Sujit Ojha 29.09.2012 / 21:06
0
sudo < editor > < filelocation >

por exemplo. sudo gedit etc/dhcp/dhcpd.config

    
por user392272 27.03.2015 / 14:06
-2

Abra seu terminal, digite gksudo nautilus , digite sua senha. Ele irá abrir o sistema de diretórios em uma nova janela. Assim, você pode abrir e editar / copiar / colar qualquer arquivo abrindo através dessa nova janela aberta. Tão simples.

    
por jeevanreddymandali 13.06.2014 / 20:36