Eu instalei recentemente o servidor Ubuntu no meu servidor para experimentar o linux como um novo usuário. Eu segui um tutorial sobre como configurar o servidor da Web que dizia que eu precisava chmod 777
do diretório do servidor da Web para que ele pudesse ser gravado.
Enfim, criei uma nova conta para um cara para permitir que ele visse alguns arquivos no servidor que eu coloquei no diretório principal:
adduser francis
Depois de criar a conta, verifiquei com que acesso ele está.
groups francis
Ele dizia "francis: francis", então não é um problema que eu pensava, o ubuntu não o incluiu em nenhum grupo por padrão, o que faz sentido, ele o criou sem permissões extras em termos de segurança, para que tudo esteja bem e elegante. Uma semana depois, com horror absoluto e absoluto, descobri que, embora ele não pudesse fazer coisas como SUDO ou mexer nos diretórios do sistema, ele tinha acesso total a quase tudo o mais no servidor. Por exemplo, ele tinha acesso total de leitura / gravação aos arquivos do meu servidor da Web em / var / www (e, portanto, senhas armazenadas nos arquivos de configuração php etc), mesmo que esse diretório NÃO esteja no diretório inicial e nunca o adicionei a nenhum grupo que pudesse acessar esse diretório, nem lhe concedi acesso especial a qualquer coisa depois de fazer o adduser.
Enfim, o que está acontecendo aqui? Como eu mato o acesso dele a algo importante? Ele não deve conseguir acessar coisas como / media ou / var / www. Eu achava que, por padrão, os novos usuários eram impedidos de fazer algo perigoso ou bisbilhotar onde não deveriam estar.
Então, resumindo, eu só preciso permitir que ele acesse diretórios que eu especifiquei manualmente + para diretórios que ele precisa para funcionar corretamente (seu diretório home, vim, nano etc.)
Obrigado
fonte
chmod
outro lugar, você pode ter outros problemas.Respostas:
Isto é como projetado. E pior. chmod 777 significa ... "Eu gostaria que o proprietário, qualquer pessoa em seu grupo e qualquer pessoa tivesse permissão de leitura, gravação e execução"
O que é bem terrível.
E para um servidor web, o 777 não é o ideal. 755 (Proprietário tem grupo de permissões completas e outras pessoas têm leitura + execução) é um padrão comum, mas pelo que você disse que deseja pelo menos ler-gravar ou executar leitura-gravação para o proprietário (o usuário do servidor da Web) e talvez o grupo e nenhuma permissão para o usuário. Há perguntas mais completas sobre quais são os níveis de permissões apropriados na falha do servidor, mas considere algo como 640 ou 740.
Dito isso, você também pode colocar o usuário em seu próprio mundinho - configurando o chroot para manter o usuário em seu próprio espaço no sistema. Existem guias por aí para fazer isso - por exemplo, a excelente resposta da oli aqui, que pode ser uma opção, dependendo de suas necessidades.
fonte
Essencialmente, ele se divide assim:
Portanto, as permissões de leitura seriam apenas 4, a leitura e a gravação seriam 6, a leitura e a execução seriam 5 e tudo (leitura, gravação, execução) é 7. É assim que você calcula um valor de octeto de permissão para um proprietário, grupo de proprietários ou todos.
Ao aplicar essas permissões
chmod
a um local de arquivo ou diretório, os números calculados acima são aplicados assim, com um octeto para proprietário, grupo e todos:Portanto, se eu quisesse fornecer a mim e ao meu grupo permissões de leitura, gravação e execução em uma pasta que eu possuía, mas não queria que todos pudessem lê-la, eu usaria:
Para mais informações, consulte a página de manual do chmod :
fonte
chmod ugo+rwx <...>
. Os caracteres repousar durante u Ser, g rupo, o terap; r ead, w rito, de e x ecute. Você pode usar '-' para remover (por exemplochmod go-wx <...>
:). Observe que isso apenas adiciona ou remove exatamente o que você digita.chmod ugo+rwx <file>; chmod u+rwx <file>
não remove o acesso ao grupo / outro.chmod 777
fez, e foi aí que eu direcionei minha explicação.Como outros já mencionaram, você não deve ter permissões definidas para 777
Aqui está uma folha de referência útil que eu uso.
fonte
Para compartilhar arquivos com uma pessoa para quem você fez login, você não precisa fazer nada em particular. Em uma instalação padrão do Debian, os usuários têm acesso aos diretórios pessoais uns dos outros.
Por exemplo,
As permissões no meu diretório pessoal são de leitura (r) e acesso (x) para qualquer usuário no meu sistema. Além disso, só tenho acesso de gravação (w) .
Além disso, o padrão
umask
no Ubuntu é tal que os arquivos e diretórios criados pelos usuários são legíveis mundialmente por padrão . Você pode definirumask
como077
se não quiser isso.O que isso significa que, em uma configuração padrão, se o usuário
you
deseja compartilhar um documento~/README.txt
comigo, não há nadayou
a fazer. Eu posso simplesmente vê-lo:Não consigo editar ou remover o arquivo, mas posso copiá-lo para um local onde tenho permissão de gravação. Então eu possuo a cópia:
Existem boas razões pelas quais a maior parte do sistema é legível mundialmente por padrão, como expliquei em outra resposta no AskUbuntu . No entanto, em um sistema compartilhado, pode fazer sentido tornar os diretórios pessoais inacessíveis a não proprietários:
... como muitos usuários aparentemente não estão cientes do padrão - QED ;-). Seria mais sensato conscientizar os usuários de que as permissões de arquivo não protegem segredos.
fonte
No Ubuntu, qualquer usuário tem privilégio de superusuário adicionado ao grupo 'sudo'. Verifique se nenhum outro usuário foi adicionado a este grupo.
Para proteger seus arquivos e diretórios de outros usuários, você pode definir a permissão, conforme sugerido pelo Sr. Journeyman Geek na resposta acima.
Você também pode usar permissões especiais para proteger seus arquivos e diretórios de outras pessoas.
fonte