hongweipeng 发布的文章

使用C/C++编写Python模块扩展


起步

这是我第一次尝试用c语言给其他语言编写扩展,期望我后面能强到可以为php编写扩展。现在用的python,写的模块也大都是python自身语言写的,为了获得优越的执行性能,利用Python提供的API,如宏,类型,函数等来编写扩展。

前期准备

此次编写的环境为:

  • 系统:Ubuntu 15.10
  • GCC:5.2.1
  • Python:2.7.10

环境版本不一致一般也不会有什么问题,确保已安装python的开发包:sudo apt-get install python-dev


解决vsftp 500 OOPS 的错误


起步

添加ftp用户后,给用户配置文件夹定义该用户的默认目录,连接时候报了错误

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

这个错误是我们限定了用户不能跳出主目录,毕竟是安全起见。

解决

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。 要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者在vsftpd.conf配置文件中添加:

allow_writeable_chroot=YES

Python调用系统函数:pexcept模块


起步

人生苦短,我用python!最近涉猎也是越来越广了。需要创建ftp用户,然而创建用户是需要root的权限才能执行的,更是需要后续输入,好在有pexcept可以实现自由交互

举个栗子

要确定pexpect模块已安装:sudo pip install pexpect 看一个用sudo权限touch一个文件:

#!/usr/bin/env python
# coding=utf-8
import pexpect

cmd = "sudo touch sudo_touch"
passwd = '***'

run = pexpect.spawn(cmd)
try:
    run.sendline(passwd)
    ouput = run.read()
    print ouput
except:
    print 'Error'