Erro apos alterar permissoes na /var e quero saber como alterar o UID de qq user

Iniciado por topprime, 26 de Abril de 2015, 15:10

tópico anterior - próximo tópico

topprime

Ola pessoal! sou novato aqui. Seguinte, possuo um user admim que criei para nao acessar todo momento como root recentemente estive alterando algumas permissoes para poder migrar meu blog de uma hospedagem convencional para uma na nuvem, dei permissao 777 para a pasta /var e agora toda vez que tento executar qq comando ele fica pedindo a senha e informando isso --> sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700    e tambem quando executo qq comando como como exemplo: sudo sysctl... ele fica solicitando a senha do meu user admim. Tambem gostaria de saber como faço para mudar o UID de um user. Alguem poderia me ajudar a corrigir isso ou pelo menos contornar. Desde já fico imensamente agradecido.

irtigor

É que colocar como permissão 777, por via de regra, é algo que nunca se faz. Volte pro original.
Pra trocar o uid use o usermod, os arquivos fora da home precisam ser alteados manualmente, dependendo pode compensar usar o find.

Obs: alguns uids são reservados, veja: http://people.canonical.com/~cjwatson/ubuntu-policy/policy.html/ch-opersys.html#s9.2.2

topprime

Oi irtigor obrigado pela informação, estou confuso pra saber qual era a permissão original... Então eu sei que nao se pode colocar 777, mas estou usando um plugin wp pra migrar o blog e ele solicita permissao 775 ou 777, mas ja fiz de tudo e quando este plugin conclui a migração ele da erro na pasta /var/www/wp-content/themes/index.php... e por isso dei essa permissão, mas assim que der certo irei mudar de 777 pra permissão devida.

irtigor

Por padrão diretórios possuem permissão 755, enquanto arquivos são criado com 644, mas existem arquivos/diretórios que exigem maiores restrições, como na mensagem de erro que mostrou, onde o sudo pede que /var/lib/sudo seja 700; alias isso indica que provavelmente trocou a permissão recursivamente, o que é ainda pior... sinceramente? Você até pode checar a permissão de cada coisa individualmente, por ex. usando um livecd, mas se acabou de começar deve ser mais rápido reinstalar o sistema, e pedir ajuda pra usar o plugin (o que fez foi totalmente desnecessário, se copiou de um tutorial recomendo que procure um texto melhor), ou melhor ainda, explique o que deseja, porque esse plugin pode ser desnecessário.

topprime

Entendido meu caro irtigor, mas mesmo com essa permissao 755 o plugin nao conclui a migracao, o mesmo foi comprado e nao é plugin free, e tambem creio que não há nada por parte do desenvolvedor em relacao a dá permissoes para tal finalidade. referente ao erro, realmente eu dei permissão em /var 777 -R mas logo que concluisse iria retirar esta permissao. No meu caso, minha nova hospedagem é uma VPS na nuvem rodando ubuntu 14.04 LTS e somente acesso via SSH e sFTP, eu dei essa permisão por comando e não pelo sFTP. Referente a esse erro: /var/lib/sudo 700... como posso retornar a esta permissao 700? devo fazer em cada subdiretorio? nao entendi na msg anterior que vc diz: os arquivos fora da home precisam ser alteados manualmente, dependendo pode compensar usar o find.   ou seja, devo dá 700 para /var e os demais diretorios como www; wp-content; themes etc devo dá 755? e sucessivamente aos arquivos 644, tudo isso manualmente? Lembro que ainda estou no começo da migração (o motivo do uso desse plugin é a simplicidade de migrar a 3 cliques e que não quis subir os arquivos via sFTP e substitui-los), no mais é isso aí. Fico muito grato por sua otima ajuda.

Complementando, veja os erros ao final da migracao usando o plugin (somente permissão, ja o fiz 6 vezes mas no final da unable...): http://postimg.org/image/nu98du0jj/  e  http://postimg.org/image/le7ezzigv/

