0

伙计们,我相信我有两个问题:一个是特定于 python 的,另一个是 NFS。

基本点是我的程序从用户那里获取“用户名”、“uid”、NFS 服务器 IP 和exported_pa​​th 作为输入。它现在必须验证 NFS 导出的路径是否可由该用户/uid 读取/写入。

我的程序在本地机器上以 root 身份运行。直接的方法是使用给定的用户名和 uid 'useradd' 一个用户,在某个临时 mount_point 上挂载 NFS 导出的路径(以 root 身份运行),然后执行 'su username -c touch /mnt_pt/ tempfile '。如果用户名和用户 ID 输入正确(并且 NFS 服务器设置正确),此临时文件将成功在 NFS 远程目录上创建临时文件。这是目标。

现在有两个问题: (i) 有没有比创建新的 unix 用户、挂载和触摸文件以验证 NFS 权限更简单的方法?

(ii) 如果这是需要做的,那么我想知道是否有任何 python 模块/包可以帮助我执行“useradd”、“userdel”相关命令?我目前打算使用相应的二进制文件(/usr/sbin/useradd 等),然后调用 subprocess.Popen 来执行命令并获取输出。

感谢您的任何见解。

4

2 回答 2

0

i)您可以做一些更神秘的事情,但是如果没有实际接触文件,您可能不会准确地测试您需要测试的内容,所以我想我可能会按照您的建议进行操作。

ii) 如果您想验证用户存在或类似情况,您可能需要查看 python pwd 模块,但您可能需要利用 useradd/userdel 程序本身来完成脏活。

您可能需要考虑为您的程序使用 sudo,这样整个程序就不必以 root 身份运行,这似乎是一个非常冒险的提议。

于 2011-03-20T02:13:15.090 回答
0

有一个 python 套件来测试 NFS 服务器功能。

git://git.linux-nfs.org/projects/bfields/pynfs.git

虽然它适用于 NFSv4,但您也可以简单地将其用于 v3。

于 2012-04-27T19:31:13.913 回答