0

皆さん、私には 2 つの質問があると思います。1 つは Python 固有のもので、もう 1 つは NFS です。

基本的なポイントは、私のプログラムが「username」、「uid」、NFS サーバー IP、および export_path をユーザーからの入力として取得することです。ここで、NFS エクスポート パスがこのユーザー/uid によって読み取り/書き込み可能であることを確認する必要があります。

私のプログラムは、ローカル マシンで root として実行されています。簡単な方法は、指定されたユーザー名と uid を持つユーザーを「useradd」し、NFS エクスポートされたパス (マウントのルートとして実行) を一時的な mount_point にマウントしてから、「su username -c touch /mnt_pt/ tempfile」を実行することです。ユーザー名とユーザー ID の入力が正しければ (そして NFS サーバーが正しくセットアップされていれば)、この一時ファイルへのタッチは、NFS リモート ディレクトリに一時ファイルを作成することに成功します。これが目標です。

ここで 2 つの質問があります: (i) 新しい UNIX ユーザーを作成し、ファイルをマウントしてタッチして NFS パーミッションを確認するよりも簡単な方法はありますか?

(ii)これが必要な場合、「useradd」、「userdel」関連のコマンドを実行するのに役立つpythonモジュール/パッケージがあるかどうか疑問に思いますか?現在、それぞれのバイナリ (/usr/sbin/useradd など) を使用し、subprocess.Popen を呼び出してコマンドを実行し、出力を取得するつもりです。

洞察をありがとう。

4

2 に答える 2

0

NFSサーバーの機能をテストするためのPythonスイートがあります。

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

NFSv4用ですが、v3にも簡単に採用できます。

于 2012-04-27T19:31:13.913 に答える
0

i)もっと難解なことをすることもできますが、実際にファイルに触れるまでは、おそらくテストする必要があるものを正確にテストすることはないので、おそらくあなたが提案した方法で行うと思います。

ii)ユーザーの存在などを確認したい場合は、python pwd モジュールをチェックアウトすることをお勧めしますが、おそらく、useradd/userdel プログラム自体を活用して汚い作業を行う必要があります。

プログラム全体を root として実行する必要がないように、プログラムに sudo を利用することを検討することをお勧めします。これは、かなり危険な提案のように思えます。

于 2011-03-20T02:13:15.090 に答える