设为首页收藏本站
查看: 66|回复: 0

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

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34271
主题
17031
UID
1347
M币
67
贡献
17173

  • 发表于 2017-5-14 02:44:00 | 显示全部楼层 |阅读模式
    在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 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) )  
    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表