• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • igenus用戶申請/刪除的shell腳本

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    我最早是用wxy先生寫的postfix+。。。。那篇文章建立的mailserver,但是imp改動起來不是一般的難,因為每句html代碼都是用print方式來寫的,看著很費力,改動也不方便。后來參照docn先生的文章,采用sqwebmail來做webmail,但是因為當時沒有能夠解決中文名附

    我最早是用wxy先生寫的postfix+。。。。 那篇文章建立的mail server,但是imp改動起來不是一般的難,因為每句html代碼都是用print方式來寫的,看著很費力,改動也不方便。后來參照docn先生的文章,采用sqwebmail來做webmail,但是因為當時沒有能夠解決中文名附件的問題,所以我改用了igenus來做webmail部分。 因為沒有使用vpopmail,所以在管理用戶的時候不太方便,正好我初學shell,就寫了添加/刪除用戶的兩個shell來練手。本著共享的精神以及請各位大蝦指教我的shell編寫,我把我寫的shell腳本發布出來。因為是針對docn修改后的igenus,而且我自己也略微修改了一些部分,所以可能不能直接套用。我把shell的每個部分都加上了注釋,希望能幫助各位朋友看懂。

    addmailuser 
    [code:1:c6ab2a9532]
    #!/bin/sh 

    #配置某些參數 
    uid=12345 #It's postfix's uid 
    gid=12345 #It's postfix's gid 
    imapok=1 #Default allow imap 
    quota=5000000 # It's value equal to postfix's /etc/main.cf : virtual_mailbox_limit 


    #Mysql的控制權限 
    mysql_name=用戶名 
    myrsql_password=密碼 

    echo 'Enter user name:' 
    read name 

    if [ "$name" = "" ]; then 
    echo 'Must input name!' 
    exit 
    fi 

    echo 'Enter user password:[123456]' #如果不輸入密碼直接回車,則默認密碼為123456 
    read password 
    if [ "$password" = "" ]; then 
    password=123456 
    fi 

    echo 'Enter user domain:[mail.xx.cn]' #填寫domain,默認為mail.xx.cn 
    read domain 
    if [ "$domain" = "" ]; then 
    domain=mail.xx.cn 
    fi 

    echo 'Enter user home:[/var/mail/]' #mail用戶的home目錄,默認為/var/mail/ 
    read home 
    if [ "$home" = "" ]; then 
    home=/var/mail/ 
    fi 

    echo 'Enter user maildir:['$domain'/'$name'/Maildir/]' #maildir目錄 
    read maildir 
    if [ "$maildir" = "" ]; then 
    maildir=$domain/$name/Maildir/ 
    fi 

    echo 'Enter user nickname:' #匿稱,如不輸入則和用戶名相同 
    read nickname 
    if [ "$nickname" = ""]; then 
    nickname=$name 
    fi 

    #設置id,添加時間等 
    id=$name@$domain 
    date_add=`date +20%y-%m-%d` 
    time_add=`date +%H:%M:%S` 

    #全部顯示一次上面的參數設置,好核對有寫錯沒 
    echo 'id= '$id 
    echo 'name= '$name 
    echo 'password= '$password 
    echo 'domain= '$domain 
    echo 'home= '$home 
    echo 'maildir= '$maildir 
    echo 'nickname= '$nickname 
    echo 'imapok= '$imapok 
    echo 'date_add= '$date_add 
    echo 'time_add= '$time_add 
    echo 'quota= '$quota 

    #選擇確認添加與否 
    echo "if under value is right,please input 'y' and Enter:" 
    read mychoice 

    if [ "$mychoice" = "y" ]; then 

     echo "use mail;" > tmp_addmailuser.sql #將sql命令寫到一個臨時文件內。。。主要是我菜,不曉得怎么一次用重定向搞定,還有就是這樣寫調試的時候方便一些 
     echo "INSERT INTO virtual_users (id,home,password,maildir,date_add,time_add,domain,name,uid,gid,imapok,quota, 
    pw_gecos) VALUES ('"$id"','"$home"',encrypt('"$password"'),'"$maildir"','"$date_add"','"$time_add"','"$domain"' 
    ,'"$name"',"$uid","$gid","$imapok","$quota",'"$nickname"');" >> tmp_addmailuser.sql #將sql語句也寫進去,這個記得根據自己的數據庫名和字段改哦?。?! 
     mysql -u$mysql_name -p$mysql_password < tmp_addmailuser.sql #執行 
     rm -rf tmp_addmailuser.sql #刪除臨時文件 

    #下面的語句是建立目錄和修改目錄權限以及所有者。。。 
     MailUserDir=$home$domain/$name 
      mkdir -p $MailUserDir 
      /usr/lib/courier-imap/bin/maildirmake $MailUserDir/Maildir 
      /usr/lib/courier-imap/bin/maildirmake -q $quota"S"   $MailUserDir/Maildir 
      chmod -R 700 $MailUserDir 
      chown -R postfix:postfix $MailUserDir 
    else 
      exit 
    fi 
    [/code:1:c6ab2a9532]

    下面的是刪除用戶的,因為不少地方跟上面的相似,我就只注釋關鍵的地方咯
    delmailuser
    [code:1:c6ab2a9532]
    #!/bin/sh 

    #配置某些參數 
    uid=12345 #It's postfix's uid 
    gid=12345 #It's postfix's gid 
    imapok=1 #Default allow imap 
    quota=5000000 # It's value equal to postfix's /etc/main.cf : virtual_mailbox_limit 


    #Mysql的控制權限 
    mysql_name=用戶名 
    myrsql_password=密碼 

    echo 'Enter user name:' 
    read name 

    if [ "$name" = "" ]; then 
    echo 'Must input name!' 
    exit 
    fi 

    echo 'Enter user domain:[mail.xx.cn]'
    read domain
    if [ "$domain" = "" ]; then
            domain=mail.xx.cn
    fi

    id=$name@$domain
      
      echo "use mail;" > tmp_delmailuser.sql
      echo "select id,home,maildir,name,pw_gecos from virtual_users where (id='"$id"' and name='"$name"' and domain
    ='"$domain"');" >> tmp_delmailuser.sql #將sql語句放到臨時的文件內

      mysql -u$mysql_name -p$mysql_password < tmp_delmailuser.sql | grep $id > tmp_delmailuser #從臨時文件中執行sql語句,并把得到的記錄中取得tmp_delmailuser文件內

    home=`awk '{ print $2 }' tmp_delmailuser`
    maildir=`awk '{ print $3 }' tmp_delmailuser`
    nickname=`awk '{ print $5 }' tmp_delmailuser` #把各個需要的字段取出來,這里大家一定要根據自己的mysql的數據庫的字段來修改哦
      rm -rf tmp_delmailuser #刪除臨時文件
    if [ "$home" = ""]; then
      echo "No $name in $domain , please check and input again."
      rm -rf tmp_delmailuser.sql
      exit
    fi #如果沒有取到記錄時候的處理

    echo 'id= '$id
    echo 'name= '$name
    echo 'domain= '$domain
    echo 'home= '$home
    echo 'maildir= '$maildir
    echo 'nickname= '$nickname
    #顯示取得的記錄的資料到屏幕上
    echo "if under value is right,please input 'y' and Enter:"
    read mychoice
    #是否確認要刪除它
    if [ "$mychoice" = "y" ]; then
      echo "use mail;" > tmp_delmailuser.sql
      echo "delete  from virtual_users where (id='"$id"' and name='"$name"' and domain='"$domain"');" >> tmp_delmailuser.sql
      mysql -u$mysql_name -p$mysql_password < tmp_delmailuser.sql
      rm -rf tmp_delmailuser.sql
      MailUserDir=$home$domain/$name
      rm -rf $MailUserDir #刪除該條數據庫記錄和相應的用戶目錄
    else
      exit
    fi
    [/code:1:c6ab2a9532]

    以上的shell寫的比較繁瑣,但是思路很簡單,希望能幫助到各位,也請各位提出意見和幫助完善后可以給我一份.

     bsdxp 回復于:2003-07-07 09:43:14
    好同志,辛苦啦。

     bhuang 回復于:2003-07-07 09:46:39
    docn修改后的igenus能共享一下嗎?

     skylove 回復于:2003-07-07 10:09:47
    能呀,我在另外有個帖子內發了地址的
    http://218.6.128.194/igenus_docn.tar.gz

     gadfly 回復于:2003-07-07 10:18:05
    建議用code 標簽把腳本框起來

     skylove 回復于:2003-07-07 10:40:04
    不好意思,以前我沒用過這些,所以不太懂。已經改正了

     paulwang 回復于:2004-05-20 11:21:38
    [quota]
    encrypt('"$password"'),
    [/quota]

    可以直接調用這個函數嗎?我的為什么不行???

     skylove 回復于:2004-08-20 12:12:35
    可以的啊

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>