0

学生がプログラミングの課題をチェックインし、成績を表示するために使用する setuid ページがあります。一般的な使用方法は次のとおりです。

<pre>
   ~csXXX/bin/checkin key fileName

   ~csXXX/bin/grade key
</pre>

ユーザーは、部門のマシンにアカウントを持っている必要があります。さらに、誰でもチェックイン/グレードを実行できますが、特定のクラスにも登録されている場合にのみ機能します。

学生は、タブレット/スマートフォンのブラウザから自分の成績にアクセスできるようにすることを要求しています。次のようなphpページのようなものを検討していました

<pre>
  &lt;?php
  &lt;pre&gt;
    shell_exec("echo $password" | su - $user -c "~csXXX/bin/grade key")
  &lt;/pre&gt;
  ?&gt;
</pre>

ただし、これはエラーメッセージで失敗します

<pre>
Password: stty: standard input: Inappropriate ioctl for device
</pre>

実行が実際に学生として行われるように、sudoの代わりにsuを使用したいと思います。Web ページでは学生がログインする必要があるため、学生の ID/パスワードにアクセスできます。これを行う方法の提案はありますか?

チェックイン プログラムは、提出されたファイルを部門のマシンにコピーし、学生としてチェックインを実行する必要があるため、Web ページから実行する場合はもう少し手間がかかります。一部の学生はファイルを学部のマシンに ftp で送信し、チェックインに ssh を使用することに消極的であるように思われるため、これを検討しています。

十分にデバッグされている既存のプログラムをラップして、学生がシェルまたは Web から機能にアクセスできるようにしたいと考えています。

ありがとうございました。

4

1 に答える 1