fs.permissions¶
Abstract permissions container.
- class fs.permissions.Permissions(names: Optional[Iterable[Text]] = None, mode: Optional[int] = None, user: Optional[Text] = None, group: Optional[Text] = None, other: Optional[Text] = None, sticky: Optional[bool] = None, setuid: Optional[bool] = None, setguid: Optional[bool] = None)[source]¶
An abstraction for file system permissions.
Permissions objects store information regarding the permissions on a resource. It supports Linux permissions, but is generic enough to manage permission information from almost any filesystem.
Example
>>> from fs.permissions import Permissions >>> p = Permissions(user='rwx', group='rw-', other='r--') >>> print(p) rwxrw-r-- >>> p.mode 500 >>> oct(p.mode) '0o764'
- __init__(names: Optional[Iterable[Text]] = None, mode: Optional[int] = None, user: Optional[Text] = None, group: Optional[Text] = None, other: Optional[Text] = None, sticky: Optional[bool] = None, setuid: Optional[bool] = None, setguid: Optional[bool] = None) None [source]¶
Create a new
Permissions
instance.- Parameters:
names (list, optional) – A list of permissions.
mode (int, optional) – A mode integer.
user (str, optional) – A triplet of user permissions, e.g.
"rwx"
or"r--"
group (str, optional) – A triplet of group permissions, e.g.
"rwx"
or"r--"
other (str, optional) – A triplet of other permissions, e.g.
"rwx"
or"r--"
sticky (bool, optional) – A boolean for the sticky bit.
setuid (bool, optional) – A boolean for the setuid bit.
setguid (bool, optional) – A boolean for the setguid bit.
- add(*permissions: str) None [source]¶
Add permission(s).
- Parameters:
*permissions (str) – Permission name(s), such as
'u_w'
or'u_x'
.
- check(*permissions: str) bool [source]¶
Check if one or more permissions are enabled.
- Parameters:
*permissions (str) – Permission name(s), such as
'u_w'
or'u_x'
.- Returns:
True
if all given permissions are set.- Return type:
bool
- copy() fs.permissions.Permissions [source]¶
Make a copy of this permissions object.
- classmethod create(init: Union[int, Iterable[Text], None] = None) Permissions [source]¶
Create a permissions object from an initial value.
- Parameters:
init (int or list, optional) – May be None to use
0o777
permissions, a mode integer, or a list of permission names.- Returns:
mode integer that may be used for instance by
os.makedir
.- Return type:
int
Example
>>> Permissions.create(None) Permissions(user='rwx', group='rwx', other='rwx') >>> Permissions.create(0o700) Permissions(user='rwx', group='', other='') >>> Permissions.create(['u_r', 'u_w', 'u_x']) Permissions(user='rwx', group='', other='')
- g_r¶
Boolean for ‘g_r’ permission.
- g_w¶
Boolean for ‘g_w’ permission.
- g_x¶
Boolean for ‘g_x’ permission.
- classmethod get_mode(init: Union[int, Iterable[Text], None]) int [source]¶
Convert an initial value to a mode integer.
- classmethod load(permissions: List[Text]) Permissions [source]¶
Load a serialized permissions object.
- property mode¶
mode integer.
- Type:
int
- o_r¶
Boolean for ‘o_r’ permission.
- o_w¶
Boolean for ‘o_w’ permission.
- o_x¶
Boolean for ‘o_x’ permission.
- classmethod parse(ls: str) fs.permissions.Permissions [source]¶
Parse permissions in Linux notation.
- remove(*permissions: str) None [source]¶
Remove permission(s).
- Parameters:
*permissions (str) – Permission name(s), such as
'u_w'
or'u_x'
.s
- setguid¶
Boolean for ‘setguid’ permission.
- setuid¶
Boolean for ‘setuid’ permission.
- sticky¶
Boolean for ‘sticky’ permission.
- u_r¶
Boolean for ‘u_r’ permission.
- u_w¶
Boolean for ‘u_w’ permission.
- u_x¶
Boolean for ‘u_x’ permission.