Care sunt permisiunile corecte pentru un folder de încărcare cu PHP/Apache?

Ne pare rau pentru intrebarea de baza - Sunt un dezvoltator .NET si nu am prea multa experienta cu setarile LAMP.

Am un site PHP care va permite încărcarea unui anumit dosar. Mi sa spus că acest dosar trebuie să fie deținut de utilizatorul serverului web pentru ca procesul de încărcare să funcționeze, așa că am creat dosarul și apoi am setat permisiunile ca atare:

chown apache:apache -R uploads/
chmod 755 -R uploads/

Singura problemă acum este că utilizatorul FTP nu poate modifica deloc fișierele încărcate.

Există o setare de permisiune care îmi va permite să mai încarc fișiere și apoi să le modific mai târziu ca utilizator diferit de cel al serverului de webserver?

0
fr hi bn

8 răspunsuri

Voi adăuga că, dacă folosiți SELinux, trebuie să vă asigurați că contextul de tip este tmp_t Puteți realiza acest lucru utilizând utilitarul chcon

chcon -t tmp_t se încarcă

0
adăugat

Aveți posibilitatea să creați un nou grup cu utilizatorul și utilizatorul FTP ca membri și apoi să faceți permisiunea în dosarul de încărcare 775. Acest lucru ar trebui să ofere utilizatorilor apache și FTP abilitatea de a scrie fișierele din dosar, de la modificarea acestora.

0
adăugat
un director de încărcare ar trebui să conțină numai fișiere jpg, gif etc. Desigur, nu, să zicem, fișiere PHP încărcate de cineva sau fișiere script de shell. Există o modalitate de a evita ca serverul apache să execute fișiere PHP în dosarul de încărcare?
adăugat autor Toskan, sursa
Nu uitați că puteți evita numerele magice obtuzate prin comanda chmod u + rwX, go + r theFolder !
adăugat autor Kzqai, sursa
probabil că nu este ceea ce el ment pentru că el mint încărcarea fișierelor în modul în care utilizatorul de site-ul încărca fișiere. acolo aveți nevoie de permisiuni 777
adăugat autor Luka Govedi?, sursa

Aș merge cu răspunsul lui Ryan dacă vrei cu adevărat să faci asta.

În general, într-un mediu * nix, întotdeauna doriți să greșiți să acordați cât mai puține permisiuni.

De 9 ori din 10, 755 este permisiunea ideală pentru acest lucru - singurul utilizator cu capacitatea de a modifica fișierele va fi serverul de web. Schimbați acest lucru la 775 cu utilizatorul dvs. ftp într-un grup, dacă aveți REAL necesitatea de a schimba acest lucru.

Since you're new to PHP by your own admission, here's a helpful link for improving the security of your upload service: move_uploaded_file

0
adăugat

Sau cel puțin 766.

  • citiți = 4
  • scrie = 2
  • execuție = 1

7 = read + write + execute

6 = citire + scriere

  • primul număr: proprietar
  • al doilea număr: grup
  • al treilea număr: alți utilizatori
0
adăugat
Nu ar fi 766 pe folder să permită altor persoane să încarce fișiere acolo și cod rău intenționat?
adăugat autor Fahad Uddin, sursa
dezactivați executarea php/sau a altui script în dosarul încărcărilor
adăugat autor Ravinder Payal, sursa

Pe baza răspunsului din @Ryan Ahearn , următorul lucru este ceea ce am făcut pe Ubuntu 16.04 pentru a crea un utilizator front care are permisiunea doar pentru web nginx dir /var/www/html .

Pași:

* pre-steps:
    * basic prepare of server,
    * create user 'dev'
        which will be the owner of "/var/www/html",
    * 
    * install nginx,
    * 
* 
* create user 'front'
    sudo useradd -d /home/front -s /bin/bash front
    sudo passwd front

    # create home folder, if not exists yet,
    sudo mkdir /home/front
    # set owner of new home folder,
    sudo chown -R front:front /home/front

    # switch to user,
    su - front

    # copy .bashrc, if not exists yet,
    cp /etc/skel/.bashrc ~front/
    cp /etc/skel/.profile ~front/

    # enable color,
    vi ~front/.bashrc
    # uncomment the line start with "force_color_prompt",

    # exit user
    exit
* 
* add to group 'dev',
    sudo usermod -a -G dev front
* change owner of web dir,
    sudo chown -R dev:dev /var/www
* change permission of web dir,
    chmod 775 $(find /var/www/html -type d)
    chmod 664 $(find /var/www/html -type f)
* 
* re-login as 'front'
    to make group take effect,
* 
* test
* 
* ok
* 

0
adăugat

Aș susține ideea creării unui grup ftp care să aibă drepturi de încărcare. Cu toate acestea, nu cred că este necesar să acordăm permisiunea 775. 7 înseamnă citire, scriere, executare. În mod normal, doriți să permiteți anumitor grupuri să citească și să scrie, dar, în funcție de caz, executarea poate să nu fie necesară.

0
adăugat

Ceea ce este important este ca utilizatorul și grupul apache să aibă acces minim read și, în unele cazuri, execute acces. În rest, puteți oferi accesul 0 .

Aceasta este setarea cea mai sigură.

0
adăugat

Remember also CHOWN or chgrp your website folder. Try myusername# chown -R myusername:_www uploads

0
adăugat
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT