Python判断某个用户对某个文件的权限


Posted in Python onOctober 13, 2016

在Python我们要判断一个文件对当前用户有没有读、写、执行权限,我们通常可以使用os.access函数来实现,比如:

# 判断读权限
os.access(<my file>, os.R_OK)
# 判断写权限
os.access(<my file>, os.W_OK)
# 判断执行权限
os.access(<my file>, os.X_OK)

# 判断读、写、执行权限
os.access(<my file>, os.R_OK | os.W_OK | os.X_OK)

但是如果要判断任意一个指定的用户对某个文件是否有读、写、执行权限,Python中是没有默认实现的,此时我们可以通过下面的代码断来判断

import os
import pwd
import stat
 
def is_readable(cls, path, user):
  user_info = pwd.getpwnam(user)
  uid = user_info.pw_uid
  gid = user_info.pw_gid
  s = os.stat(path)
  mode = s[stat.ST_MODE]
  return (
    ((s[stat.ST_UID] == uid) and (mode & stat.S_IRUSR > 0)) or
    ((s[stat.ST_GID] == gid) and (mode & stat.S_IRGRP > 0)) or
    (mode & stat.S_IROTH > 0)

    )
def is_writable(cls, path, user):
  user_info = pwd.getpwnam(user)
  uid = user_info.pw_uid
  gid = user_info.pw_gid
  s = os.stat(path)
  mode = s[stat.ST_MODE]
  return (
    ((s[stat.ST_UID] == uid) and (mode & stat.S_IWUSR > 0)) or
    ((s[stat.ST_GID] == gid) and (mode & stat.S_IWGRP > 0)) or
    (mode & stat.S_IWOTH > 0)

    )


def is_executable(cls, path, user):
  user_info = pwd.getpwnam(user)
  uid = user_info.pw_uid
  gid = user_info.pw_gid
  s = os.stat(path)
  mode = s[stat.ST_MODE]
  return (
    ((s[stat.ST_UID] == uid) and (mode & stat.S_IXUSR > 0)) or
    ((s[stat.ST_GID] == gid) and (mode & stat.S_IXGRP > 0)) or
    (mode & stat.S_IXOTH > 0)

    )

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之大话题小函数(2)
Oct 10 Python
Python实现LRU算法的2种方法
Jun 24 Python
利用python爬取斗鱼app中照片方法实例
Dec 03 Python
Python基于property实现类的特性操作示例
Jun 15 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
Python3视频转字符动画的实例代码
Aug 29 Python
pytorch 修改预训练model实例
Jan 18 Python
详解python itertools功能
Feb 07 Python
Python json转字典字符方法实例解析
Apr 13 Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 Python
python中添加模块导入路径的方法
Feb 03 Python
python实现简单的井字棋
May 26 Python
python使用str &amp; repr转换字符串
Oct 13 #Python
PYTHON 中使用 GLOBAL引发的一系列问题
Oct 12 #Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
Oct 12 #Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 #Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 #Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 #Python
深入浅析ImageMagick命令执行漏洞
Oct 11 #Python
You might like
php输出xml属性的方法
2015/03/19 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
JS之小练习代码
2008/10/12 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
深入理解Python对Json的解析
2017/02/14 Python
python 全文检索引擎详解
2017/04/25 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
python线程池threadpool实现篇
2018/04/27 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
python为什么要安装到c盘
2020/07/20 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
电脑销售顾问自荐信
2014/01/29 职场文书
小学班级口号
2014/06/09 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
2014年司法所工作总结
2014/11/22 职场文书
学校百日安全活动总结
2015/05/07 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
狂人日记读书笔记
2015/06/30 职场文书