Pergunta de autenticação de texto sublime 3 ao salvar documento

11

Estou usando o texto sublime para desenvolvimento na web. Sempre que tento salvar as alterações (Ctrl + S), a janela de autenticação é exibida:

É necessária autenticação para executar '/ bin / cp' como superusuário

Obviamente, quando digito a senha, o Sublime salva as alterações corretamente. Mas quando eu pressiono Cancelar , outra janela aparece com um erro:

Erro: administrator_copy_file (/tmp/.Some_File_Here, / var / www / Rest_Of_Path_Here) falhou: falha na autorização

Como sou novato no Ubuntu, não sei como me livrar dessa autorização. Eu tenho todas as permissões para a pasta / var / www .

SONGE
fonte
Você tem certeza de que seu usuário possui permissões de gravação /var/wwwsem se tornar root (por exemplo, usando sudo)?
David Bailey
@DavidBailey Tenho permissões de gravação, /var/wwwmas não nas subpastas. Eu fiz chownem /var/wwwmas quando eu verifiquei permissões em subpastas, ex. /var/www/First_Site, pertence a www-data. Eu pensei que chownem uma pasta principal me dará permissões também para todas as subpastas / arquivos nela.
SONGE 27/05

Respostas:

6

Você não tem permissão para escrever /var/www/Rest_Of_Path_Here. O ST3 está tentando elevar seu UID para gravar como o usuário correto (daí o prompt do sudo). Eu não sabia que poderia fazer isso, mas eu testei e funciona, então pronto.

Existem algumas maneiras de corrigir isso:

  1. Permita que seu usuário grave os arquivos diretamente . Tantas opções aqui:

    • chownos arquivos para que você os possua. Isso pode perturbar as coisas em execução como outros usuários que também precisam escrever, por exemplo, um servidor da web executando como www-user. Pode ser necessário alterar também o que eles executam.
    • Adicione seu usuário ao www-datagrupo e altere a máscara de arquivo para 774que os membros do grupo possam gravar / executar.
    • Altere a máscara de arquivo para que outros usuários possam escrever (por exemplo, 777) ... Mas isso é bastante arriscado se já houver algo malicioso no servidor.
    • Use ACLs para permitir que seu usuário escreva sem perturbar a estrutura de permissões padrão.
  2. Altere seu fluxo de trabalho para gravar em um sistema de controle de versão (por exemplo, git) como seus usuários e, em seguida, execute um script enquanto o outro usuário faz check-out. Isso traz outros benefícios.

  3. Execute o ST3 como um usuário que pode escrever lá:

    sudo -u www-data subl /var/www/Rest_Of_Path_Here
    

    Isso é muito mais feio do que apenas corrigir os arquivos.

Oli
fonte
Você está certo. Eu tenho apenas direitos para a pasta / var / www , mas não para todas as subpastas que pertencem a ela www-data. Eu acho que a melhor solução aqui será adicionar meu usuário ao www-datagrupo.
SONGE 27/05
Só para deixar alguém saber. Adicionar meu usuário ao www-datagrupo resolveu o problema. Eu só tive que reiniciar o sistema depois disso. Obrigado @Oli.
SONGE
4

Eu tive o mesmo problema e consegui resolvê-lo fornecendo o direito de usuário para a pasta específica que tive que editar no texto sublime 3. Utilizei os seguintes comandos:

sudo chmod 775 -R projectname/   
sudo chown username -R projectname/

Eu acho que pode ser útil para outras pessoas no futuro.

Isaac Shrestha
fonte
Muito obrigado:)
ivahidmontazer
0

Adicione seu usuário ao grupo de usuários administradores de acordo com uma das opções abaixo, com base na versão do Ubuntu que você está usando. Experimente os dois:

sudo usermod -a -G admin username

OU

sudo usermod -a -G sudo username

Se você já estiver no grupo de administradores, experimente chownna pasta.

Sharad Gautam
fonte
Por quê? Há toda sugestão de que eles já estejam no grupo sudo / admin (funciona quando eles colocam sua senha).
Oli
Talvez a chownvontade de fazer @Oli
Sharad Gautam
0

Eu tenho o mesmo problema, tentando editar o arquivo do meu servidor apache com texto sublime e não quero atrapalhar a permissão do meu servidor da web. Alterar seus arquivos g + we colocar seu usuário no grupo www-data não é uma idéia muito segura.

O que eu aconselho é usar o plugin SFTP para sublime-texto:

  • duplicar o arquivo do servidor da web em uma pasta pertencente ao seu próprio usuário
  • configure o plugin SFTP com:
"upload_on_save": true,
"host": "localhost",
"user": "www-data",

Não forneça uma senha na configuração, pois isso também é um grande furo de segurança.

O texto sublime solicitará a senha uma vez e depois a lembrará da sessão. Após salvar cada arquivo, ele abrirá uma sessão sftp no localhost e gravará o arquivo no disco com o usuário apropriado

Pascal Fournier
fonte
0

Execute o seguinte no seu terminal Linux / Unix:

sudo chmod -R 777 project-name
sudo chown user-name project-name

Tentei -R 775e não funcionou, assim -R 777como o truque, embora eu tenha dado permissões de gravação para todos os projetos

Jose Mhlanga
fonte