מזה היית צריך להתחיל =)
ולא ללכת סחור סחור.
אתה יכול להוסיף לקוד שאיתי הביא לך שיעשה את ה chroot אחרי ה fork בילד לפני שהוא מריץ את התוכנה עצמה.
שהתוכנה תעלה כ-ROOT, הילד ירוץ גם כ-root, יעשה Chroot, יזרוק את ההרשאות עם setgid/setuid ויריץ את מה שאתה רוצה להריץ.
בנוסף אין בקוד שלו הגבלה על זכרון שהתוכנה יכולה לתפוס.
בספרייה שאתה עושה אלייה chroot צריך שיהיה לך את כל הספריות שתוכנה צריכה בשביל לרוץ, ספריות C סטנדרטיות (libc.so) וכל דבר אחר שהיא משתמשת וזה כמו שכבר הבנת כאב ראש לא קטן, אבל במקרה שלך, לסטודנטים שי בטח סט מאוד מוגבל של דברים שהם משתמשים אז זה אמור להיות יותר פשוט ואפשר להסתדר =)