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

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

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

登录后复制

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

import osimport pwdimport 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)    )

登录后复制

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2282183.html

(0)
上一篇 2025年2月27日 19:16:24
下一篇 2025年2月25日 00:03:42

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论