PDA

查看完整版本 : 學生E-mail申請程式


shenghong
2003-06-13, 10:02 PM
http://www.iwj.com.tw/DB/dls/list.asp?id=144&ppath=undefined
好像有版友需要~
提供版友們參考~
以下是他的說明~

applymail - 學生E-mail申請程式

可透過學務系統讓學生自行申請E-mail,由系統定時上傳至其它主機並開帳。

宣告:1.本程式版權所有,在非營利單位或非營利販售散佈的情況下,可自由使用、修改,但請保留版權宣告部份。
2.本程式可自http://163.20.163.1/down/下載,並保留公開散佈的權利。

程式來自
台北縣立鶯歌高職 ( http://ms3.ykvs.tpc.edu.tw/sfs2/ )

作者
applymail 0.1 -- 曾盛如 ( sheng@ms3.ykvs.tpc.edu.tw )

學務管理系統
校園自由軟體交流網 ( http://sfs.wpes.tcc.edu.tw )

安裝
1.系統要求:
a.本程式須配合unix或unix like系統平台並安裝php+mysql。
b.請配合學務系統。
c.請先行安裝好
(1)samba (http://us1.samba.org/samba/samba.html)
(2)[X] expect-5.32.1或以上版本。

※本程式開發環境freebsd4.6 +apache+php+mysql

2.將程式檔解開
 tar xvfy applymail_0.1.tar.bz2

3.建立資料庫
 mysql -u root -p sfs2 < applymail.sql

4.修改 applymail_inc.php 設定

5.設定開帳檔與上傳檔
 a.預設修改
 修改 util/newuser/applymail.sh 第二行工作路徑
修改 util/newuser/passwd.exp 第一行 expect 所在路徑

請於上傳主機開立帳號applymail,並設定密碼,以利開帳檔上傳。
applymail::102:0::0:0:newuser scp:/etc/newuser:/bin/tcsh

修改 util/newuser.ms2/scp_file.exp 第三行 上傳之 passwd
※工作帳號若不同請繼續修改第四行裡applymail部份。
  scp路徑若不同請修改第四行。

修改 util/newuser.ms2/scp_file.sh 第二行工作路徑

 b.檔案放置
 util/newuser.ms2 -> 申請主機 /etc/newuser.ms2
 util/newuser -> 開帳主機 /etc/newuser
※請對照後述之檔案權限。

6.加入crontab
請修改路徑,及依照想開帳的頻率來設定
a.申請主機
20,40 * * * * root /etc/newuser.ms2/scp_file.sh > /dev/null

b.開帳主機
25,45 * * * * root /etc/newuser/applymail.sh > /dev/null
※請注意與申請主機的相隔時間。

7.檔案權限
/etc/newuser.ms2
drwx------ 3 nobody nogroup 512 7/11 16:22 ./
drwx------ 2 root nogroup 1536 8/22 00:20 log/
-rw------- 1 nobody nogroup 0 8/22 00:20 newuser.sh
-rwx------ 1 root nogroup 201 8/22 00:23 scp_file.exp*
-rwx------ 1 root nogroup 320 7/11 16:21 scp_file.sh*

/etc/newuser
-rwx------ 1 root wheel 369 7 11 16:47 applymail.sh*
-rw-r--r-- 1 root wheel 987 7 10 22:38 index.html
drwx------ 2 root wheel 1536 8 22 00:21 log/
-rwx------ 1 root wheel 182 7 10 19:55 newsql.sh*
-rwx------ 1 applymail wheel 0 8 22 11:14 newuser.sh*
-rwx------ 1 root wheel 435 4 7 21:26 passwd.exp*


8.補充說明
由於pw程式對於":!@"三個在中文常出現的字元,認為不合法字元(invalid character)
 不予處理,請隨時注意util/log下之檔案,以及早發現無法開立之帳號。

※若使用freebsd 請安裝usr.sbin ,修改/usr/src/usr.sbin/pw/pw_user.c
:
pw_checkname(u_char *name, int gecos)
{
int l = 0;
char const *notch = gecos ? ":!@" : " ,\t:+&#%$^()!@~*?<>=|\\/\"";
^^^^^三個碼拿掉即可。
while (name[l]) {
: