Em resumo ...
- Usuários separados fazem exatamente isso - mantêm as coisas separadas para que um usuário não possa acessar ou modificar os arquivos de outro usuário, dependendo das permissões que o usuário definiu em seus arquivos. Muitos daemons (incluindo o Apache) são executados sob uma conta de usuário específica - por exemplo, a Red Hat tende a usar o usuário 'apache', enquanto o Debian usa 'www-data'. Isso significa que o daemon é tratado como qualquer outro usuário - ele não pode acessar arquivos a que não tem permissão, ao contrário do usuário root O
- Apache, porque está lendo os arquivos do sistema de arquivos, novamente como qualquer outro usuário. Como o PHP geralmente é executado como um módulo dentro do Apache, ele também está sujeito às mesmas restrições. O MySQL, no entanto, tem um esquema de autenticação separado, portanto não há correlação implícita entre usuários locais e usuários de banco de dados
- Se você estiver criando um usuário separado apenas para o seu conteúdo da Web, estará acessando esse usuário para modificar os arquivos pertencentes a esse usuário, provavelmente seu conteúdo da Web.
- Por 'atributo nologin' Estou supondo que você queira dizer que o shell está definido como
/sbin/nologin
- isso impede que o usuário faça login interativamente, ou seja, não é possível conectar o SSH ao servidor ou efetuar login no console. / li> - Para ser honesto, não é algo que possa ser abordado em poucas linhas. Há alguns guias espalhados pela internet voltados para iniciantes - leia alguns e tenha uma idéia!