Atualizei recentemente o Ubuntu Server 20.04 para o Ubuntu Server 22.04. É um servidor LEMP executando a versão Mainline mais recente do Nginx. Após a atualização, quando tento modificar o arquivo /etc/nginx/nginx.conf com o editor nano, o nano mostra um aviso em vermelho que diz
/etc/nginx/nginx.conf deve ser somente leitura
Sobre o que é esse erro e desde quando meu arquivo nginx.conf deve ser somente leitura? Este é um problema do nginx, um problema do nano ou um problema de permissões do sistema de arquivos ou todos os itens acima? O que posso fazer para corrigir esse erro? Por favor, veja a captura de tela abaixo.
Responder1
Este não é um erro real, você ainda pode gravar no arquivo.
nano
está testando se o arquivo tem um bit de permissão u+w
, g+w
ou o+w
definido. Quando nenhum desses bits está definido, ninguém no sistema recebeu explicitamente acesso de gravação ao arquivo. No entanto, o usuário root (ao qual você pode ter elevado with sudo
) anula isso e pode gravar implicitamente em qualquer arquivo.
Em outras palavras, o aviso diz: Você pode gravar neste arquivo porque é root, mas tecnicamente não há permissão de gravação no arquivo para nenhum usuário.
O novo comportamento vem de uma solicitação de melhoria registrada comoerro #58685explicando o motivo:
Atualmente, o nano gravará com prazer em um arquivo com permissões 444 [
r--r--r--
].Freqüentemente, esses arquivos são somente leitura por um motivo, e seria bom avisar o usuário e perguntar se ele realmente deseja fazer isso.
Para responder a esta pergunta, pesquisei ocódigo para nano
em gnu.org. (Se você realmente precisa do código exato enviado para os repositórios do Ubuntu, confiraPlataforma de lançamento.) Em src/files.c
encontrei a mensagem:
#elif defined(HAVE_GETEUID)
if (new_one && !(fileinfo.st_mode & (S_IWUSR|S_IWGRP|S_IWOTH)) &&
geteuid() == ROOT_UID)
statusline(ALERT, _("%s is meant to be read-only"), realname);
#endif
O git blame
para estas linhas nos indica um compromisso180a53cc0:
arquivos: avisa o usuário root quando todos os bits de gravação estão faltando
O Root tem carta branca para ler arquivos ilegíveis e gravar arquivos não graváveis - o sistema de arquivos não impede isso. Portanto, alerte o root ao abrir um arquivo que se destina a ser somente leitura.