o emacs não pode sobrescrever a proteção de gravação do próprio usuário no arquivo

4

Em um sistema fedora 25 recentemente instalado ( uname -aLinux [host] 4.10.6-200.fc25.x86_64 #1 SMP Mon Mar 27 14:06:23 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux ; usando GNU Emacs 25.1.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.22.4) of 2016-12-15 de acordo com a própria página de abertura do emacs), não consigo sobrescrever no emacs a proteção contra gravação dos meus próprios arquivos.

É assim que acontece:

(a) Eu abro meu arquivo protegido contra gravação ( ls -l-r--------. 1 me me 92996 Apr 10 20:44 myfile ),

(b) desabilite a proteção contra gravação para que eu possa editar ( C-x C-q )

(c) eu edito o arquivo

(d) Eu quero salvar ( C-x C-s )

(e) Eu sou solicitado "Arquivo myfile é protegido contra gravação; tente salvar mesmo assim? (sim ou não)"

(f) Eu respondo "sim", digite

(g) A mensagem aparece: "Arquivo de saída de abertura: Permissão negada, [caminho completo] / myfile"

O diretório não está protegido contra gravação.

Eu sempre consegui editar e salvar meus arquivos protegidos contra gravação em outros sistemas (opensuse nos anos mais recentes).

Desativar o modo de seleção no sistema não ajuda. Por favor, veja mais informações nos comentários.

Não consigo descobrir o que pode estar errado.

    
por Gyula 11.04.2017 / 10:05

2 respostas

1

C-x C-q desativa a leitura somente para o buffer , não para o arquivo.

A finalidade de C-x C-q é evitar que você altere acidentalmente o conteúdo de um buffer (seja ou não um buffer de arquivo).

Para alterar as permissões de um arquivo , use um dos seguintes:

  • Comando chmod
  • Dired, com M (comando dired-do-chmod )

Use C-h f para ver o documento de cada comando:

chmod is an alias for set-file-modes in subr.el.

(chmod FILENAME MODE)

Set mode bits of file named FILENAME to MODE (an integer). Only the 12 low bits of MODE are used.

Interactively, mode bits are read by read-file-modes, which accepts symbolic notation, like the chmod command from GNU Coreutils.

dired-do-chmod is an interactive autoloaded compiled Lisp function in dired-aux.el.

It is bound to M, <menu-bar> <operate> <chmod>.

(dired-do-chmod &optional ARG)

Change the mode of the marked (or next ARG) files. Symbolic modes like g+w are allowed. Type M-n to pull the file attributes of the file at point into the minibuffer.

    
por 14.04.2017 / 03:53
0

Obrigado a todos pela atenção.
A questão ficou muda ontem porque, tendo desistido do problema, acabei instalando outra distribuição linux onde o emacs (lá, emacs v24) se comporta como de costume.

Embora meu problema original não tenha sido resolvido, continuo a considerar os seguintes suspeitos:

Suspeito 1: o emacs 25, a versão com a qual tive o problema, pode se comportar de maneira diferente do seu predecessor a esse respeito. Uma dica para um comportamento diferente em geral é que, por exemplo, ele não aceita o arquivo de configuração da versão 24.emacs

Suspeito 2: algum sistema de arquivos ou configuração específica de distribuição.

Nenhuma das duas suspeitas foi seguida, confirmada ou refutada.

Resposta à resposta anterior (em chmod etc.): obrigado por sua contribuição, mas temo que você tenha entendido mal a minha pergunta (talvez eu não tenha sido claro o bastante para começar). Meu problema não era como o emacs pode alterar as permissões de um arquivo, mas: por que, no meu caso, ele se recusou a sobrescrever um arquivo protegido mesmo quando o usuário solicitou tal ação? (De fato, C-x C-q altera apenas a capacidade de edição de um buffer, uma capacidade de edição que padroniza após as permissões e / ou o tipo do arquivo aberto - foi meu erro usar o termo errado para os efeitos dessa combinação de teclas).

    
por 14.04.2017 / 11:35