Cannot create directory ‘blah’: Too many links

Sabtu lepas aku ada training dekat UiTM Dungun Terengganu, training hands on sistem i-Learn. Mula-mula semuanya berjalan lancar tanpa masalah tapi bila masuk bahagian Course Content ada satu masalah yang memeningkan kepala.

Masalahnya ialah, bila pensyarah nak download nota, dia kata Could not download the file. Yang memeningkan kepala lagi adalah, cuma sesetengah pensyarah sahaja yang mengalami masalah ini. Ada yang ok, ada yang tidak ….. huhuhuhu memang serabut.

Pada awalnya aku syak yang folder download pensyarah ini terlupa dicreate. So aku pun terjah masuk ke dalam server dan check, memang betul pun, folder download dia tak wujud. Aku cuba create folder dengan command mkdir tapi aku dapat error ni:

% sudo mkdir blah
Cannot create directory ‘blah’: Too many links

First time aku tengok error macam ni, bingong kejap jadinya. Google sana google sini baru aku paham. Rupa-rupanya ada limitation pada number of subdirectories yang boleh dicreate dalam sesuatu directory. Untuk filesystem ext3, didalam sesuatu directory cuma boleh ada maximum 32000 subdirectories.

Nombor ni memang telah diukir dan dipahat dalam source code jadi kalau nak ubah boleh, cuma perlu recompile kernel. Since aku rasa ada reason yang berkaitan dengan performance mengapa developer2 filesystem ini set kan maximum, aku mengambil jalan untuk tidak recompile kernel.

Aku set kan je kat cron untuk empty kan subdirectories dalam directory tu bila sampai masanya. Lebih mudah dan turns out that aku save 20% storage …. nice

Rujukan:
http://en.wikipedia.org/wiki/Ext3#cite_note-0

No Comments

Macam mana nak halang user dari execute file .php

Aku ada satu masalah, dalam i-Learn ni ada satu fungsi yang diberi nama myDrawer. MyDrawer ni fungsinya adalah untuk allow user upload apa2 file yang diorang suka ke dalam server. Ini lebih kurang macam daya tarikan untuk user berminat menggunakan i-Learn.

Masalahnya ialah, aku dapat tahu ada student yang upload file .php dalam tu and cuba execute unwanted code dalam server, haxor la kiranya2 ni. Aku tak kisah sangat sebab dalam i-learn ni pun bukan ada data confidential tapi cuma risau, kalau student2 ni bawak cerita dan sampai ke pengetahuan lecturer, maka akan hilanglah kepercayaan lecturer kepada i-learn.

Jalan penyelesaiannya, disablekan php execution pada directory yang allow student untuk upload file. Tapi macam mana …

Ini langkah2 untuk Ubuntu dan PHP4

1. buka file /etc/apache2/apache2.conf

2. pergi kat ujung file atau mana2 korang suka.

3. letakkan entry ni

<Directory “/var/www/html/upload/users”>

php_flag engine off

</Directory>

*of course replace directory path dengan korang punya

4. save dan restart apache

sudo /etc/init.d/apache2 restart

Sekarang cuba test upload file php ke dalam directory di atas, instead of executing the php file, anda akan terima satu pop up bertanya sama ada anda ingin open atau save file php tersebut. This should prevent any unwanted php execution on the server.

No Comments