irtigor

Citação de: topprime online 26 de Abril de 2015, 17:04
Entendido meu caro irtigor, mas mesmo com essa permissao 755 o plugin nao conclui a migracao, o mesmo foi comprado e nao é plugin free, e tambem creio que não há nada por parte do desenvolvedor em relacao a dá permissoes para tal finalidade.
Provavelmente existe um jeito melhor, e isso pode significar não usar esse plugin. Quanto as permissões, ele certamente não exige 777 no /var inteiro, porque ele nem deveria acessar a maioria dos subdiretórios de lá...

Citação de: topprime online 26 de Abril de 2015, 17:04
Referente a esse erro: /var/lib/sudo 700... como posso retornar a esta permissao 700? devo fazer em cada subdiretorio?

Basicamente, você tem que comparar todos os arquivos e diretórios de /var do sistema que alterou, com um que tenha as permissões corretas, e ai você altera com chmod. Por exemplo, se /var/alguma_coisa tinha como permissão 644, você usa chmod 644 /var/alguma_coisa, e assim sucessivamente, até voltar para as permissões corretas, todos os arquivos e diretórios. Não dá pra fazer de uma vez, com uma única linha de comando. Se comparar as permissões dos dois sistemas, até vai ver que a maioria pode ser agrupado, ai você executa só dois ou três comandos, mas só olhando pra confirmar.

Citação de: topprime online 26 de Abril de 2015, 17:04
nao entendi na msg anterior que vc diz: os arquivos fora da home precisam ser alteados manualmente, dependendo pode compensar usar o find.

Isso é referente a troca do uid, digamos que você tenha usuário chamado foo, que tem o uid 2000, se trocar o uid dele pra 1001, todos os arquivos de /home/foo vão ter o novo uid 1001, mas se criou um arquivo ou diretório pra ele em outro lugar, como /opt, você vai ter trocar o mesmo manualmente.

Citação de: topprime online 26 de Abril de 2015, 17:04
Complementando, veja os erros ao final da migracao usando o plugin (somente permissão, ja o fiz 6 vezes mas no final da unable...): http://postimg.org/image/nu98du0jj/  e  http://postimg.org/image/le7ezzigv/

Veja as permissões do diretório indicado, e quem está como dono do mesmo.

irtigor

Pensando... talvez você quisesse dizer trocar o dono de um arquivo ou diretório, no lugar de trocar o uid de um usuário, e pra essa tarefa (que é bem mais comum), você usa o chown.

topprime

Ok, entendi +- a prime resposta... e com relacao a ultima, eu já mudei de dono com o chown... assim que instalei o Ubuntu na VPS criei logo um user admin, dei todas as permissões, mas mesmo assim a todo momento ele pede senha e da o erro que estamos falando irei pensar no que fazer, mas nada que esteja preocupado, pois como informei estou no inicio dessa migracao, mas acho que vou esquecer esse plugin e irei usar o metodo tradicional  - upload das pastas necessarias, vai ser o jeito, VPS Linux em Cloud não é tão simples manipular, mas estou conseguindo, so falta essa migração... todo esse sofrimento para fugir da maldita hospedagem Godaddy não recomendo pra ninguem! Mas obrigado pela ajuda, se der certo eu avisarei.

Outra duvida: desde quando iniciei a conf do VPS, criei o user admin, dei todas as permissoes de root (no sudoers) e mesmo assim meu user admin@meudominio fica assim: /$ e nao como root...

irtigor

Citação de: topprime online 26 de Abril de 2015, 18:58
assim que instalei o Ubuntu na VPS criei logo um user admin, dei todas as permissões, mas mesmo assim a todo momento ele pede senha e da o erro que estamos falando

É normal pedir senha, principalmente se está mexendo fora de /home/admin, ou está executando algum comando reservado ao root. Só o root pode modificar qualquer coisa, todos os outros usuários só podem mexer no que eles possuem permissão.

