Vra

Jammer vir die basiese vraag -. Ek is 'n NET ontwikkelaar en het nie veel ervaring met LAMP setups

Ek het 'n PHP webwerf wat oplaai sal toelaat om 'n spesifieke gids. Ek is meegedeel dat hierdie gids moet in besit van die webbediener gebruiker vir die oplaai proses om te werk, so ek het die gids en dan stel regte as sodanig:

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

Die enigste probleem is nou dat die FTP gebruiker nie die opgelaaide lêers glad kan verander.

Is daar 'n toestemming instelling wat my sal toelaat om nog oplaai van lêers en dan hulle later verander as 'n ander persoon as die webbediener gebruiker?

gebruiker
Was dit nuttig?

Oplossing

Jy kan 'n nuwe groep te skep met beide die apache gebruiker en FTP gebruiker as lede en dan maak die toestemming van die gids oplaai 775. Dit moet beide die apache en FTP gebruikers die vermoë om die lêers te skryf in die gids gee, maar hou almal van hulle verander.

Ander wenke

Ek sou gaan met antwoord Ryan se as jy regtig wil om dit te doen.

In die algemeen op 'n * nix omgewing, jy altyd wil om te dwaal op weggee so min regte as moontlik te maak.

9 keer uit 10, 755 is die ideale toestemming vir hierdie - as die enigste gebruiker met die vermoë om die lêers te verander sal die webbediener wees. Verander dit na 775 met jou ftp gebruiker in 'n groep as jy regtig nodig het om dit te verander.

Aangesien jy nuwe PHP deur jou eie toelating is, hier is 'n nuttige skakel vir die verbetering van die veiligheid van jou oplaai diens: move_uploaded_file

Of ten minste 766.

  • Lees = 4
  • skryf = 2
  • voer slegs = 1

7 = lees + skryf + voer

6 = lees + skryf

  • eerste nommer: eienaar
  • tweede nommer: groep
  • derde nommer: ander gebruikers

Ek sal byvoeg dat as jy 'SELinux wat jy nodig het om seker te maak die tipe konteks is tmp_t Jy kan dit te bewerkstellig deur die gebruik van die chcon nut

  

chcon t tmp_t oplaai

Wat belangrik is, is dat die apache gebruiker en groep minimum read toegang moet hê en in sommige gevalle execute toegang. Vir die res kan jy 0 toegang gee.

Dit is die mees veilige omgewing.

Ek sou die idee van die skep van 'n ftp-groep wat die regte op te laai sal ondersteun. Maar ek dink nie dit is nodig om 775 toestemming gee. 7 erwe vir lees, skryf, uit te voer. Normaalweg jy wil toelaat dat sekere groepe te lees en te skryf, maar afhangende van die geval, uit te voer nie nodig wees nie.

Onthou ook CHOWN of chgrp jou gids webwerf. Probeer myusername# chown -R myusername:_www uploads

Op grond van die antwoord van @Ryan Ahearn, volgende is wat ek gedoen het op Ubuntu 16.04 tot 'n gebruiker front dat slegs toestemming vir nginx se web dir /var/www/html skep.

Stappe:

* 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
* 

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top