Eu estou fazendo um construtor de sites, e eu tenho o arquivo render.php
, que precisa escrever para os diretórios dos usuários. Eu não quero dar cada um dos diretórios dos usuários 0777, mas eu ainda preciso ser capaz de escrever para eles. Existe uma maneira de fazer isso?
Até agora eu tenho:
render
(dir) ... 0777render.php
... 777 EscritosTo->users
(dir) ....... 0777index.php
..... 777
Eu quero mudar isso para permitir acesso render.php para alterar os arquivos dos usuários, mas não permitir que os próprios arquivos executem o código.
ubuntu
permissions
apache-http-server
php
Riiich
fonte
fonte
Respostas:
Se eu entendi bem, eu acho que este procedimento deve dar o que você quer.
renderusers
para o diretório do usuário:groupadd renderusers
user
diretório para renderusers:chgrp renderusers user
usermod -G rendergroup -a apache
user
diretório para incluirset group ID
para que o gruporenderusers
possa gravar e alterar arquivos, e cada arquivo recém-criado pertencerá aorenderusers
grupo neste diretório:chmod -R 2770 user
Eu suponho que você está executando o php como um módulo DSO e não via cgi.
fonte
chgrp: cannot access 'user': No such file or directory
. Quanto à sua pergunta sobre DSO ou CGI, eu sinceramente não tenho ideia! Eu instalei o lampp e estou usando isso se isso ajudar!ls -la users
. Além disso,getent group | grep -i apache
se o usuário do apache for apache e não www-data.getent group | grep -i www-data
=www-data:x:33: renderusers:x:1002:richard,www-data
ls -la users
=drwxrwxr-x 5 richard 2770 4096 Mar 4 18:17 . drwxrwxr-x 28 richard richard 4096 Mar 6 13:30 .. drwxrwxr-x 3 richard 2770 4096 Mar 1 00:08 1 drwxrwxr-x 3 richard 2770 4096 Mar 4 18:17 3 drwxr-xr-x 3 richard 2770 4096 Feb 25 00:54 riiich
O nome de usuário que eu fiz logon no meu servidor érichard
Eu não estou suficientemente familiarizado com o Apache para poder orientá-lo através do procedimento de configuração do site, mas posso sugerir uma resposta no nível de permissões do Unix:
riiich_app
)chgrp riiich_app
echmod 775
em cada um dos diretórios dos usuários (e dizer-lhes para não mudar isso) e, em seguida,render.php
sob oriiich_app
grupo.fonte
fred
a um grupo deriiich_app
, e tiver um modo de 775 ou 664, Fred terá acesso de gravação a ele, assim como qualquer pessoa doriiich_app
grupo (mas ninguém mais). “Qualquer pessoa noriiich_app
grupo” deve ser interpretada como “qualquer processo executado sob oriiich_app
ID do grupo”. // Eu acredito que não entendi inteiramente sua pergunta. O que você quer dizer com “os usuários não podem mudar nada assim” - você está dizendo que eles não podem fazer login em um shell (por exemplo, portelnet
oussh
)?rmdir "../*"
(eu sei que não é código real, eu estou apenas ilustrando.Você pode dar ao seu nome de usuário do servidor da Web as permissões 0777. No caso do Apache2, isso é www-data. Não sei exatamente como fazer isso com chmod, mas você pode
chown www-data 777
.fonte
chown www-data 777
? Isso não faz sentido. -1