返回顶部

收藏

python导出linux用户权限

更多

要换linux服务器,由于每个用户在服务器上都有文件,而且文件权限不同。这些老数据想放到新服务器上就要命了,要记录每个文件的权限和用户组。中间去了巧,没写python输出到文件夹,直接用linux管道输出,如我想输出权限到info文件可以写成python filePermissions.py > info然后给info加执行权限就行了

获得文件或者文件夹权限

#! /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)

标签:python,linux

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. admin 发表 2016-08-06 16:44:19 在Python中调用外部命令
  2. 博主 发表 2012-03-07 08:00:00 RedHat/Fedora Linux 上使用 yum 安装 python pip 模块
  3. cold 发表 2013-01-22 08:59:00 Linux 下使用Python截图自动分享
  4. HH 发表 2018-02-15 16:47:10 DBA蹩脚编程能力-0002-Python命令行参数(视频)
  5. 丸子 发表 2013-11-01 08:02:46 centos下搭建npm镜像
  6. admin 发表 2015-05-04 08:48:05 centos install python 2.7
  7. master 发表 2014-12-22 00:35:00 Nginx+Gunicorn+Django出现“Bad Request (400)”
  8. huanghao 发表 2014-05-19 16:06:27 在老版本gcc下编译numpy
  9. kongxx 发表 2016-05-18 02:10:16 Python使用Redis实现一个简单作业调度系统
  10. root 发表 2016-06-24 15:38:59 利用pxssh暴力破解ssh密码
  11. cold 发表 2012-04-13 08:39:00 使用Python进行web开发
  12. kongxx 发表 2016-09-12 12:25:59 Python中获取某个用户对某个文件或目录的访问权限