Hélder Posted September 25, 2012 at 08:20 PM Report #476511 Posted September 25, 2012 at 08:20 PM (edited) Boa noite, estou a utilizar o Fedora 10 e queria criar uma pasta na raíz "/" mas não estou a conseguir, se alguém poder dar uma vista de olhos ao código abaixo e dizer o que estou a fazer mal agradeço agradeço. <?php $n_pasta = $_POST["Pasta"]; mkdir("$n_pasta/"); ?> Comprimentos, Hélder Edited September 27, 2012 at 09:48 AM by Hélder
HappyHippyHippo Posted September 25, 2012 at 08:29 PM Report #476516 Posted September 25, 2012 at 08:29 PM só uma utilizador com permissões de root pode criar pastas na raiz. o utilizador do apache não tem permissões para isso IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Hélder Posted September 25, 2012 at 08:34 PM Author Report #476518 Posted September 25, 2012 at 08:34 PM Mas se eu estiver logado na conta do root não deveria de dar?
HappyHippyHippo Posted September 25, 2012 at 08:35 PM Report #476520 Posted September 25, 2012 at 08:35 PM não quem faz a acção será sempre o utilizador do apache (servidor web) estejas tu autenticado ou não 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
taviroquai Posted September 25, 2012 at 08:39 PM Report #476526 Posted September 25, 2012 at 08:39 PM O user que corre o script php, quando o script é chamado pelo browser, normalmente é www-data. Ainda que seja possivel criares pastas na raiz com este user, não me parece de todo uma boa prática... O melhor será criares as pastas num subdirectorio por exemplo /var/www/pastas e este directorio tem que ter permissões de escrita para o user www-data.
Hélder Posted September 25, 2012 at 08:45 PM Author Report #476530 Posted September 25, 2012 at 08:45 PM Para o efeito tinha de ser mesmo na raiz, se me poderes explicar como posso criar pastas na raiz agradeço 😉
taviroquai Posted September 25, 2012 at 08:47 PM Report #476532 Posted September 25, 2012 at 08:47 PM (edited) Não tenho a certeza mas se colocares o www-data como sudoer e sem password, é capaz de dar... Mas não faças isto!!! 😄 Edited September 25, 2012 at 08:48 PM by taviroquai
Hélder Posted September 25, 2012 at 09:00 PM Author Report #476538 Posted September 25, 2012 at 09:00 PM Não existe outra forma?
HappyHippyHippo Posted September 25, 2012 at 09:44 PM Report #476557 Posted September 25, 2012 at 09:44 PM pode existir ainda o problema de o php(www-data) não ter permissões para manusear nós do sistema fora do local do site ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
KTachyon Posted September 26, 2012 at 03:42 PM Report #476642 Posted September 26, 2012 at 03:42 PM http://en.wikipedia.org/wiki/Setuid “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
Hélder Posted September 27, 2012 at 09:47 AM Author Report #476746 Posted September 27, 2012 at 09:47 AM (edited) Estive a ler algumas coisas e fiz algumas mudanças. <?php $n_pasta = $_POST["Pasta"]; mkdir("/$n_pasta", 0777); ?> Com isto penso que já deveria de dar para criar a pasta na raíz, no entanto continua a dizer que não tenho permissões. Edited September 27, 2012 at 09:48 AM by Hélder
HappyHippyHippo Posted September 27, 2012 at 10:03 AM Report #476748 Posted September 27, 2012 at 10:03 AM isso são as permissões de acesso á pasta que estás a criar, não as permissões que o utilizador tem para escrever na raiz do servidor IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
yoda Posted September 27, 2012 at 10:31 AM Report #476750 Posted September 27, 2012 at 10:31 AM Se diz que não tens permissões é porque o owner da pasta raiz não é quem devia ser. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
Hélder Posted September 27, 2012 at 11:22 AM Author Report #476757 Posted September 27, 2012 at 11:22 AM É que eu nunca utilizei o linux, posso estar a fazer qualquer coisa mal mas quando me logo no fedora entro com a conta root.
KTachyon Posted September 27, 2012 at 11:24 AM Report #476760 Posted September 27, 2012 at 11:24 AM O Apache não corre como root... “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
HappyHippyHippo Posted September 27, 2012 at 11:27 AM Report #476763 Posted September 27, 2012 at 11:27 AM É que eu nunca utilizei o linux, posso estar a fazer qualquer coisa mal mas quando me logo no fedora entro com a conta root. não quem faz a acção será sempre o utilizador do apache (servidor web) estejas tu autenticado ou não IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Hélder Posted September 27, 2012 at 05:49 PM Author Report #476801 Posted September 27, 2012 at 05:49 PM Dá para dar ao apache permissões de root? Se der já deve ter permissões para realizar a acção, certo?
HappyHippyHippo Posted September 27, 2012 at 05:57 PM Report #476802 Posted September 27, 2012 at 05:57 PM (edited) Sim dá, mas existe uma razão para não o fazer - o utilizador do apache passa a ter permissões para fazer tudo no sistema, incluindo estoirar com tudo. O ponto fundamental ainda continua a não ser respondido : "É mesmo necessário criar na raiz do sistema de ficheiros ?" Edited September 27, 2012 at 05:59 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Hélder Posted September 27, 2012 at 06:39 PM Author Report #476810 Posted September 27, 2012 at 06:39 PM (edited) O ponto fundamental ainda continua a não ser respondido : "É mesmo necessário criar na raiz do sistema de ficheiros ?" É o seguinte tenho um trabalho para a escola que é automatizar o servidor de reposição de imagens da escola, para isso tenho que criar/manipular algumas pastas e ficheiros na raiz. Edited September 27, 2012 at 06:40 PM by Hélder
KTachyon Posted September 27, 2012 at 07:03 PM Report #476814 Posted September 27, 2012 at 07:03 PM Custa-me acreditar que isso tenha que ser feito à custa de pastas criadas na raiz... De qualquer forma, a minha sugestão continua a ser a que referi com um link para a Wikipedia: utilizar setuid. Basicamente tens que criar um programa (compilado, possívelmente em C), que efectua a criação das pastas e que é chamado pelo PHP que lhe fornece um parâmetro que é a pasta a ser criada. Esse programa deverá criar a pasta e alterar as permissões da mesma para que possam ser realizadas operações pelo Apache Web Server. chown root:apache my_setuid_program chmod 4750 my_setuid_program Resultará qualquer coisa do género: -rwsr-x---. 1 root apache 6579 Sep 27 2012 my_setuid_program Quando chamares o programa através do PHP, este irá ser executado pelo utilizador apache, com permissões de root. Como o programa faz um conjunto de operações limitadas que são implementadas por ti, se o desenvolveres correctamente, não deverás ter grandes problemas de segurança. Agora, aquilo que eu te recomendo mesmo, mesmo, mesmo, é veres se não há mesmo nenhuma forma de dares a volta a isso e passares a utilizar outra pasta mais adequada para isto. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now