2009-12-02 26 views

Trả lời

48

Tôi không thực sự nhiều của một anh chàng trăn, nhưng tôi đã có thể để whip này lên:

from os import stat 
from pwd import getpwuid 

def find_owner(filename): 
    return getpwuid(stat(filename).st_uid).pw_name 
14

Bạn muốn sử dụng os.stat():

os.stat(path) 
Perform the equivalent of a stat() system call on the given path. 
(This function follows symlinks; to stat a symlink use lstat().) 

The return value is an object whose attributes correspond to the 
members of the stat structure, namely: 

- st_mode - protection bits, 
- st_ino - inode number, 
- st_dev - device, 
- st_nlink - number of hard links, 
- st_uid - user id of owner, 
- st_gid - group id of owner, 
- st_size - size of file, in bytes, 
- st_atime - time of most recent access, 
- st_mtime - time of most recent content modification, 
- st_ctime - platform dependent; time of most recent metadata 
      change on Unix, or the time of creation on Windows) 

Ví dụ về việc sử dụng để có được chủ sở hữu UID:

from os import stat 
stat(my_filename).st_uid 

Lưu ý, tuy nhiên, stat trả về số id người dùng (ví dụ: 0 cho thư mục gốc), không phải tên người dùng thực tế.

3

Xem os.stat. Nó cung cấp cho bạn st_uid là ID người dùng của chủ sở hữu. Sau đó, bạn phải chuyển đổi nó thành tên. Để làm điều đó, hãy sử dụng pwd.getpwuid.

3

Dưới đây là một số mã ví dụ, cho thấy làm thế nào bạn có thể tìm thấy chủ sở hữu của tập tin:

#!/usr/bin/env python 
import os 
import pwd 
filename = '/etc/passwd' 
st = os.stat(filename) 
uid = st.st_uid 
print(uid) 
# output: 0 
userinfo = pwd.getpwuid(st.st_uid) 
print(userinfo) 
# output: pwd.struct_passwd(pw_name='root', pw_passwd='x', pw_uid=0, 
#   pw_gid=0, pw_gecos='root', pw_dir='/root', pw_shell='/bin/bash') 
ownername = pwd.getpwuid(st.st_uid).pw_name 
print(ownername) 
# output: root 
2

tôi stumbled trên này thời gian gần đây, tìm kiếm để có được chủ sở hữu sử dụng và nhóm thông tin, vì vậy tôi nghĩ rằng tôi muốn chia sẻ những gì tôi đã đưa ra:

import os 
from pwd import getpwuid 
from grp import getgrgid 

def get_file_ownership(filename): 
    return (
     getpwuid(os.stat(filename).st_uid).pw_name, 
     getgrgid(os.stat(filename).st_gid).gr_name 
    ) 
Các vấn đề liên quan