gpt4 book ai didi

Python 查看文件的读写权限方法

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python 查看文件的读写权限方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

实例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# -*- coding: utf-8 -*-
# @author flynetcn
import sys, os, pwd, stat, datetime;
LOG_FILE = '/var/log/checkDirPermission.log';
nginxWritableDirs = [
'/var/log/nginx',
'/usr/local/www/var',
];
otherReadableDirs = [
'/var/log/nginx',
'/usr/local/www/var/log',
];
dirs = [];
files = [];
def logger(level, str):
     logFd = open(LOG_FILE, 'a');
     logFd.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')+": "+("WARNING " if level else "NOTICE ")+str);
     logFd.close();
def walktree(top, callback):
     for f in os.listdir(top):
         pathname = os.path.join(top, f);
         mode = os.stat(pathname).st_mode;
         if stat.S_ISDIR(mode):
             callback(pathname, True);
             walktree(pathname, callback);
         elif stat.S_ISREG(mode):
             callback(pathname, False);
         else:
             logger(1, "walktree skipping %s\n" % (pathname));
def collectPath(path, isDir=False):
     if isDir:
         dirs.append(path);
     else:
         files.append(path);
    
def checkNginxWritableDirs(paths):
     uid = pwd.getpwnam('nginx').pw_uid;
     gid = pwd.getpwnam('nginx').pw_gid;
     for d in paths:
         dstat = os.stat(d);
         if dstat.st_uid != uid:
             try:
                 os.chown(d, uid, gid);
             except:
                 logger(1, "chown(%s, nginx, nginx) failed\n" % (d));
def checkOtherReadableDirs(paths, isDir=False):
     for d in paths:
         dstat = os.stat(d);
         if isDir:
             checkMode = 5;
             willBeMode = dstat.st_mode | stat.S_IROTH | stat.S_IXOTH;
         else:
             checkMode = 4;
             willBeMode = dstat.st_mode | stat.S_IROTH;
         if int(oct(dstat.st_mode)[-1:]) & checkMode != checkMode:
             try:
                     os.chmod(d, willBeMode);
             except:
                 logger(1, "chmod(%s, %d) failed\n" % (d, oct(willBeMode)));
if __name__ == "__main__":
     for d in nginxWritableDirs:
         walktree(d, collectPath)
     dirs = dirs + files;
     checkNginxWritableDirs(dirs);
     dirs = [];
     files = [];
     for d in otherReadableDirs:
         walktree(d, collectPath)
     checkOtherReadableDirs(dirs, True);
     checkOtherReadableDirs(files, False);

os.chmod(path,mode) 这个方法应该很简单,只需要2个参数,一个是路径,一个是说明路径的模式,下面列出了这个用法中可以使用的一些常用的模式:

stat.S_ISUID: Set user ID on execution. 不常用 。

stat.S_ISGID: Set group ID on execution. 不常用 。

stat.S_ENFMT: Record locking enforced. 不常用 。

stat.S_ISVTX: Save text image after execution. 在执行之后保存文字和图片 。

stat.S_IREAD: Read by owner. 对于拥有者读的权限 。

stat.S_IWRITE: Write by owner. 对于拥有者写的权限 。

stat.S_IEXEC: Execute by owner. 对于拥有者执行的权限 。

stat.S_IRWXU: Read, write, and execute by owner. 对于拥有者读写执行的权限 。

stat.S_IRUSR: Read by owner. 对于拥有者读的权限 。

stat.S_IWUSR: Write by owner. 对于拥有者写的权限 。

stat.S_IXUSR: Execute by owner. 对于拥有者执行的权限 。

stat.S_IRWXG: Read, write, and execute by group. 对于同组的人读写执行的权限 。

stat.S_IRGRP: Read by group. 对于同组读的权限 。

stat.S_IWGRP: Write by group. 对于同组写的权限 。

stat.S_IXGRP: Execute by group. 对于同组执行的权限 。

stat.S_IRWXO: Read, write, and execute by others. 对于其他组读写执行的权限 。

stat.S_IROTH: Read by others. 对于其他组读的权限 。

stat.S_IWOTH: Write by others. 对于其他组写的权限 。

stat.S_IXOTH: Execute by others. 对于其他组执行的权限 。

?
1
2
3
4
5
6
7
8
>>> os.stat('test')
posix.stat_result(st_mode=33204, st_ino=93328670, st_dev=18L, st_nlink=1, st_uid=30448, st_gid=1000, st_size=0, st_atime=1445932321, st_mtime=1445932321, st_ctime=1445932321)
>>> os.stat('test').st_mode
33204
>>> oct(os.stat('test').st_mode)
'0100664'
>>> oct(os.stat('test').st_mode)[-3:]
'664'

以上这篇Python 查看文件的读写权限方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:http://blog.csdn.net/blackmanren/article/details/49449755 。

最后此篇关于Python 查看文件的读写权限方法的文章就讲到这里了,如果你想了解更多关于Python 查看文件的读写权限方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com