我有一個setuid頁面供學生用來檢查他們的編程作業並查看他們的成績。典型用法是:從網頁訪問setuid程序
<pre>
~csXXX/bin/checkin key fileName
~csXXX/bin/grade key
</pre>
用戶必須在部門機器上有一個帳戶。此外,任何人都可以運行簽入/等級,但只有在註冊了特定班級的情況下才能使用。
學生要求他們能夠通過平板電腦/智能手機上的瀏覽器訪問他們的成績。我正在考慮像一個PHP頁面下面
<pre>
<?php
<pre>
shell_exec("echo $password" | su - $user -c "~csXXX/bin/grade key")
</pre>
?>
</pre>
然而,這種失敗,出現錯誤消息
<pre>
Password: stty: standard input: Inappropriate ioctl for device
</pre>
我相信我想,而不是使用sudo的蘇,以便執行居然是學生。該網頁將要求學生登錄,因此它有權訪問他們的ID /密碼。有沒有人有如何做到這一點的建議?
如果從網頁中執行簽入程序,它會將更多的工作複製到部門機器上,然後作爲學生運行簽入。我們正在考慮這個,因爲有些學生似乎不願意將ftp文件發佈到部門機器上,並使用ssh進行簽入。
我更願意包裝現有的程序,因爲它們調試良好,並允許學生從shell或web訪問功能。
謝謝。