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实现的Excel文件读写类
Jul 30 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
python实现BackPropagation算法
Dec 14 Python
Python之web模板应用
Dec 26 Python
Django 多环境配置详解
May 14 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
python实现简单的购物程序代码实例
Mar 03 Python
python实现密码强度校验
Mar 18 Python
python 5个实用的技巧
Sep 27 Python
总结Pyinstaller打包的高级用法
Jun 28 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中使用与Perl兼容的正则表达式
2006/11/26 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
Python标准异常和异常处理详解
2015/02/02 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
服装电子商务创业计划书
2014/01/30 职场文书
战略合作协议书范本
2014/04/18 职场文书
超市开店计划书
2014/04/26 职场文书
村级个人对照检查材料
2014/08/22 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
红高粱观后感
2015/06/10 职场文书
货款欠条范本
2015/07/03 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL