web-dev-qa-db-ja.com

Pythonでファイルの所有者を設定するにはどうすればよいですか?

まず、Pythonでファイルの所有者を設定することは可能ですか?もしそうなら、Pythonでファイルの所有者をどのように設定しますか?

23
Jay
os.chown(path, uid, gid)

http://docs.python.org/library/os.html

Uidとgidは、次の方法で文字列から取得できます。

import pwd
import grp
import os

uid = pwd.getpwnam("nobody").pw_uid
gid = grp.getgrnam("nogroup").gr_gid

参照: ディレクトリのユーザーとグループのアクセス許可を名前で変更するにはどうすればよいですか?

45
Maria Zverina

古いですが、Windowsでファイルの所有者を設定したい人のために将来役立つかもしれません。

*私はまだ純粋な「Pythonic」メソッドを見つけていません。これは代替手段です:

Windowsには、次のtakeown.exeユーティリティが用意されています。これらを利用します。

takeown/f folder_path/r/d Y(ツリー内のすべてのファイルとフォルダーの所有権を再帰的に取得する場合は「r」、すべてのファイル/フォルダーの所有権を取得できるようにするデフォルトの入力パラメーターの場合は「d」)。その他のドキュメント: msdn docs

コードサンプル:

from subprocess import STDOUT, check_output
check_output(["takeown", "/f", path_, "/r", "/d", "Y"], stderr=STDOUT)
0
Guy Tabak