最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 查看文件的讀寫權(quán)限方法

 更新時(shí)間:2018年01月23日 15:42:17   作者:_Black鐵木真  
下面小編就為大家分享一篇Python 查看文件的讀寫權(quán)限方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

實(shí)例如下:

# -*- 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) 這個(gè)方法應(yīng)該很簡(jiǎn)單,只需要2個(gè)參數(shù),一個(gè)是路徑,一個(gè)是說(shuō)明路徑的模式,下面列出了這個(gè)用法中可以使用的一些常用的模式:

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. 在執(zhí)行之后保存文字和圖片

stat.S_IREAD: Read by owner. 對(duì)于擁有者讀的權(quán)限

stat.S_IWRITE: Write by owner. 對(duì)于擁有者寫的權(quán)限

stat.S_IEXEC: Execute by owner. 對(duì)于擁有者執(zhí)行的權(quán)限

stat.S_IRWXU: Read, write, and execute by owner. 對(duì)于擁有者讀寫執(zhí)行的權(quán)限

stat.S_IRUSR: Read by owner. 對(duì)于擁有者讀的權(quán)限

stat.S_IWUSR: Write by owner. 對(duì)于擁有者寫的權(quán)限

stat.S_IXUSR: Execute by owner. 對(duì)于擁有者執(zhí)行的權(quán)限

stat.S_IRWXG: Read, write, and execute by group. 對(duì)于同組的人讀寫執(zhí)行的權(quán)限

stat.S_IRGRP: Read by group. 對(duì)于同組讀的權(quán)限

stat.S_IWGRP: Write by group. 對(duì)于同組寫的權(quán)限

stat.S_IXGRP: Execute by group. 對(duì)于同組執(zhí)行的權(quán)限

stat.S_IRWXO: Read, write, and execute by others. 對(duì)于其他組讀寫執(zhí)行的權(quán)限

stat.S_IROTH: Read by others. 對(duì)于其他組讀的權(quán)限

stat.S_IWOTH: Write by others. 對(duì)于其他組寫的權(quán)限

stat.S_IXOTH: Execute by others. 對(duì)于其他組執(zhí)行的權(quán)限

>>> 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 查看文件的讀寫權(quán)限方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在mac下查找python包存放路徑site-packages的實(shí)現(xiàn)方法

    在mac下查找python包存放路徑site-packages的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇在mac下查找python包存放路徑site-packages的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境

    Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境

    這篇文章主要介紹了Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境,需要的朋友可以參考下
    2018-11-11
  • python 調(diào)用HBase的簡(jiǎn)單實(shí)例

    python 調(diào)用HBase的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇python 調(diào)用HBase的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • pandas使用dtype/dtypes修改數(shù)據(jù)類型

    pandas使用dtype/dtypes修改數(shù)據(jù)類型

    在數(shù)據(jù)處理和分析中,經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換以滿足特定的需求,本文主要介紹了pandas使用dtype/dtypes修改數(shù)據(jù)類型,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Python高級(jí)用法總結(jié)

    Python高級(jí)用法總結(jié)

    Python很棒,它有很多高級(jí)用法值得細(xì)細(xì)思索,學(xué)習(xí)使用。本文將根據(jù)日常使用,總結(jié)介紹Python的一組高級(jí)特性,包括:列表推導(dǎo)式、迭代器和生成器、裝飾器
    2018-05-05
  • es+flask搜索小項(xiàng)目實(shí)現(xiàn)分頁(yè)+高亮的示例代碼

    es+flask搜索小項(xiàng)目實(shí)現(xiàn)分頁(yè)+高亮的示例代碼

    本文主要介紹了es+flask搜索小項(xiàng)目實(shí)現(xiàn)分頁(yè)+高亮的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 關(guān)于jupyter代碼自動(dòng)補(bǔ)全設(shè)置方式

    關(guān)于jupyter代碼自動(dòng)補(bǔ)全設(shè)置方式

    這篇文章主要介紹了關(guān)于jupyter代碼自動(dòng)補(bǔ)全設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • python部署chineseocr_lite的實(shí)現(xiàn)示例

    python部署chineseocr_lite的實(shí)現(xiàn)示例

    本文主要介紹了python部署chineseocr_lite的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • python 6種方法實(shí)現(xiàn)單例模式

    python 6種方法實(shí)現(xiàn)單例模式

    這篇文章主要介紹了python 6種方法實(shí)現(xiàn)單例模式,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Python對(duì)列表進(jìn)行排序的五種方法舉例

    Python對(duì)列表進(jìn)行排序的五種方法舉例

    這篇文章主要介紹了Python對(duì)列表進(jìn)行排序的五種方法,文中包括sort()方法、sorted()函數(shù)、lambda表達(dá)式、operator模塊和numpy模塊,幫助開發(fā)者根據(jù)具體需求選擇合適的排序方式,需要的朋友可以參考下
    2024-11-11

最新評(píng)論

阿拉尔市| 山阴县| 龙井市| 如皋市| 闵行区| 磴口县| 扎兰屯市| 弋阳县| 遵义县| 渝北区| 景宁| 昌平区| 阿合奇县| 绥芬河市| 厦门市| 两当县| 巴塘县| 台州市| 临城县| 清远市| 花莲市| 宜州市| 梅河口市| 潜江市| 白水县| 宝山区| 安西县| 澄迈县| 玉门市| 五峰| 淮安市| 平南县| 叙永县| 凤翔县| 太白县| 和田市| 金昌市| 永嘉县| 长葛市| 博白县| 焦作市|