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

作者:kongxx 时间:2023-12-15 01:25:27 

在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)

)

来源:http://www.kongxx.info/blog/?p=610

标签:Python,用户,权限
0
投稿

猜你喜欢

  • django从请求到响应的过程深入讲解

    2021-08-09 19:41:06
  • 用Python给文本创立向量空间模型的教程

    2021-07-13 17:06:41
  • Python如何使用PIL Image制作GIF图片

    2023-08-24 22:42:17
  • Python解析CDD文件的代码详解

    2021-07-04 23:10:19
  • python解决汉字编码问题:Unicode Decode Error

    2022-12-18 21:22:53
  • centos 下面安装python2.7 +pip +mysqld

    2024-01-22 15:10:43
  • MySQL OOM 系列三 摆脱MySQL被Kill的厄运

    2024-01-13 19:14:40
  • Python 函数装饰器应用教程

    2022-08-17 05:53:24
  • 微信小程序实现扫雷游戏

    2024-05-11 09:06:59
  • Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)

    2021-06-11 17:17:54
  • Python编程使用PyQt5库实现动态水波进度条示例

    2021-11-16 18:50:16
  • python对配置文件.ini进行增删改查操作的方法示例

    2023-10-25 05:56:13
  • Python Playwright的使用详解

    2021-10-10 03:30:44
  • Window下安装JDK1.8+Tomcat9.0.27+Mysql5.7.28的教程图解

    2024-01-26 22:24:12
  • Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)

    2022-08-25 05:19:38
  • pytorch模型的保存和加载、checkpoint操作

    2022-07-14 00:36:20
  • PHP仿微信多图片预览上传实例代码

    2024-05-03 15:27:45
  • python面试题之列表声明实例分析

    2022-01-10 12:46:51
  • 新手必备Python开发环境搭建教程

    2023-07-09 03:25:35
  • Python Django2 model 查询介绍(条件、范围、模糊查询)

    2023-11-02 15:32:09
  • asp之家 网络编程 m.aspxhome.com