vsftp管理用户

[root@localhost vsftpd]# cat auto_createftp.py 
#!/usr/bin/env python
#_*_coding:utf-8_*_
#date:20180502
#author:lihongxing



import time,os,sys
from xpinyin import Pinyin
#import pypinyin
#from pypinyin import pinyin,lazy_pinyin

'''
次脚本为自动创建ftp用户和密码,减少运维对ftp的操作,给xx部门使用。
当ftp根目录下有新的目录时,自动把目录转换成账户和密码
pinyin模块把汉字转换成拼音,用于ftp用户和密码
使用方式:
1:初次使用可以先建个管理员帐号,指到ftp根目录
2:使用管理员帐号在根目录加目录即可,然后此脚本自动创建用户指到该目录
'''
if sys.getdefaultencoding() != 'utf-8':
    reload(sys)
    sys.setdefaultencoding('utf-8')

p = Pinyin()


dir_path_info = 'ls /DATA/rocen-ftp/'
dir_ret = os.popen(dir_path_info)
ls_ret = dir_ret.read()
ret = ls_ret.strip(" ").split("\n")
ret.append("新文件夹")

while True:
    new_dir_path_info = 'ls /DATA/rocen-ftp/'
    new_dir_ret = os.popen(new_dir_path_info)
    new_ls_ret = new_dir_ret.read()
    new_ret = new_ls_ret.strip(" ").split("\n")
    different_list = list(set(new_ret).difference(set(ret)))
    #print "ret:",ret,"new_ret:",new_ret
    if len(different_list) >0:
        ulist = []
        for i in different_list:
            dir_name_path = "/DATA/rocen-ftp/%s"%(i)
            if os.path.isdir(dir_name_path):
                l =i.decode("utf-8")
                ulist.append(l)
            ret.append(i)
        for dir_name in ulist:
            C_to_E = p.get_pinyin(dir_name,splitter='')
            #print C_to_E

            pam_path = './vuser_conf/' + C_to_E
            pam_file = open(pam_path,'w+')
            pam_text_info = '''local_root=%s
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES''' %(dir_name_path)
            pam_file.write(pam_text_info+"\n")
            pam_file.close()

            f_passwd = open('vuser_passwd','a')
            f_passwd.write(C_to_E + "\n" + C_to_E+"123" + "\n")
            f_passwd.flush()
            f_passwd.close
            os.system('db_load -T -t hash -f vuser_passwd  vuser_passwd.db')
            print"成功创建ftp账户%s和认证文件"%(C_to_E)
            os.system("chmod 777 -R %s" %(dir_name_path))
            os.system("service vsftpd restart")
            os.system('db_load -T -t hash -f vuser_passwd  vuser_passwd.db')
            os.system("service vsftpd restart")
    time.sleep(5)

 

转载于:https://www.cnblogs.com/dribs/p/8991806.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值