මෙහි බොහෝ පිළිතුරු ලියා ඇත්තේ ආරක්ෂාව මනසේ තබාගෙන නොවේ. 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, නමුත් ක්රියාත්මක කිරීමේ බිට් පමණක් සකසන්න (කියවීමට / ලිවීමට නැත). ~/projectsWww හැර වෙනත් ව්යාපෘති අඩංගු විය හැකි බැවින් ෆෝල්ඩරය සඳහාද එසේ කරන්න . (ඔබ 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.
මෙයද බලන්න