E sem ver quem é o dono e as permissões não dá pra ser mais especifico. De qualquer forma, quem roda o servidor web, o php e por tabela qualquer plugin do wordpress, não é o seu usuário pessoal, mas o www-data:, e como vai usar ftp veja como fica as permissões, dono e grupo dos arquivos que envia.

Veja algo como: http://stackoverflow.com/questions/9133024/www-data-permissions

irtigor

Citação de: topprime online 26 de Abril de 2015, 18:58
Outra duvida: desde quando iniciei a conf do VPS, criei o user admin, dei todas as permissoes de root (no sudoers) e mesmo assim meu user admin@meudominio fica assim: /$ e nao como root...

Porque ele não é o root, o que o sudo faz é permitir que um usuário (admin), execute uma tarefa como um outro usuário (root), se o mesmo estiver aprovado (no sudoers) e a autenticação estiver certa (a sua senha, que ele pede). Até dá pra tirar o pedido de senha, mas não é o padrão, e esse processo é geralmente feito só em casos bem específicos (assim como dar permissão 777).

topprime

Entendi, mas esse user www-data é criado automaticamente e não se pode logar com ele em qq lugar? ele é somente pra o apache e etc? veja na imagem http://postimg.org/image/l3zwgn3un/   permissoes/grupo via sFTP... e com relacao ao user admin que criei, o correto nao seria ficar assim: admin@meudominio:~#      e sobre as permissoes qual a finalidade desse comando (encontrar...): find /var/www -type d -exec chmod 755 {} \;   pra o que estamos falando, preciso executa-lo? Obrigado.

Veja como esta a estrutura/permissoes: http://postimg.org/image/xjwmadx6n/

irtigor

Citação de: topprime online 26 de Abril de 2015, 20:49
Entendi, mas esse user www-data é criado automaticamente e não se pode logar com ele em qq lugar? ele é somente pra o apache e etc?

Sim, até dá pra modificar isso, mas é melhor deixar assim.

Citação de: topprime online 26 de Abril de 2015, 20:49
e com relacao ao user admin que criei, o correto nao seria ficar assim: admin@meudominio:~#

Não, isso é só cosmético e você pode trocar pra qualquer coisa, mas não é sem significado, por padrão, a cerquilha é pra indicar visualmente que você é o root, não pra indicar que você pode fazer ações como tal.

Citação de: topprime online 26 de Abril de 2015, 20:49
e sobre as permissoes qual a finalidade desse comando (encontrar...): find /var/www -type d -exec chmod 755 {} \;   pra o que estamos falando, preciso executa-lo?

Serve pra trocar as permissões dos diretórios que estão dentro de /var/www pra 755. Até pode digitar, mas não resolve o chmod -R 777 lá de trás.

Pra fazer direito intenda o que está no link (mas ainda tem que trocar manualmente a permissão do resto, ou reinstalar pra começar limpo): http://serverfault.com/questions/357108/what-permissions-should-my-website-files-folders-have-on-a-linux-webserver

Qualquer dúvida fale.

topprime

Ok meu nobre, obrigado (os arquivos continua subindo por ftp)... ainda sou nivel medio em linux e estou apanhando.... olha só, executei o comando abaixo e veja o erro logo abaixo: $ find /var/www -type d -exec chmod 755 {}\;     -    erro ->>> find: missing argument to `-exec'  mas como dizesse que não se aplicar ao meu caso, entao. Mas para fins de aprendizado como executa-lo?

irtigor

Faltou um espaço entre as chaves e a contrabarra.
find /var/www -type d -exec chmod 755 {} \;

topprime

Ah entendi, executei pra teste, ficou listando todos os diretorios, mas com essa informação: Operation not permitted, devo executar como root? viu só como falei antes, dei todas permissoes de root mas ainda continua sem estas permissoes...