民间, 我相信我有两个问题:一个是特定的python,另一个是NFS。
基本点是我的程序将“用户名”,“uid”,NFS服务器IP和exported_path作为用户输入。现在必须验证此用户/ uid是否可以读取/导出NFS导出路径。
我的程序在本地计算机上以root用户身份运行。直接的方法是使用给定的用户名和uid'useradd'用户,在某个临时mount_point上挂载NFS导出的路径(以root身份运行),然后执行'su username -c touch / mnt_pt / tempfile '。如果用户名和用户ID输入正确(并且NFS服务器设置正确),则触摸tempfile将成功在NFS远程目录上创建 tempfile 。这是目标。
现在两个问题是: (i)有没有比创建新的unix用户,安装和触摸文件以验证NFS权限更简单的方法?
(ii)如果这是需要做的事情,那么我想知道是否有任何python模块/包可以帮助我执行'useradd','userdel'相关命令?我目前打算使用相应的二进制文件(/ usr / sbin / useradd等),然后调用subprocess.Popen来执行命令并获取输出。
感谢您的任何见解。
答案 0 :(得分:0)
i)你可以做一些更神秘的事情,但是实际上没有触及文件,你可能不会准确测试你需要测试的内容,所以我想我可能会按照你建议的方式去做。 / p>
ii)如果你想验证用户存在等,你可能想要查看python pwd module,但你可能需要利用useradd / userdel程序来完成这项肮脏的工作。 / p>
你可能想考虑为你的程序利用sudo,这样整个事情就不必以root身份运行,这似乎是一个非常危险的命题。
答案 1 :(得分:0)
有一个用于测试NFS服务器功能的python套件。
GIT中://git.linux-nfs.org/projects/bfields/pynfs.git
虽然它适用于NFSv4,但你也可以简单地将它用于v3。