64

os.chownはまさに私が望んでいるものですが、ユーザーとグループを ID ではなく名前で指定したいと考えています (それらが何であるかはわかりません)。どうやってやるの?

4

4 に答える 4

119
import pwd
import grp
import os

uid = pwd.getpwnam("nobody").pw_uid
gid = grp.getgrnam("nogroup").gr_gid
path = '/tmp/f.txt'
os.chown(path, uid, gid)
于 2011-05-13T16:31:27.170 に答える
47

Python 3.3 以降 https://docs.python.org/3.3/library/shutil.html#shutil.chown

import shutil
shutil.chown(path, user=None, group=None)

指定されたパスの所有者ユーザーおよび/またはグループを変更します。

user は、システムのユーザー名または uid です。同じことがグループにも当てはまります。

少なくとも 1 つの引数が必要です。

可用性: Unix。

于 2015-01-26T06:53:37.637 に答える
-3

id -u wong2ユーザーの uid を取得するために使用できます。Python で
これを行うことができます。

import os 
def getUidByUname(uname):
    return os.popen("id -u %s" % uname).read().strip()

次に、IDを使用してos.chown

于 2011-05-13T16:25:06.443 に答える