මෙහි බොහෝ පිළිතුරු ලියා ඇත්තේ ආරක්ෂාව මනසේ තබාගෙන නොවේ. sudo
සෑම අවස්ථාවකදීම ධාවනය කිරීම එතරම් .ානවන්ත නොවන බවට හැඟීමක් ලබා ගැනීම හොඳය . ඔබ යතුරු ලියනය කරන්නේ නම් (නිදසුනක් ලෙස වැරදි ස්ථානයක තනි සුදු ඉඩක්: sudo rm -rf / var/www/dir
ක්රියාත්මක නොකරන්න! ), ඔබට ඔබේ පද්ධතිය කුණු කූඩයට දැමිය හැකිය.
සටහන: අපාචේ 2.4.7 / උබුන්ටු 14.04 සිට ආරම්භ කර, ඒ අනුව මෙම පිළිතුරෙහි ඇති විධාන සකස් /var/www
කිරීමට ගෙන ඇත /var/www/html
.
බලන්න:
නරක අදහස්:
chmod 777
(sagarchalise) - මේ බහලුම් සහ ගොනු ඔබගේ පද්ධතිය ලිවීම් ප්රවේශය ඇති ඕනෑම අයෙකුට ඉඩ දෙන අතර එමගින් අනවසරයෙන් ඇතුල් යටතේ ඕනෑම කේතය ක්රියාත්මක කිරීමට ඉඩ www-data
පරිශීලක
chgrp -R www-data $HOME
(cob) - මෙය www-data
නිවාස නාමාවලියෙහි ඇති ඕනෑම ලිපිගොනු කියවීමට හෝ ලිවීමට ඉඩ දෙයි . මෙය අවම වරප්රසාද නීතිය මතකයේ තබා ගැනීම නොවේ
chown -R $USER:$USER /var/www
(kv1dr) - ලෝකයට කියවීමේ අවසරය නොමැති නම්, /var/www
යටතේ ක්රියාත්මක වන වෙබ් සේවාදායකයට www-data
ලිපිගොනු කියවීමට (සේවය කිරීමට) නොහැකි වනු ඇත. ගොනුව පොදු ප්රවේශ විය හැකි සරල HTML ලේඛනයක් නම්, ලෝකයට ගොනුව කියවිය හැකි නම් එය ගැටළුවක් නොවනු ඇත. නමුත් ගොනුව මුරපද අඩංගු PHP ගොනුවක් නම්, එය එසේ ය.
සටහන : පහත විසඳුම් තුළ මම ලිඛිත www-data
වරප්රසාද ලබා දී ඇත. කෙසේ වෙතත්, /usr/share/doc/base-passwd/users-and-groups.txt.gz
මෙසේ සඳහන් වේ:
www-data
සමහර වෙබ් සේවාදායකයන් www-data ලෙස ක්රියාත්මක වේ. වෙබ් අන්තර්ගතය මෙම පරිශීලකයාට අයිති නොවිය යුතුය, නැතහොත් සම්මුති විරහිත වෙබ් සේවාදායකයෙකුට වෙබ් අඩවියක් නැවත ලිවීමට හැකි වනු ඇත. වෙබ් සේවාදායකයන් විසින් ලියන ලද දත්ත www-data සතු වේ.
හැකි සෑම අවස්ථාවකදීම කණ්ඩායමට ලිඛිත අවසර ලබා නොදෙන්නwww-data
. ලිපිගොනු කියවීමටwww-data
හැකි වීම පමණක් අවශ්ය බැවින් වෙබ් සේවාදායකයාට එය සේවය කළ හැකිය. ලිවීමට අවසර අවශ්ය එකම අවස්ථාව වන්නේ උඩුගත කිරීම් සහ ලිවිය යුතු වෙනත් ස්ථාන ගබඩා කරන නාමාවලි සඳහා ය.www-data
විසඳුම 1
ඔබම www-data
කණ්ඩායමට එකතු කර /var/www
අලුතින් සාදන ලද සියලුම ලිපිගොනු මෙම කණ්ඩායමට උරුම වන පරිදි ඩිරෙක්ටරියේ setgid bit සකසන්න .
sudo gpasswd -a "$USER" www-data
කලින් සාදන ලද ලිපිගොනු නිවැරදි කරන්න (ඔබ එකම පරිශීලකයා යැයි උපකල්පනය කරයි /var/www
):
sudo chown -R "$USER":www-data /var/www
find /var/www -type f -exec chmod 0660 {} \;
sudo find /var/www -type d -exec chmod 2770 {} \;
(ඊටත් වඩා ආරක්ෂිතයි: වෙබ් සේවාදායකය විසින් ලිවිය යුතු භාවිතය 640
හෝ 2750
අතින් භාවිතා කිරීම chmod g+w file-or-dir
)
විසඳුම 2
ඔබේ නිවාස නාමාවලියට එක් එක් ව්යාපෘතිය සඳහා සිම්ලින්ක් සාදන්න. ඔබේ ව්යාපෘතිය පිහිටා ~/projects/foo
ඇති බවත් එය /var/www/foo
ක්රියාත්මක කිරීමට අවශ්ය බවත් පවසන්න , ධාවනය කරන්න:
sudo ln -sT ~/projects/foo /var/www/foo
ඔබගේ නිවසේ නාමාවලියෙහි other
(ආරක්ෂක හේතූන් මත) ක්රියාත්මක කිරීමේ බිට් (බැසයාම) නොමැති නම් , එහි කණ්ඩායම වෙනස් කරන්න www-data
, නමුත් ක්රියාත්මක කිරීමේ බිට් පමණක් සකසන්න (කියවීමට / ලිවීමට නැත). ~/projects
Www හැර වෙනත් ව්යාපෘති අඩංගු විය හැකි බැවින් ෆෝල්ඩරය සඳහාද එසේ කරන්න . (ඔබ sudo
මීට පෙර ඔබේ පරිශීලකයා www-data
කණ්ඩායමට එකතු කර ඇත්නම් ඔබට අවශ්ය නොවේ .)
sudo chgrp www-data ~ ~/projects
chmod 710 ~ ~/projects
කණ්ඩායම www-data
සක්රීය ~/projects/foo
කර වෙබ් සේවාදායකයාට ලිපිගොනු සහ ලිපිගොනු + ඩිරෙක්ටරි කියවීමට හා ලිවීමට ඉඩ දී නාමාවලි වලට බැසීමට ඉඩ දෙන්න:
sudo chgrp www-data ~/projects/foo
find ~/projects/foo -type f -exec chmod 660 {} \;
find ~/projects/foo -type d -exec chmod 2770 {} \;
ඊටත් වඩා ආරක්ෂිතයි: පෙරනිමියෙන් 640 සහ 2750 භාවිතා කරන්න සහ වෙබ් සේවාදායක පරිශීලකයාට ලිවිය යුතු ගොනු සහ නාමාවලි අතින් chmod කරන්න. Setgid bit එකතු කළ යුත්තේ ඔබට අලුතින් සාදන ලද සෑම ගොනුවක්ම ~/projects/foo
කණ්ඩායමට ප්රවේශ වීමට අවශ්ය නම් පමණි .
මෙතැන් සිට, ඔබට ඔබේ වෙබ් අඩවියට පිවිස http://localhost/foo
ඔබේ ව්යාපෘති ගොනු සංස්කරණය කළ හැකිය ~/projects/foo
.
මෙයද බලන්න