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完全新手教程
Feb 08 Python
利用打码兔和超人打码自封装的打码类分享
Mar 16 Python
python多线程编程中的join函数使用心得
Sep 02 Python
Python中正则表达式的详细教程
Apr 30 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
解决Python下imread,imwrite不支持中文的问题
Dec 05 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
python把1变成01的步骤总结
Feb 27 Python
python使用pygame模块实现坦克大战游戏
Mar 25 Python
Python中断多重循环的思路总结
Oct 04 Python
python使用 cx_Oracle 模块进行查询操作示例
Nov 28 Python
python实现socket简单通信的示例代码
Apr 13 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中uploaded_files函数使用方法详解
2011/03/09 PHP
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
Javascript 跨域访问解决方案
2009/02/14 Javascript
javascript 跳转代码集合
2009/12/03 Javascript
一个javascript图片阅览组件
2010/11/09 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
全面理解闭包机制
2016/07/11 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
利用python批量检查网站的可用性
2016/09/09 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
python如何输出反斜杠
2020/06/18 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
预备党员党校学习自我评价分享
2013/11/12 职场文书
会计专业的自荐信
2013/12/12 职场文书
村委会换届选举方案
2014/05/03 职场文书
授权收款委托书
2014/09/23 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js