Python判斷某個使用者對某個檔案的許可權

2022-09-01 15:45:26 字數 1546 閱讀 6704

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

3456

78但是如果要判斷任意乙個指定的使用者對某個檔案是否有讀、寫、執行許可權,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)

)

如何賦予某個使用者對某個表的許可權

grant 賦於許可權 常用的系統許可權集合有以下三個 connect 基本的連線 resource 程式開發 dba 資料庫管理 常用的資料物件許可權有以下五個 all on 資料物件名,select on 資料物件名,update on 資料物件名,delete on 資料物件名,insert ...

Spring如何判斷某個類用了某個註解

spring提供了乙個annotationutils類用於判斷某個類是否用了某個註解,以 kafkalistener為例,kafkalistener ann annotationutils.findannotation clazz,kafkalistener.class clazz為使用了該註解的類...

Java 輕鬆判斷某個時間是否處於某個時間段內

在日常開發中我們經常會涉及到時間的大小比較或者是判斷某個時間是否在某個時間段內,前者很容易,後者略微複雜 今天教大家如何輕鬆實習時間段的判斷!首先給大家提供乙個方法,只需傳入你要判斷的某個時間和判斷的起始時間還有結束時間,就可以返回給你乙個boolean值 manongxf 判斷時間是否處於某個時間...