玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python导出linux环境中的所有用户权限示例

python 培训

Python导出linux环境中的所有用户权限示例.因为工作需要,现在要更换linux服务器。问题是每个用户在服务器上都有文件,并且文件权限不同。如果想把这些老数据放到新服务器上问题就来了。因为要记录每个文件的权限和用户组。中间用了点省事的办法,没写python输出到文件夹,直接用linux管道输出,如我想输出权限到info文件可以写成python filePermissions.py > info。然后给info加执行权限就行了。好了,我们一起来看python源代码。

首先是要获得文件或者文件夹权限,如下:

#! /usr/bin/env python
#-*- coding: utf-8 -*-
 
import os,stat
 
def WalkDir(dir, file_callback=None):
	for root, dirs, files in os.walk(dir):
		for d in dirs:
			#print d
			if(not d[0] == "."):
				file_path = os.path.join(root, d)
				if file_callback: file_callback(file_path)

	for root, dirs, files in os.walk(dir):
		for f in files:
			#print f
			if(not f[0] == "."):
				file_path = os.path.join(root, f)
				if file_callback: file_callback(file_path)

def LogFile(file):
    try:
		fileStats = os.stat(file)
		#print file
		#print fileStats.st_mode
		#print oct(stat.S_IMODE(fileStats.st_mode))
		#print fileStats.st_uid
		#print fileStats.st_gid
		fileInfo = 'chmod ' +  oct(stat.S_IMODE(fileStats.st_mode)) + ' ' + file
		print fileInfo
    except:
        pass
 
if __name__ == "__main__":
    path = raw_input('')
    WalkDir(path, LogFile)

再来是需要获得用户和组信息。代码如下:

#! /usr/bin/env python
#-*- coding: utf-8 -*-
 
import os,stat
 
def WalkDir(dir, file_callback=None):
	for root, dirs, files in os.walk(dir):
		for d in dirs:
			#print d
			if(not d[0] == "."):
				file_path = os.path.join(root, d)
				if file_callback: file_callback(file_path)

	for root, dirs, files in os.walk(dir):
		for f in files:
			#print f
			if(not f[0] == "."):
				file_path = os.path.join(root, f)
				if file_callback: file_callback(file_path)

def LogFile(file):
    try:
		fileStats = os.stat(file)
		#print file
		#print fileStats.st_mode
		#print oct(stat.S_IMODE(fileStats.st_mode))
		#print fileStats.st_uid
		#print fileStats.st_gid
		fileInfo = 'chown ' +  str(fileStats.st_uid) +':' + str(fileStats.st_gid) + ' ' + file
		print fileInfo
    except:
        pass
 
if __name__ == "__main__":
    path = raw_input('')
    WalkDir(path, LogFile)

玩蛇网原创,转载请注明文章出处和来源网址:http://www.iplaypython.com/code/other/o2447.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网Python新手QQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
文章发布日期:2016-04-08 15:22 玩蛇网 www.iplaypython.com

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
相关文章推荐
别人正在看
特别推荐
去顶部去底部