Você parece entender o conceito de permissões, mas acho que está se envolvendo com usuário / grupo / outro e o que isso significa em vários contextos.
Resumidamente,
- Um usuário é uma conta POSIX individual
- Um grupo é um agrupamento lógico de várias contas POSIX
Um arquivo no disco tem dois proprietários. O proprietário user
e o proprietário group
. Para qualquer arquivo em particular, other
é qualquer conta de usuário que não corresponda à user
nem seja membro da group
. Em outras palavras, other
é qualquer usuário que não seja o proprietário do usuário e não é um membro do proprietário do grupo.
Além disso, cada processo é executado sob um ID de usuário específico (ou UID) e é membro de um ou mais IDs de grupo (GID). Use o comando ps -ef
(no Linux e Solaris, ou ps -ej
no OS X ou * BSD) para ver o usuário executando cada processo. Você verá que o apache e o ws_ftp também estão sendo executados pelos usuários.
Quando um processo tenta acessar um arquivo no disco, ocorre o seguinte:
- Se o
UID
do processo corresponder ao proprietáriouser
do arquivo, as permissõesuser
serão aplicadas. - Senão, se qualquer
GID
s do processo corresponder ao proprietáriogroup
do arquivo, as permissõesgroup
serão aplicadas. - Outras permissões de
other
são aplicadas.
Para responder às suas perguntas especificamente:
When I log in with WS_FTP, am I Owner?
Tecnicamente sim, porque há sempre um proprietário, mas depende da sua definição de "I" .
Se você estiver efetuando login como um usuário POSIX real no sistema, os arquivos criados / acessados serão como o usuário com o qual você efetuou login. Se você registrou anonimamente, os arquivos criados / acessados serão os do UID do WS FTP . Isso provavelmente será ftp
ou nobody
.
Is a web browser an Other?
O navegador da Web não é nada porque não está sendo executado no servidor. Mas o navegador acessa um servidor da web . O servidor da web está sendo executado como um usuário específico (assim como o WS_FTP é). Esse usuário provavelmente é www-data
, apache
ou nobody
.
Do the PHP scripts themselves fall into one of these classes?
Os scripts PHP são executados pelo módulo do mecanismo de script do servidor da web. Eles serão executados como o mesmo usuário executando o servidor da Web.
Is there a difference between read and execute on a .php file?
Sim. Ler significa que o usuário pode ler o conteúdo do arquivo. Executar significa que o conteúdo pode ser executado como um processo completo.
Como os scripts PHP são executados dentro do mecanismo de script do servidor da Web (isto é, eles fazem parte do espaço de memória e do encadeamento de execução do servidor), eles não precisam ser definidos como executáveis.
Since I have no idea who "inetuser" is, would I be correct in not giving Group any permissions? What if this was not the case (i.e., the site's username was also used for Group - which it is on my dev site on a different host)?
inetuser
é uma conta de usuário no sistema, assim como sua conta. Também pode ser um grupo. Espero que você possa responder a essa pergunta depois de ler isto.
What permissions does each kind of file/dir need under these circumstances?
Geralmente, você deseja que os arquivos de dados sejam possuídos por contas de usuário que são usadas por pessoas reais (por exemplo, você). Em outras palavras, o seu conteúdo da web não deve ser de propriedade do usuário do apache .
- As permissões de usuário devem ser quase sempre rw - para arquivos de dados ou rwx para diretórios e programas.
- As permissões de grupo geralmente devem ser r-- para arquivos de dados ou r-x para diretórios e programas. Se você quiser que os membros desse grupo possam gravar nesses arquivos, ele deverá ser rw- e rwx.
- Outras permissões devem ser quase sempre r - para arquivos de dados e rx para diretórios e programas ou --- se você quiser negar todo o acesso.